Exemplo n.º 1
0
        /// <summary>
        /// Gets the library associated with this extension.
        /// </summary>
        /// <param name="tableDefinitions">The table definitions to use while loading the library.</param>
        /// <returns>The loaded library.</returns>
        public override Library GetLibrary(TableDefinitionCollection tableDefinitions)
        {
            if (null == this.library)
            {
                this.library = LoadLibraryHelper(Assembly.GetExecutingAssembly(), "Microsoft.Tools.WindowsInstallerXml.Extensions.Data.DirectX.wixlib", tableDefinitions);
            }

            return this.library;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets the table definitions stored in this assembly.
        /// </summary>
        /// <returns>Table definition collection for tables stored in this assembly.</returns>
        internal static TableDefinitionCollection GetTableDefinitions()
        {
            if (null == tableDefinitions)
            {
                Assembly assembly = Assembly.GetExecutingAssembly();
                XmlReader tableDefinitionsReader = null;

                try
                {
                    tableDefinitionsReader = new XmlTextReader(assembly.GetManifestResourceStream("Microsoft.Tools.WindowsInstallerXml.Data.tables.xml"));

            #if DEBUG
                    tableDefinitions = TableDefinitionCollection.Load(tableDefinitionsReader, false);
            #else
                    tableDefinitions = TableDefinitionCollection.Load(tableDefinitionsReader, true);
            #endif
                }
                finally
                {
                    if (null != tableDefinitionsReader)
                    {
                        tableDefinitionsReader.Close();
                    }
                }
            }

            return tableDefinitions.Clone();
        }
Exemplo n.º 3
0
 /// <summary>
 /// Gets the library associated with this extension.
 /// </summary>
 /// <param name="tableDefinitions">The table definitions to use while loading the library.</param>
 /// <returns>The loaded library.</returns>
 public override Library GetLibrary(TableDefinitionCollection tableDefinitions)
 {
     return(CfgExtensionData.GetExtensionLibrary(tableDefinitions));
 }
        private Localizer InitializeLocalization(TableDefinitionCollection tableDefinitions)
        {
            Localizer localizer = null;

            // Instantiate the localizer and load any localization files.
            if (!this.commandLine.SuppressLocalization || 0 < this.commandLine.LocalizationFiles.Count || null != this.commandLine.Cultures || !this.commandLine.OutputXml)
            {
                List <Localization> localizations = new List <Localization>();

                // Load each localization file.
                foreach (string localizationFile in this.commandLine.LocalizationFiles)
                {
                    Localization localization = Localizer.ParseLocalizationFile(localizationFile, tableDefinitions);
                    if (null != localization)
                    {
                        localizations.Add(localization);
                    }
                }

                localizer = new Localizer();
                if (null != this.commandLine.Cultures)
                {
                    // Alocalizations in order specified in cultures.
                    foreach (string culture in this.commandLine.Cultures)
                    {
                        foreach (Localization localization in localizations)
                        {
                            if (culture.Equals(localization.Culture, StringComparison.OrdinalIgnoreCase))
                            {
                                localizer.AddLocalization(localization);
                            }
                        }
                    }
                }
                else // no cultures specified, so try neutral culture and if none of those add all loc files.
                {
                    bool neutralFound = false;
                    foreach (Localization localization in localizations)
                    {
                        if (String.IsNullOrEmpty(localization.Culture))
                        {
                            // If a neutral wxl was provided use it.
                            localizer.AddLocalization(localization);
                            neutralFound = true;
                        }
                    }

                    if (!neutralFound)
                    {
                        // No cultures were specified and no neutral wxl are available, include all of the loc files.
                        foreach (Localization localization in localizations)
                        {
                            localizer.AddLocalization(localization);
                        }
                    }
                }

                // Load localizations provided by extensions with data.
                foreach (IExtensionData data in this.extensionData)
                {
                    Library library = data.GetLibrary(tableDefinitions);
                    if (null != library)
                    {
                        // Load the extension's default culture if it provides one and no cultures were specified.
                        string[] extensionCultures = this.commandLine.Cultures;
                        if (null == extensionCultures && null != data.DefaultCulture)
                        {
                            extensionCultures = new string[] { data.DefaultCulture };
                        }

                        AddLibraryLocalizationsToLocalizer(library, extensionCultures, localizer);
                    }
                }
            }

            return(localizer);
        }
Exemplo n.º 5
0
 /// <summary>
 /// Get the extensions library to be removed.
 /// </summary>
 /// <param name="tableDefinitions">Table definitions for library.</param>
 /// <returns>Library to remove from decompiled output.</returns>
 public override Library GetLibraryToRemove(TableDefinitionCollection tableDefinitions)
 {
     return(DependencyExtensionData.GetExtensionLibrary(tableDefinitions));
 }
Exemplo n.º 6
0
 public override Library GetLibrary(TableDefinitionCollection tableDefinitions)
 {
     return(_library ?? (_library = LoadLibraryHelper(System.Reflection.Assembly.GetExecutingAssembly(), "TextReplace.Resources.TextReplace.WixLib.wixlib", tableDefinitions)));
 }
Exemplo n.º 7
0
        public bool TryAddSymbolToMatchingTableDefinitions(IntermediateSection section, IntermediateSymbol symbol, WindowsInstallerData data, TableDefinitionCollection tableDefinitions)
        {
            var tableDefinition = tableDefinitions.FirstOrDefault(t => t.SymbolDefinition?.Name == symbol.Definition.Name);

            if (tableDefinition == null)
            {
                return(false);
            }

            var row       = this.CreateRow(section, symbol, data, tableDefinition);
            var rowOffset = 0;

            if (tableDefinition.SymbolIdIsPrimaryKey)
            {
                row[0]    = symbol.Id.Id;
                rowOffset = 1;
            }

            for (var i = 0; i < symbol.Fields.Length; ++i)
            {
                if (i < tableDefinition.Columns.Length)
                {
                    var column = tableDefinition.Columns[i + rowOffset];

                    switch (column.Type)
                    {
                    case ColumnType.Number:
                        row[i + rowOffset] = column.Nullable ? symbol.AsNullableNumber(i) : symbol.AsNumber(i);
                        break;

                    default:
                        row[i + rowOffset] = symbol.AsString(i);
                        break;
                    }
                }
            }

            return(true);
        }
 /// <summary>
 /// Get the extensions library to be removed.
 /// </summary>
 /// <param name="tableDefinitions">Table definitions for library.</param>
 /// <returns>Library to remove from decompiled output.</returns>
 public override Library GetLibraryToRemove(TableDefinitionCollection tableDefinitions)
 {
     return(removeLibraryRows ? UIExtensionData.GetExtensionLibrary(tableDefinitions) : null);
 }
Exemplo n.º 9
0
 /// <summary>
 /// Internal mechanism to access the extension's library.
 /// </summary>
 /// <returns>Extension's library.</returns>
 internal static Library GetExtensionLibrary(TableDefinitionCollection tableDefinitions)
 {
     return(ExtensionData.LoadLibraryHelper(Assembly.GetExecutingAssembly(), "WixToolset.Extensions.Data.ps.wixlib", tableDefinitions));
 }
 public CreateOutputFromIRCommand(IntermediateSection section, TableDefinitionCollection tableDefinitions, IEnumerable <IWindowsInstallerBackendBinderExtension> backendExtensions)
 {
     this.Section           = section;
     this.TableDefinitions  = tableDefinitions;
     this.BackendExtensions = backendExtensions;
 }
 public CreateInstanceTransformsCommand(IntermediateSection section, WindowsInstallerData output, TableDefinitionCollection tableDefinitions, IBackendHelper backendHelper)
 {
     this.Section          = section;
     this.Output           = output;
     this.TableDefinitions = tableDefinitions;
     this.BackendHelper    = backendHelper;
 }
 public UpdateTransformsWithFileFacades(IMessaging messaging, WindowsInstallerData output, IEnumerable <SubStorage> subStorages, TableDefinitionCollection tableDefinitions, IEnumerable <IFileFacade> fileFacades)
 {
     this.Messaging        = messaging;
     this.Output           = output;
     this.SubStorages      = subStorages;
     this.TableDefinitions = tableDefinitions;
     this.FileFacades      = fileFacades;
 }
Exemplo n.º 13
0
 public PanelSwWixUnbinder(TableDefinitionCollection tableDefinitions)
 {
     tableDefinitions_ = tableDefinitions;
 }