diff options
Diffstat (limited to 'src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs')
-rw-r--r-- | src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs | 34 |
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? |