diff options
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. |