diff options
| author | Rob Mensching <rob@firegiant.com> | 2019-10-23 12:53:27 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2019-10-23 12:57:55 -0700 |
| commit | 752301ba571020717862d2232e3fad585de6a39a (patch) | |
| tree | a97ceeb6b762af2dd18d0d561dadeaceda3bf387 /src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs | |
| parent | 11355d03334e300886512411d4649536a5ee65e3 (diff) | |
| download | wix-752301ba571020717862d2232e3fad585de6a39a.tar.gz wix-752301ba571020717862d2232e3fad585de6a39a.tar.bz2 wix-752301ba571020717862d2232e3fad585de6a39a.zip | |
Fix custom tables, small fixes in linker and update latest Data
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs')
| -rw-r--r-- | src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs index 53451752..411f64bf 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs | |||
| @@ -32,8 +32,6 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 32 | 32 | ||
| 33 | this.PathResolver = this.ServiceProvider.GetService<IPathResolver>(); | 33 | this.PathResolver = this.ServiceProvider.GetService<IPathResolver>(); |
| 34 | 34 | ||
| 35 | this.TableDefinitions = WindowsInstallerStandardInternal.GetTableDefinitions(); | ||
| 36 | |||
| 37 | this.CabbingThreadCount = context.CabbingThreadCount; | 35 | this.CabbingThreadCount = context.CabbingThreadCount; |
| 38 | this.CabCachePath = context.CabCachePath; | 36 | this.CabCachePath = context.CabCachePath; |
| 39 | this.Codepage = context.Codepage; | 37 | this.Codepage = context.Codepage; |
| @@ -86,8 +84,6 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 86 | 84 | ||
| 87 | private bool SuppressLayout { get; } | 85 | private bool SuppressLayout { get; } |
| 88 | 86 | ||
| 89 | private TableDefinitionCollection TableDefinitions { get; } | ||
| 90 | |||
| 91 | private string IntermediateFolder { get; } | 87 | private string IntermediateFolder { get; } |
| 92 | 88 | ||
| 93 | private Validator Validator { get; } | 89 | private Validator Validator { get; } |
| @@ -111,6 +107,14 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 111 | // If there are any fields to resolve later, create the cache to populate during bind. | 107 | // If there are any fields to resolve later, create the cache to populate during bind. |
| 112 | var variableCache = this.DelayedFields.Any() ? new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase) : null; | 108 | var variableCache = this.DelayedFields.Any() ? new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase) : null; |
| 113 | 109 | ||
| 110 | TableDefinitionCollection tableDefinitions; | ||
| 111 | { | ||
| 112 | var command = new LoadTableDefinitionsCommand(section); | ||
| 113 | command.Execute(); | ||
| 114 | |||
| 115 | tableDefinitions = command.TableDefinitions; | ||
| 116 | } | ||
| 117 | |||
| 114 | // Process the summary information table before the other tables. | 118 | // Process the summary information table before the other tables. |
| 115 | bool compressed; | 119 | bool compressed; |
| 116 | bool longNames; | 120 | bool longNames; |
| @@ -231,7 +235,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 231 | command.FileFacades = fileFacades; | 235 | command.FileFacades = fileFacades; |
| 232 | command.UpdateFileFacades = fileFacades.Where(f => !f.FromModule); | 236 | command.UpdateFileFacades = fileFacades.Where(f => !f.FromModule); |
| 233 | command.OverwriteHash = true; | 237 | command.OverwriteHash = true; |
| 234 | command.TableDefinitions = this.TableDefinitions; | 238 | command.TableDefinitions = tableDefinitions; |
| 235 | command.VariableCache = variableCache; | 239 | command.VariableCache = variableCache; |
| 236 | command.Execute(); | 240 | command.Execute(); |
| 237 | } | 241 | } |
| @@ -308,7 +312,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 308 | // Time to create the output object. Try to put as much above here as possible, updating the IR is better. | 312 | // Time to create the output object. Try to put as much above here as possible, updating the IR is better. |
| 309 | Output output; | 313 | Output output; |
| 310 | { | 314 | { |
| 311 | var command = new CreateOutputFromIRCommand(section, this.TableDefinitions, this.BackendExtensions); | 315 | var command = new CreateOutputFromIRCommand(this.Messaging, section, tableDefinitions, this.BackendExtensions); |
| 312 | command.Execute(); | 316 | command.Execute(); |
| 313 | 317 | ||
| 314 | output = command.Output; | 318 | output = command.Output; |
| @@ -402,7 +406,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 402 | command.Compressed = compressed; | 406 | command.Compressed = compressed; |
| 403 | command.FileRowsByCabinet = filesByCabinetMedia; | 407 | command.FileRowsByCabinet = filesByCabinetMedia; |
| 404 | command.ResolveMedia = this.ResolveMedia; | 408 | command.ResolveMedia = this.ResolveMedia; |
| 405 | command.TableDefinitions = this.TableDefinitions; | 409 | command.TableDefinitions = tableDefinitions; |
| 406 | command.TempFilesLocation = this.IntermediateFolder; | 410 | command.TempFilesLocation = this.IntermediateFolder; |
| 407 | command.Execute(); | 411 | command.Execute(); |
| 408 | 412 | ||
| @@ -429,11 +433,13 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 429 | // Generate database file. | 433 | // Generate database file. |
| 430 | this.Messaging.Write(VerboseMessages.GeneratingDatabase()); | 434 | this.Messaging.Write(VerboseMessages.GeneratingDatabase()); |
| 431 | 435 | ||
| 432 | var trackMsi = this.BackendHelper.TrackFile(this.OutputPath, TrackedFileType.Final); | 436 | { |
| 433 | trackedFiles.Add(trackMsi); | 437 | var trackMsi = this.BackendHelper.TrackFile(this.OutputPath, TrackedFileType.Final); |
| 438 | trackedFiles.Add(trackMsi); | ||
| 434 | 439 | ||
| 435 | var temporaryFiles = this.GenerateDatabase(output, trackMsi.Path, false, false); | 440 | var temporaryFiles = this.GenerateDatabase(output, tableDefinitions, trackMsi.Path, false, false); |
| 436 | trackedFiles.AddRange(temporaryFiles); | 441 | trackedFiles.AddRange(temporaryFiles); |
| 442 | } | ||
| 437 | 443 | ||
| 438 | // Stop processing if an error previously occurred. | 444 | // Stop processing if an error previously occurred. |
| 439 | if (this.Messaging.EncounteredError) | 445 | if (this.Messaging.EncounteredError) |
| @@ -456,7 +462,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 456 | 462 | ||
| 457 | if (null == sequenceTable) | 463 | if (null == sequenceTable) |
| 458 | { | 464 | { |
| 459 | sequenceTable = output.EnsureTable(this.TableDefinitions[sequenceTableName]); | 465 | sequenceTable = output.EnsureTable(tableDefinitions[sequenceTableName]); |
| 460 | } | 466 | } |
| 461 | 467 | ||
| 462 | if (0 == sequenceTable.Rows.Count) | 468 | if (0 == sequenceTable.Rows.Count) |
| @@ -911,7 +917,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 911 | /// <param name="databaseFile">The database file to create.</param> | 917 | /// <param name="databaseFile">The database file to create.</param> |
| 912 | /// <param name="keepAddedColumns">Whether to keep columns added in a transform.</param> | 918 | /// <param name="keepAddedColumns">Whether to keep columns added in a transform.</param> |
| 913 | /// <param name="useSubdirectory">Whether to use a subdirectory based on the <paramref name="databaseFile"/> file name for intermediate files.</param> | 919 | /// <param name="useSubdirectory">Whether to use a subdirectory based on the <paramref name="databaseFile"/> file name for intermediate files.</param> |
| 914 | private IEnumerable<ITrackedFile> GenerateDatabase(Output output, string databaseFile, bool keepAddedColumns, bool useSubdirectory) | 920 | private IEnumerable<ITrackedFile> GenerateDatabase(Output output, TableDefinitionCollection tableDefinitions, string databaseFile, bool keepAddedColumns, bool useSubdirectory) |
| 915 | { | 921 | { |
| 916 | var command = new GenerateDatabaseCommand(); | 922 | var command = new GenerateDatabaseCommand(); |
| 917 | command.BackendHelper = this.BackendHelper; | 923 | command.BackendHelper = this.BackendHelper; |
| @@ -921,7 +927,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 921 | command.KeepAddedColumns = keepAddedColumns; | 927 | command.KeepAddedColumns = keepAddedColumns; |
| 922 | command.UseSubDirectory = useSubdirectory; | 928 | command.UseSubDirectory = useSubdirectory; |
| 923 | command.SuppressAddingValidationRows = this.SuppressAddingValidationRows; | 929 | command.SuppressAddingValidationRows = this.SuppressAddingValidationRows; |
| 924 | command.TableDefinitions = this.TableDefinitions; | 930 | command.TableDefinitions = tableDefinitions; |
| 925 | command.IntermediateFolder = this.IntermediateFolder; | 931 | command.IntermediateFolder = this.IntermediateFolder; |
| 926 | command.Codepage = this.Codepage; | 932 | command.Codepage = this.Codepage; |
| 927 | command.Execute(); | 933 | command.Execute(); |
