aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs')
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs18
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.