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.cs82
1 files changed, 38 insertions, 44 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs
index e0dd2b96..b3f81212 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs
@@ -277,11 +277,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
277 277
278 // Gather information about files that do not come from merge modules. 278 // Gather information about files that do not come from merge modules.
279 { 279 {
280 var command = new UpdateFileFacadesCommand(this.Messaging, section); 280 var command = new UpdateFileFacadesCommand(this.Messaging, section, fileFacades, fileFacades.Where(f => !f.FromModule), variableCache, overwriteHash: true);
281 command.FileFacades = fileFacades;
282 command.UpdateFileFacades = fileFacades.Where(f => !f.FromModule);
283 command.OverwriteHash = true;
284 command.VariableCache = variableCache;
285 command.Execute(); 281 command.Execute();
286 } 282 }
287 283
@@ -290,9 +286,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
290 Dictionary<MediaTuple, IEnumerable<FileFacade>> filesByCabinetMedia; 286 Dictionary<MediaTuple, IEnumerable<FileFacade>> filesByCabinetMedia;
291 IEnumerable<FileFacade> uncompressedFiles; 287 IEnumerable<FileFacade> uncompressedFiles;
292 { 288 {
293 var command = new AssignMediaCommand(section, this.Messaging); 289 var command = new AssignMediaCommand(section, this.Messaging, fileFacades, compressed);
294 command.FileFacades = fileFacades;
295 command.FilesCompressed = compressed;
296 command.Execute(); 290 command.Execute();
297 291
298 assignedMediaRows = command.MediaRows; 292 assignedMediaRows = command.MediaRows;
@@ -313,6 +307,42 @@ namespace WixToolset.Core.WindowsInstaller.Bind
313 command.Execute(); 307 command.Execute();
314 } 308 }
315 309
310#if TODO_FINISH_UPDATE // use tuples instead of rows
311 // Extended binder extensions can be called now that fields are resolved.
312 {
313 Table updatedFiles = this.Output.EnsureTable(this.TableDefinitions["WixBindUpdatedFiles"]);
314
315 foreach (IBinderExtension extension in this.Extensions)
316 {
317 extension.AfterResolvedFields(this.Output);
318 }
319
320 List<FileFacade> updatedFileFacades = new List<FileFacade>();
321
322 foreach (Row updatedFile in updatedFiles.Rows)
323 {
324 string updatedId = updatedFile.FieldAsString(0);
325
326 FileFacade updatedFacade = fileFacades.First(f => f.File.File.Equals(updatedId));
327
328 updatedFileFacades.Add(updatedFacade);
329 }
330
331 if (updatedFileFacades.Any())
332 {
333 UpdateFileFacadesCommand command = new UpdateFileFacadesCommand(this.Messaging, section, fileFacades, updateFileFacades, variableCache, overwriteHash: false);
334 //command.FileFacades = fileFacades;
335 //command.UpdateFileFacades = updatedFileFacades;
336 //command.ModularizationGuid = modularizationGuid;
337 //command.Output = this.Output;
338 //command.OverwriteHash = true;
339 //command.TableDefinitions = this.TableDefinitions;
340 //command.VariableCache = variableCache;
341 command.Execute();
342 }
343 }
344#endif
345
316 // Set generated component guids. 346 // Set generated component guids.
317 { 347 {
318 var command = new CalculateComponentGuids(this.Messaging, this.BackendHelper, this.PathResolver, section); 348 var command = new CalculateComponentGuids(this.Messaging, this.BackendHelper, this.PathResolver, section);
@@ -376,42 +406,6 @@ namespace WixToolset.Core.WindowsInstaller.Bind
376 } 406 }
377 } 407 }
378 408
379#if TODO_FINISH_UPDATE
380 // Extended binder extensions can be called now that fields are resolved.
381 {
382 Table updatedFiles = this.Output.EnsureTable(this.TableDefinitions["WixBindUpdatedFiles"]);
383
384 foreach (IBinderExtension extension in this.Extensions)
385 {
386 extension.AfterResolvedFields(this.Output);
387 }
388
389 List<FileFacade> updatedFileFacades = new List<FileFacade>();
390
391 foreach (Row updatedFile in updatedFiles.Rows)
392 {
393 string updatedId = updatedFile.FieldAsString(0);
394
395 FileFacade updatedFacade = fileFacades.First(f => f.File.File.Equals(updatedId));
396
397 updatedFileFacades.Add(updatedFacade);
398 }
399
400 if (updatedFileFacades.Any())
401 {
402 UpdateFileFacadesCommand command = new UpdateFileFacadesCommand();
403 command.FileFacades = fileFacades;
404 command.UpdateFileFacades = updatedFileFacades;
405 command.ModularizationGuid = modularizationGuid;
406 command.Output = this.Output;
407 command.OverwriteHash = true;
408 command.TableDefinitions = this.TableDefinitions;
409 command.VariableCache = variableCache;
410 command.Execute();
411 }
412 }
413#endif
414
415 // Stop processing if an error previously occurred. 409 // Stop processing if an error previously occurred.
416 if (this.Messaging.EncounteredError) 410 if (this.Messaging.EncounteredError)
417 { 411 {