aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.WindowsInstaller/Bind
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2020-05-22 14:53:27 -0700
committerRob Mensching <rob@firegiant.com>2020-05-22 15:25:19 -0700
commit6b30680fd7a712b45538c3f0a89d652f0457a893 (patch)
tree46ef7f7d51de4189b7ef1af07dda3add16ad302f /src/WixToolset.Core.WindowsInstaller/Bind
parent236f958468923f65a8f02e406601fb47e71cd58e (diff)
downloadwix-6b30680fd7a712b45538c3f0a89d652f0457a893.tar.gz
wix-6b30680fd7a712b45538c3f0a89d652f0457a893.tar.bz2
wix-6b30680fd7a712b45538c3f0a89d652f0457a893.zip
Support merging merge modules
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller/Bind')
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs5
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/ConfigurationCallback.cs1
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs3
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs10
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/UpdateMediaSequencesCommand.cs2
5 files changed, 15 insertions, 6 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs
index 32da410f..22858d1f 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs
@@ -505,7 +505,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
505 // necessary. 505 // necessary.
506 foreach (SequenceTable sequence in Enum.GetValues(typeof(SequenceTable))) 506 foreach (SequenceTable sequence in Enum.GetValues(typeof(SequenceTable)))
507 { 507 {
508 var sequenceTableName = sequence.ToString(); 508 var sequenceTableName = (sequence == SequenceTable.AdvertiseExecuteSequence) ? "AdvtExecuteSequence" : sequence.ToString();
509 var sequenceTable = output.Tables[sequenceTableName]; 509 var sequenceTable = output.Tables[sequenceTableName];
510 510
511 if (null == sequenceTable) 511 if (null == sequenceTable)
@@ -519,8 +519,9 @@ namespace WixToolset.Core.WindowsInstaller.Bind
519 } 519 }
520 } 520 }
521 521
522 var command = new MergeModulesCommand(); 522 var command = new MergeModulesCommand(this.Messaging);
523 command.FileFacades = fileFacades; 523 command.FileFacades = fileFacades;
524 command.IntermediateFolder = this.IntermediateFolder;
524 command.Output = output; 525 command.Output = output;
525 command.OutputPath = this.OutputPath; 526 command.OutputPath = this.OutputPath;
526 command.SuppressedTableNames = suppressedTableNames; 527 command.SuppressedTableNames = suppressedTableNames;
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/ConfigurationCallback.cs b/src/WixToolset.Core.WindowsInstaller/Bind/ConfigurationCallback.cs
index 0cc5996a..9a609463 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/ConfigurationCallback.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/ConfigurationCallback.cs
@@ -5,6 +5,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
5 using System; 5 using System;
6 using System.Collections; 6 using System.Collections;
7 using System.Globalization; 7 using System.Globalization;
8 using WixToolset.Core.Native;
8 using WixToolset.Core.WindowsInstaller.Msi; 9 using WixToolset.Core.WindowsInstaller.Msi;
9 10
10 /// <summary> 11 /// <summary>
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs
index 49b6a6f8..62f7fce3 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/ExtractMergeModuleFilesCommand.cs
@@ -48,7 +48,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind
48 { 48 {
49 var mergeModulesFileFacades = new List<FileFacade>(); 49 var mergeModulesFileFacades = new List<FileFacade>();
50 50
51 var merge = MsmInterop.GetMsmMerge(); 51 var interop = new MsmInterop();
52 var merge = interop.GetMsmMerge();
52 53
53 // Index all of the file rows to be able to detect collisions with files in the Merge Modules. 54 // Index all of the file rows to be able to detect collisions with files in the Merge Modules.
54 // It may seem a bit expensive to build up this index solely for the purpose of checking collisions 55 // It may seem a bit expensive to build up this index solely for the purpose of checking collisions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs
index b90aecd1..cd6170d0 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/MergeModulesCommand.cs
@@ -9,9 +9,9 @@ namespace WixToolset.Core.WindowsInstaller.Bind
9 using System.Runtime.InteropServices; 9 using System.Runtime.InteropServices;
10 using System.Text; 10 using System.Text;
11 using WixToolset.Core.Bind; 11 using WixToolset.Core.Bind;
12 using WixToolset.Core.Native;
12 using WixToolset.Core.WindowsInstaller.Msi; 13 using WixToolset.Core.WindowsInstaller.Msi;
13 using WixToolset.Data; 14 using WixToolset.Data;
14 using WixToolset.Data.Tuples;
15 using WixToolset.Data.WindowsInstaller; 15 using WixToolset.Data.WindowsInstaller;
16 using WixToolset.Data.WindowsInstaller.Rows; 16 using WixToolset.Data.WindowsInstaller.Rows;
17 using WixToolset.Extensibility.Services; 17 using WixToolset.Extensibility.Services;
@@ -21,6 +21,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind
21 /// </summary> 21 /// </summary>
22 internal class MergeModulesCommand 22 internal class MergeModulesCommand
23 { 23 {
24 public MergeModulesCommand(IMessaging messaging)
25 {
26 this.Messaging = messaging;
27 }
28
24 public IEnumerable<FileFacade> FileFacades { private get; set; } 29 public IEnumerable<FileFacade> FileFacades { private get; set; }
25 30
26 public IMessaging Messaging { private get; set; } 31 public IMessaging Messaging { private get; set; }
@@ -51,7 +56,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind
51 string logPath = null; 56 string logPath = null;
52 try 57 try
53 { 58 {
54 merge = MsmInterop.GetMsmMerge(); 59 var interop = new MsmInterop();
60 merge = interop.GetMsmMerge();
55 61
56 logPath = Path.Combine(this.IntermediateFolder, "merge.log"); 62 logPath = Path.Combine(this.IntermediateFolder, "merge.log");
57 merge.OpenLog(logPath); 63 merge.OpenLog(logPath);
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/UpdateMediaSequencesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/UpdateMediaSequencesCommand.cs
index ae872f45..5d18a230 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/UpdateMediaSequencesCommand.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/UpdateMediaSequencesCommand.cs
@@ -74,7 +74,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
74 74
75 patchGroup.Add(facade); 75 patchGroup.Add(facade);
76 } 76 }
77 else 77 else if (!facade.FromModule)
78 { 78 {
79 var fileRow = fileRows.Get(facade.Id); 79 var fileRow = fileRows.Get(facade.Id);
80 fileRow.Sequence = ++lastSequence; 80 fileRow.Sequence = ++lastSequence;