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.cs25
1 files changed, 18 insertions, 7 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs
index 7412e6da..6878aed5 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs
@@ -100,6 +100,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind
100 100
101 public IBindResult Execute() 101 public IBindResult Execute()
102 { 102 {
103 if (!this.Intermediate.HasLevel(Data.IntermediateLevels.Linked) && !this.Intermediate.HasLevel(Data.IntermediateLevels.Resolved))
104 {
105 this.Messaging.Write(ErrorMessages.IntermediatesMustBeResolved(this.Intermediate.Id));
106 }
107
103 var section = this.Intermediate.Sections.Single(); 108 var section = this.Intermediate.Sections.Single();
104 109
105 var fileTransfers = new List<IFileTransfer>(); 110 var fileTransfers = new List<IFileTransfer>();
@@ -178,15 +183,18 @@ namespace WixToolset.Core.WindowsInstaller.Bind
178 } 183 }
179 } 184 }
180 185
181 // Sequence all the actions. 186 if (!this.Intermediate.HasLevel(Data.WindowsInstaller.IntermediateLevels.PartiallyBound))
182 { 187 {
183 var command = new SequenceActionsCommand(this.Messaging, section); 188 // Sequence all the actions.
184 command.Execute(); 189 {
185 } 190 var command = new SequenceActionsCommand(this.Messaging, section);
191 command.Execute();
192 }
186 193
187 { 194 {
188 var command = new CreateSpecialPropertiesCommand(section); 195 var command = new CreateSpecialPropertiesCommand(section);
189 command.Execute(); 196 command.Execute();
197 }
190 } 198 }
191 199
192#if TODO_PATCHING 200#if TODO_PATCHING
@@ -220,6 +228,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind
220 if (this.PdbType == PdbType.Partial) 228 if (this.PdbType == PdbType.Partial)
221 { 229 {
222 // Time to create the output object, since we're bypassing everything that touches files. 230 // Time to create the output object, since we're bypassing everything that touches files.
231 this.Intermediate.UpdateLevel(Data.WindowsInstaller.IntermediateLevels.PartiallyBound);
232
223 var command = new CreateOutputFromIRCommand(this.Messaging, section, tableDefinitions, this.BackendExtensions); 233 var command = new CreateOutputFromIRCommand(this.Messaging, section, tableDefinitions, this.BackendExtensions);
224 command.Execute(); 234 command.Execute();
225 235
@@ -227,6 +237,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
227 } 237 }
228 else 238 else
229 { 239 {
240 this.Intermediate.UpdateLevel(Data.WindowsInstaller.IntermediateLevels.FullyBound);
230 this.Messaging.Write(VerboseMessages.UpdatingFileInformation()); 241 this.Messaging.Write(VerboseMessages.UpdatingFileInformation());
231 242
232 // Extract files that come from binary .wixlibs and WixExtensions (this does not extract files from merge modules). 243 // Extract files that come from binary .wixlibs and WixExtensions (this does not extract files from merge modules).