diff options
| author | Rob Mensching <rob@firegiant.com> | 2017-12-07 14:19:05 -0800 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2017-12-07 14:19:05 -0800 |
| commit | 49f1209035aac1fcfad5dbbe25f7b2306d3be86c (patch) | |
| tree | 6ce5921493eb751b6d89c3faf0ebdf64110cbb65 /src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs | |
| parent | b1e662bd480241ea914f0f3d6bd174d9ffd03f5f (diff) | |
| download | wix-49f1209035aac1fcfad5dbbe25f7b2306d3be86c.tar.gz wix-49f1209035aac1fcfad5dbbe25f7b2306d3be86c.tar.bz2 wix-49f1209035aac1fcfad5dbbe25f7b2306d3be86c.zip | |
Support MSI backends creating custom tables and remove WixToolset.Data.WindowsInstaller
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs')
| -rw-r--r-- | src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs index 012998e6..9e30aed2 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs | |||
| @@ -10,6 +10,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 10 | using WixToolset.Data; | 10 | using WixToolset.Data; |
| 11 | using WixToolset.Data.Bind; | 11 | using WixToolset.Data.Bind; |
| 12 | using WixToolset.Data.Tuples; | 12 | using WixToolset.Data.Tuples; |
| 13 | using WixToolset.Data.WindowsInstaller; | ||
| 13 | using WixToolset.Extensibility; | 14 | using WixToolset.Extensibility; |
| 14 | using WixToolset.Extensibility.Services; | 15 | using WixToolset.Extensibility.Services; |
| 15 | 16 | ||
| @@ -21,7 +22,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 21 | // As outlined in RFC 4122, this is our namespace for generating name-based (version 3) UUIDs. | 22 | // As outlined in RFC 4122, this is our namespace for generating name-based (version 3) UUIDs. |
| 22 | internal static readonly Guid WixComponentGuidNamespace = new Guid("{3064E5C6-FB63-4FE9-AC49-E446A792EFA5}"); | 23 | internal static readonly Guid WixComponentGuidNamespace = new Guid("{3064E5C6-FB63-4FE9-AC49-E446A792EFA5}"); |
| 23 | 24 | ||
| 24 | public BindDatabaseCommand(IBindContext context, Validator validator) | 25 | public BindDatabaseCommand(IBindContext context, IEnumerable<IWindowsInstallerBackendExtension> backendExtension, Validator validator) |
| 25 | { | 26 | { |
| 26 | this.TableDefinitions = WindowsInstallerStandardInternal.GetTableDefinitions(); | 27 | this.TableDefinitions = WindowsInstallerStandardInternal.GetTableDefinitions(); |
| 27 | 28 | ||
| @@ -40,7 +41,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 40 | this.Validator = validator; | 41 | this.Validator = validator; |
| 41 | this.WixVariableResolver = context.WixVariableResolver; | 42 | this.WixVariableResolver = context.WixVariableResolver; |
| 42 | 43 | ||
| 43 | this.BackendExtensions = context.ExtensionManager.Create<IWindowsInstallerBackendExtension>(); | 44 | this.BackendExtensions = backendExtension; |
| 44 | } | 45 | } |
| 45 | 46 | ||
| 46 | private IEnumerable<BindPath> BindPaths { get; } | 47 | private IEnumerable<BindPath> BindPaths { get; } |
| @@ -298,7 +299,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 298 | // Try to put as much above here as possible, updating the IR is better. | 299 | // Try to put as much above here as possible, updating the IR is better. |
| 299 | Output output; | 300 | Output output; |
| 300 | { | 301 | { |
| 301 | var command = new CreateOutputFromIRCommand(section, this.TableDefinitions); | 302 | var command = new CreateOutputFromIRCommand(section, this.TableDefinitions, this.BackendExtensions); |
| 302 | command.Execute(); | 303 | command.Execute(); |
| 303 | 304 | ||
| 304 | output = command.Output; | 305 | output = command.Output; |
| @@ -313,13 +314,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 313 | // Modularize identifiers and add tables with real streams to the import tables. | 314 | // Modularize identifiers and add tables with real streams to the import tables. |
| 314 | if (OutputType.Module == output.Type) | 315 | if (OutputType.Module == output.Type) |
| 315 | { | 316 | { |
| 316 | // Gather all the suppress modularization identifiers | 317 | var command = new ModularaizeCommand(output, modularizationGuid, section.Tuples.OfType<WixSuppressModularizationTuple>()); |
| 317 | var suppressModularizationIdentifiers = new HashSet<string>(section.Tuples.OfType<WixSuppressModularizationTuple>().Select(s => s.WixSuppressModularization)); | 318 | command.Execute(); |
| 318 | |||
| 319 | foreach (var table in output.Tables) | ||
| 320 | { | ||
| 321 | table.Modularize(modularizationGuid, suppressModularizationIdentifiers); | ||
| 322 | } | ||
| 323 | } | 319 | } |
| 324 | 320 | ||
| 325 | #if TODO_FINISH_UPDATE | 321 | #if TODO_FINISH_UPDATE |
| @@ -897,7 +893,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
| 897 | { | 893 | { |
| 898 | Dictionary<string, bool> componentGuidConditions = new Dictionary<string, bool>(componentTable.Rows.Count); | 894 | Dictionary<string, bool> componentGuidConditions = new Dictionary<string, bool>(componentTable.Rows.Count); |
| 899 | 895 | ||
| 900 | foreach (Data.Rows.ComponentRow row in componentTable.Rows) | 896 | foreach (Data.WindowsInstaller.Rows.ComponentRow row in componentTable.Rows) |
| 901 | { | 897 | { |
| 902 | // we don't care about unmanaged components and if there's a * GUID remaining, | 898 | // we don't care about unmanaged components and if there's a * GUID remaining, |
| 903 | // there's already an error that prevented it from being replaced with a real GUID. | 899 | // there's already an error that prevented it from being replaced with a real GUID. |
