diff options
3 files changed, 38 insertions, 1 deletions
diff --git a/src/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs b/src/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs index d12f00d1..994e02f8 100644 --- a/src/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs +++ b/src/WixToolset.Core.Burn/Bundles/CreateBurnManifestCommand.cs | |||
@@ -332,7 +332,7 @@ namespace WixToolset.Core.Burn.Bundles | |||
332 | var msiPropertiesByPackage = this.Section.Symbols.OfType<WixBundleMsiPropertySymbol>().ToLookup(r => r.PackageRef); | 332 | var msiPropertiesByPackage = this.Section.Symbols.OfType<WixBundleMsiPropertySymbol>().ToLookup(r => r.PackageRef); |
333 | var payloadsByPackage = this.Payloads.Values.ToLookup(p => p.PackageRef); | 333 | var payloadsByPackage = this.Payloads.Values.ToLookup(p => p.PackageRef); |
334 | var relatedPackagesByPackage = this.Section.Symbols.OfType<WixBundleRelatedPackageSymbol>().ToLookup(r => r.PackageRef); | 334 | var relatedPackagesByPackage = this.Section.Symbols.OfType<WixBundleRelatedPackageSymbol>().ToLookup(r => r.PackageRef); |
335 | var slipstreamMspsByPackage = this.Section.Symbols.OfType<WixBundleSlipstreamMspSymbol>().ToLookup(r => r.MspPackageRef); | 335 | var slipstreamMspsByPackage = this.Section.Symbols.OfType<WixBundleSlipstreamMspSymbol>().ToLookup(r => r.TargetPackageRef); |
336 | var exitCodesByPackage = this.Section.Symbols.OfType<WixBundlePackageExitCodeSymbol>().ToLookup(r => r.ChainPackageId); | 336 | var exitCodesByPackage = this.Section.Symbols.OfType<WixBundlePackageExitCodeSymbol>().ToLookup(r => r.ChainPackageId); |
337 | var commandLinesByPackage = this.Section.Symbols.OfType<WixBundlePackageCommandLineSymbol>().ToLookup(r => r.WixBundlePackageRef); | 337 | var commandLinesByPackage = this.Section.Symbols.OfType<WixBundlePackageCommandLineSymbol>().ToLookup(r => r.WixBundlePackageRef); |
338 | 338 | ||
diff --git a/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs b/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs index f1d0ea58..dda4ca28 100644 --- a/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs | |||
@@ -83,6 +83,33 @@ namespace WixToolsetTest.CoreIntegration | |||
83 | } | 83 | } |
84 | } | 84 | } |
85 | 85 | ||
86 | [Fact] | ||
87 | public void CanBuildBundleWithSlipstreamPatch() | ||
88 | { | ||
89 | var folder = TestData.Get(@"TestData\PatchSingle"); | ||
90 | |||
91 | using (var fs = new DisposableFileSystem()) | ||
92 | { | ||
93 | var tempFolder = fs.GetFolder(); | ||
94 | |||
95 | var baselinePdb = BuildMsi("Baseline.msi", folder, tempFolder, "1.0.0", "1.0.0", "1.0.0"); | ||
96 | var update1Pdb = BuildMsi("Update.msi", folder, tempFolder, "1.0.1", "1.0.1", "1.0.1"); | ||
97 | var patchPdb = BuildMsp("Patch1.msp", folder, tempFolder, "1.0.1"); | ||
98 | var bundleAPdb = BuildBundle("BundleA.exe", Path.Combine(folder, "BundleA"), tempFolder); | ||
99 | |||
100 | using (var wixOutput = WixOutput.Read(bundleAPdb)) | ||
101 | { | ||
102 | var manifestData = wixOutput.GetData(BurnConstants.BurnManifestWixOutputStreamName); | ||
103 | var doc = new XmlDocument(); | ||
104 | doc.LoadXml(manifestData); | ||
105 | var nsmgr = BundleExtractor.GetBurnNamespaceManager(doc, "w"); | ||
106 | var slipstreamMspNodes = doc.SelectNodes("/w:BurnManifest/w:Chain/w:MsiPackage/w:SlipstreamMsp", nsmgr); | ||
107 | Assert.Equal(1, slipstreamMspNodes.Count); | ||
108 | Assert.Equal("<SlipstreamMsp Id='PatchA' />", slipstreamMspNodes[0].GetTestXml()); | ||
109 | } | ||
110 | } | ||
111 | } | ||
112 | |||
86 | private static void VerifyPatchTargetCodes(string pdbPath, string[] expected) | 113 | private static void VerifyPatchTargetCodes(string pdbPath, string[] expected) |
87 | { | 114 | { |
88 | using (var wixOutput = WixOutput.Read(pdbPath)) | 115 | using (var wixOutput = WixOutput.Read(pdbPath)) |
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/BundleA/Bundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/BundleA/Bundle.wxs new file mode 100644 index 00000000..bc460636 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchSingle/BundleA/Bundle.wxs | |||
@@ -0,0 +1,10 @@ | |||
1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | ||
2 | <Fragment> | ||
3 | <PackageGroup Id="BundlePackages"> | ||
4 | <MsiPackage Id="PackageA" SourceFile="Baseline.msi"> | ||
5 | <SlipstreamMsp Id="PatchA" /> | ||
6 | </MsiPackage> | ||
7 | <MspPackage Id="PatchA" SourceFile="Patch1.msp" /> | ||
8 | </PackageGroup> | ||
9 | </Fragment> | ||
10 | </Wix> | ||