aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs')
-rw-r--r--src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs34
1 files changed, 24 insertions, 10 deletions
diff --git a/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs b/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs
index 733996c0..35c45fad 100644
--- a/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs
+++ b/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs
@@ -123,8 +123,10 @@ namespace WixToolset.Core.Burn
123 123
124 // Extract files that come from binary .wixlibs and WixExtensions (this does not extract files from merge modules). 124 // Extract files that come from binary .wixlibs and WixExtensions (this does not extract files from merge modules).
125 { 125 {
126 var command = new ExtractEmbeddedFilesCommand(this.ExpectedEmbeddedFiles); 126 var command = new ExtractEmbeddedFilesCommand(this.BackendHelper, this.ExpectedEmbeddedFiles);
127 command.Execute(); 127 command.Execute();
128
129 trackedFiles.AddRange(command.TrackedFiles);
128 } 130 }
129 131
130 // Get the explicit payloads. 132 // Get the explicit payloads.
@@ -164,6 +166,7 @@ namespace WixToolset.Core.Burn
164 command.Execute(); 166 command.Execute();
165 167
166 fileTransfers.AddRange(command.FileTransfers); 168 fileTransfers.AddRange(command.FileTransfers);
169 trackedFiles.AddRange(command.TrackedFiles);
167 170
168 processedPayloads = new HashSet<string>(payloadTuples.Keys); 171 processedPayloads = new HashSet<string>(payloadTuples.Keys);
169 } 172 }
@@ -245,6 +248,7 @@ namespace WixToolset.Core.Burn
245 command.Execute(); 248 command.Execute();
246 249
247 fileTransfers.AddRange(command.FileTransfers); 250 fileTransfers.AddRange(command.FileTransfers);
251 trackedFiles.AddRange(command.TrackedFiles);
248 252
249 processedPayloads = null; 253 processedPayloads = null;
250 } 254 }
@@ -379,6 +383,17 @@ namespace WixToolset.Core.Burn
379 // Update the bundle per-machine/per-user scope based on the chained packages. 383 // Update the bundle per-machine/per-user scope based on the chained packages.
380 this.ResolveBundleInstallScope(section, bundleTuple, orderedFacades); 384 this.ResolveBundleInstallScope(section, bundleTuple, orderedFacades);
381 385
386 // Give the extension one last hook before generating the output files.
387 foreach (var extension in this.BackendExtensions)
388 {
389 extension.BundleFinalize();
390 }
391
392 if (this.Messaging.EncounteredError)
393 {
394 return;
395 }
396
382 // Generate the core-defined BA manifest tables... 397 // Generate the core-defined BA manifest tables...
383 string baManifestPath; 398 string baManifestPath;
384 { 399 {
@@ -389,6 +404,8 @@ namespace WixToolset.Core.Burn
389 baManifestPath = command.OutputPath; 404 baManifestPath = command.OutputPath;
390 payloadTuples.Add(baManifestPayload.Id.Id, baManifestPayload); 405 payloadTuples.Add(baManifestPayload.Id.Id, baManifestPayload);
391 ++uxPayloadIndex; 406 ++uxPayloadIndex;
407
408 trackedFiles.Add(this.BackendHelper.TrackFile(baManifestPath, TrackedFileType.Temporary));
392 } 409 }
393 410
394 // Generate the bundle extension manifest... 411 // Generate the bundle extension manifest...
@@ -401,16 +418,8 @@ namespace WixToolset.Core.Burn
401 bextManifestPath = command.OutputPath; 418 bextManifestPath = command.OutputPath;
402 payloadTuples.Add(bextManifestPayload.Id.Id, bextManifestPayload); 419 payloadTuples.Add(bextManifestPayload.Id.Id, bextManifestPayload);
403 ++uxPayloadIndex; 420 ++uxPayloadIndex;
404 }
405 421
406 foreach (var extension in this.BackendExtensions) 422 trackedFiles.Add(this.BackendHelper.TrackFile(bextManifestPath, TrackedFileType.Temporary));
407 {
408 extension.BundleFinalize();
409 }
410
411 if (this.Messaging.EncounteredError)
412 {
413 return;
414 } 423 }
415 424
416 // Create all the containers except the UX container first so the manifest (that goes in the UX container) 425 // Create all the containers except the UX container first so the manifest (that goes in the UX container)
@@ -423,6 +432,7 @@ namespace WixToolset.Core.Burn
423 command.Execute(); 432 command.Execute();
424 433
425 fileTransfers.AddRange(command.FileTransfers); 434 fileTransfers.AddRange(command.FileTransfers);
435 trackedFiles.AddRange(command.TrackedFiles);
426 436
427 uxContainer = command.UXContainer; 437 uxContainer = command.UXContainer;
428 uxPayloads = command.UXContainerPayloads; 438 uxPayloads = command.UXContainerPayloads;
@@ -438,6 +448,7 @@ namespace WixToolset.Core.Burn
438 command.Execute(); 448 command.Execute();
439 449
440 manifestPath = command.OutputPath; 450 manifestPath = command.OutputPath;
451 trackedFiles.Add(this.BackendHelper.TrackFile(manifestPath, TrackedFileType.Temporary));
441 } 452 }
442 453
443 // Create the UX container. 454 // Create the UX container.
@@ -447,6 +458,8 @@ namespace WixToolset.Core.Burn
447 458
448 uxContainer.Hash = command.Hash; 459 uxContainer.Hash = command.Hash;
449 uxContainer.Size = command.Size; 460 uxContainer.Size = command.Size;
461
462 trackedFiles.Add(this.BackendHelper.TrackFile(uxContainer.WorkingPath, TrackedFileType.Temporary));
450 } 463 }
451 464
452 { 465 {
@@ -454,6 +467,7 @@ namespace WixToolset.Core.Burn
454 command.Execute(); 467 command.Execute();
455 468
456 fileTransfers.Add(command.Transfer); 469 fileTransfers.Add(command.Transfer);
470 trackedFiles.Add(this.BackendHelper.TrackFile(this.OutputPath, TrackedFileType.Final));
457 } 471 }
458 472
459#if TODO // does this need to come back, or do they only need to be in TrackedFiles? 473#if TODO // does this need to come back, or do they only need to be in TrackedFiles?