diff options
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs')
-rw-r--r-- | src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs | 25 |
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). |