@joebigelow / wix-1 / commits / 5da97c75

Assign download URL to files outside the MSI

Fixes wixtoolset/issues#6436

Rob Mensching committed May 7, 2021 at 01:04 UTC 5da97c750ef36518970eb0d3b02655b2eac75a35
3 files changed +6 -4
src/wix/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs
+2
@@ -394,6 +394,7 @@ namespace WixToolset.Core.Burn.Bundles
394 UnresolvedSourceFile = cabinetName,
395 ContainerRef = packagePayload.ContainerRef,
396 ContentFile = true,
397 + DownloadUrl = packagePayload.DownloadUrl,
398 Packaging = packagePayload.Packaging,
399 ParentPackagePayloadRef = packagePayload.Id.Id,
400 });
@@ -462,6 +463,7 @@ namespace WixToolset.Core.Burn.Bundles
463 UnresolvedSourceFile = name,
464 ContainerRef = packagePayload.ContainerRef,
465 ContentFile = true,
466 + DownloadUrl = packagePayload.DownloadUrl,
467 Packaging = packagePayload.Packaging,
468 ParentPackagePayloadRef = packagePayload.Id.Id,
469 });
src/wix/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs
+2 -2
@@ -15,7 +15,7 @@ namespace WixToolsetTest.CoreIntegration
15
16 public class ContainerFixture
17 {
18 - [Fact(Skip = "Test demonstrates failure")]
18 + [Fact]
19 public void CanBuildWithCustomAttachedContainer()
20 {
21 var folder = TestData.Get(@"TestData");
@@ -54,7 +54,7 @@ namespace WixToolsetTest.CoreIntegration
54 var ignoreAttributes = new Dictionary<string, List<string>> { { "Payload", new List<string> { "FileSize", "Hash" } } };
55 Assert.Equal(@"<Payload Id='FirstX64' FilePath='FirstX64\FirstX64.msi' FileSize='*' Hash='*' DownloadUrl='http://example.com//FirstX64/FirstX64/FirstX64.msi' Packaging='embedded' SourcePath='a0' Container='BundlePackages' />", payloads[0].GetTestXml(ignoreAttributes));
56 Assert.Equal(@"<Payload Id='FirstX86.msi' FilePath='FirstX86\FirstX86.msi' FileSize='*' Hash='*' DownloadUrl='http://example.com//FirstX86.msi/FirstX86/FirstX86.msi' Packaging='embedded' SourcePath='a1' Container='BundlePackages' />", payloads[1].GetTestXml(ignoreAttributes));
57 - Assert.Equal(@"<Payload Id='fk1m38Cf9RZ2Bx_ipinRY6BftelU' FilePath='FirstX86\PFiles\MsiPackage\test.txt' FileSize='*' Hash='*' DownloadUrl='http://example.com/FirstX86/fk1m38Cf9RZ2Bx_ipinRY6BftelU/FirstX86/PFiles/MsiPackage/test.txt' Packaging='embedded' SourcePath='a2' Container='BundlePackages' />", payloads[2].GetTestXml(ignoreAttributes));
57 + Assert.Equal(@"<Payload Id='fk1m38Cf9RZ2Bx_ipinRY6BftelU' FilePath='FirstX86\PFiles\MsiPackage\test.txt' FileSize='*' Hash='*' DownloadUrl='http://example.com/FirstX86.msi/fk1m38Cf9RZ2Bx_ipinRY6BftelU/FirstX86/PFiles/MsiPackage/test.txt' Packaging='embedded' SourcePath='a2' Container='BundlePackages' />", payloads[2].GetTestXml(ignoreAttributes));
58 Assert.Equal(@"<Payload Id='ff2L_N_DLQ.nSUi.l8LxG14gd2V4' FilePath='FirstX64\PFiles\MsiPackage\test.txt' FileSize='*' Hash='*' DownloadUrl='http://example.com/FirstX64/ff2L_N_DLQ.nSUi.l8LxG14gd2V4/FirstX64/PFiles/MsiPackage/test.txt' Packaging='embedded' SourcePath='a3' Container='BundlePackages' />", payloads[3].GetTestXml(ignoreAttributes));
59 }
60 }
src/wix/test/WixToolsetTest.CoreIntegration/PayloadFixture.cs
+2 -2
@@ -194,8 +194,8 @@ namespace WixToolsetTest.CoreIntegration
194 "<Payload Id='burn.exe' FilePath='burn.exe' FileSize='*' Hash='*' Packaging='embedded' SourcePath='a0' Container='PackagesContainer' />",
195 "<Payload Id='test.msi' FilePath='test.msi' FileSize='*' Hash='*' DownloadUrl='http://example.com/id/test.msi/test.msi' Packaging='external' SourcePath='test.msi' />",
196 "<Payload Id='LayoutOnlyPayload' FilePath='DownloadUrlPlaceholdersBundle.wxs' FileSize='*' Hash='*' LayoutOnly='yes' DownloadUrl='http://example.com/id/LayoutOnlyPayload/DownloadUrlPlaceholdersBundle.wxs' Packaging='external' SourcePath='DownloadUrlPlaceholdersBundle.wxs' />",
197 - @"<Payload Id='fhuZsOcBDTuIX8rF96kswqI6SnuI' FilePath='MsiPackage\test.txt' FileSize='*' Hash='*' Packaging='external' SourcePath='MsiPackage\test.txt' />",
198 - @"<Payload Id='faf_OZ741BG7SJ6ZkcIvivZ2Yzo8' FilePath='MsiPackage\Shared.dll' FileSize='*' Hash='*' Packaging='external' SourcePath='MsiPackage\Shared.dll' />",
197 + @"<Payload Id='fhuZsOcBDTuIX8rF96kswqI6SnuI' FilePath='MsiPackage\test.txt' FileSize='*' Hash='*' DownloadUrl='http://example.com/test.msiid/fhuZsOcBDTuIX8rF96kswqI6SnuI/MsiPackage/test.txt' Packaging='external' SourcePath='MsiPackage\test.txt' />",
198 + @"<Payload Id='faf_OZ741BG7SJ6ZkcIvivZ2Yzo8' FilePath='MsiPackage\Shared.dll' FileSize='*' Hash='*' DownloadUrl='http://example.com/test.msiid/faf_OZ741BG7SJ6ZkcIvivZ2Yzo8/MsiPackage/Shared.dll' Packaging='external' SourcePath='MsiPackage\Shared.dll' />",
199 }, payloads);
200
201 var containers = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Container")