aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2022-09-30 17:59:05 -0700
committerRob Mensching <rob@firegiant.com>2022-10-03 12:29:27 -0700
commitbd05b603142673135ac66cdbc81a2ae3028cb37f (patch)
treeaebf3348846931e1bcbc129b36c636dfae89ec21
parentec6b93c7d601db880d0765fe12abb07a5ec2928e (diff)
downloadwix-bd05b603142673135ac66cdbc81a2ae3028cb37f.tar.gz
wix-bd05b603142673135ac66cdbc81a2ae3028cb37f.tar.bz2
wix-bd05b603142673135ac66cdbc81a2ae3028cb37f.zip
Allow independent extraction of BA to remove use of InternalsVisibleTo
If tests need functionality, it is reasonable to expect users may require it in the future as well. To support the bundle tests, they needed independent extraction of BA from attached containers. So, add a new switch to extract the BA separate from the containers.
-rw-r--r--src/testresultfilelist.txt1
-rw-r--r--src/wix/WixToolset.Core.Burn/CommandLine/ExtractSubcommand.cs28
-rw-r--r--src/wix/WixToolset.Core.Burn/WixToolset.Core.Burn.csproj12
-rw-r--r--src/wix/WixToolset.Core.TestPackage/BundleExtractor.cs55
-rw-r--r--src/wix/test/WixToolsetTest.Core.Burn/BurnReaderFixture.cs44
-rw-r--r--src/wix/test/WixToolsetTest.Core.Burn/WixToolsetTest.Core.Burn.csproj17
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/BundleExtractionFixture.cs1
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/BundleFixture.cs12
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj2
-rw-r--r--src/wix/wix.cmd1
-rw-r--r--src/wix/wix.sln19
11 files changed, 55 insertions, 137 deletions
diff --git a/src/testresultfilelist.txt b/src/testresultfilelist.txt
index 84b6b186..87de7c4e 100644
--- a/src/testresultfilelist.txt
+++ b/src/testresultfilelist.txt
@@ -11,7 +11,6 @@ build/logs/TestResults/WixToolsetTest.BurnE2E.trx
11build/logs/TestResults/WixToolsetTest.Converters.trx 11build/logs/TestResults/WixToolsetTest.Converters.trx
12build/logs/TestResults/WixToolsetTest.Converters.Symbolizer.trx 12build/logs/TestResults/WixToolsetTest.Converters.Symbolizer.trx
13build/logs/TestResults/WixToolsetTest.Core.trx 13build/logs/TestResults/WixToolsetTest.Core.trx
14build/logs/TestResults/WixToolsetTest.Core.Burn.trx
15build/logs/TestResults/WixToolsetTest.Core.Native.trx 14build/logs/TestResults/WixToolsetTest.Core.Native.trx
16build/logs/TestResults/WixToolsetTest.CoreIntegration.trx 15build/logs/TestResults/WixToolsetTest.CoreIntegration.trx
17build/logs/TestResults/WixToolsetTest.Dnc.HostGenerator.trx 16build/logs/TestResults/WixToolsetTest.Dnc.HostGenerator.trx
diff --git a/src/wix/WixToolset.Core.Burn/CommandLine/ExtractSubcommand.cs b/src/wix/WixToolset.Core.Burn/CommandLine/ExtractSubcommand.cs
index b4d71580..1cab276b 100644
--- a/src/wix/WixToolset.Core.Burn/CommandLine/ExtractSubcommand.cs
+++ b/src/wix/WixToolset.Core.Burn/CommandLine/ExtractSubcommand.cs
@@ -27,13 +27,16 @@ namespace WixToolset.Core.Burn.CommandLine
27 27
28 private string IntermediateFolder { get; set; } 28 private string IntermediateFolder { get; set; }
29 29
30 private string ExtractPath { get; set; } 30 private string ExtractBootstrapperApplicationPath { get; set; }
31
32 private string ExtractContainersPath { get; set; }
31 33
32 public override CommandLineHelp GetCommandLineHelp() 34 public override CommandLineHelp GetCommandLineHelp()
33 { 35 {
34 return new CommandLineHelp("Extracts the internals of a bundle to a folder.", "burn extract [options] bundle.exe -o outputfolder ", new[] 36 return new CommandLineHelp("Extracts the internals of a bundle to a folder.", "burn extract [options] bundle.exe -o outputfolder ", new[]
35 { 37 {
36 new CommandLineHelpSwitch("-intermediateFolder", "Optional working folder. If not specified %TMP% will be used."), 38 new CommandLineHelpSwitch("-intermediateFolder", "Optional working folder. If not specified %TMP% will be used."),
39 new CommandLineHelpSwitch("-outba", "-oba", "Folder to extract the bundle bootstrapper application to."),
37 new CommandLineHelpSwitch("-out", "-o", "Folder to extract the bundle contents to."), 40 new CommandLineHelpSwitch("-out", "-o", "Folder to extract the bundle contents to."),
38 }); 41 });
39 } 42 }
@@ -44,7 +47,7 @@ namespace WixToolset.Core.Burn.CommandLine
44 { 47 {
45 this.Messaging.Write(ErrorMessages.FilePathRequired("input bundle")); 48 this.Messaging.Write(ErrorMessages.FilePathRequired("input bundle"));
46 } 49 }
47 else if (String.IsNullOrEmpty(this.ExtractPath)) 50 else if (String.IsNullOrEmpty(this.ExtractBootstrapperApplicationPath) && String.IsNullOrEmpty(this.ExtractContainersPath))
48 { 51 {
49 this.Messaging.Write(ErrorMessages.FilePathRequired("output the extracted bundle")); 52 this.Messaging.Write(ErrorMessages.FilePathRequired("output the extracted bundle"));
50 } 53 }
@@ -55,19 +58,23 @@ namespace WixToolset.Core.Burn.CommandLine
55 this.IntermediateFolder = Path.GetTempPath(); 58 this.IntermediateFolder = Path.GetTempPath();
56 } 59 }
57 60
58 var uxExtractPath = Path.Combine(this.ExtractPath, "BA");
59
60 using (var reader = BurnReader.Open(this.Messaging, this.FileSystem, this.InputPath)) 61 using (var reader = BurnReader.Open(this.Messaging, this.FileSystem, this.InputPath))
61 { 62 {
62 reader.ExtractUXContainer(uxExtractPath, this.IntermediateFolder); 63 if (!String.IsNullOrEmpty(this.ExtractBootstrapperApplicationPath))
64 {
65 reader.ExtractUXContainer(this.ExtractBootstrapperApplicationPath, this.IntermediateFolder);
66 }
63 67
64 try 68 try
65 { 69 {
66 reader.ExtractAttachedContainers(this.ExtractPath, this.IntermediateFolder); 70 if (!String.IsNullOrEmpty(this.ExtractContainersPath))
71 {
72 reader.ExtractAttachedContainers(this.ExtractContainersPath, this.IntermediateFolder);
73 }
67 } 74 }
68 catch 75 catch
69 { 76 {
70 this.Messaging.Write(BurnBackendWarnings.FailedToExtractAttachedContainers(new Data.SourceLineNumber(this.ExtractPath))); 77 this.Messaging.Write(BurnBackendWarnings.FailedToExtractAttachedContainers(new SourceLineNumber(this.ExtractContainersPath)));
71 } 78 }
72 } 79 }
73 } 80 }
@@ -85,10 +92,15 @@ namespace WixToolset.Core.Burn.CommandLine
85 case "intermediatefolder": 92 case "intermediatefolder":
86 this.IntermediateFolder = parser.GetNextArgumentAsDirectoryOrError(argument); 93 this.IntermediateFolder = parser.GetNextArgumentAsDirectoryOrError(argument);
87 return true; 94 return true;
95
96 case "oba":
97 case "outba":
98 this.ExtractBootstrapperApplicationPath = parser.GetNextArgumentAsDirectoryOrError(argument);
99 return true;
88 100
89 case "o": 101 case "o":
90 case "out": 102 case "out":
91 this.ExtractPath = parser.GetNextArgumentAsDirectoryOrError(argument); 103 this.ExtractContainersPath = parser.GetNextArgumentAsDirectoryOrError(argument);
92 return true; 104 return true;
93 } 105 }
94 } 106 }
diff --git a/src/wix/WixToolset.Core.Burn/WixToolset.Core.Burn.csproj b/src/wix/WixToolset.Core.Burn/WixToolset.Core.Burn.csproj
index 4d1c91f9..754af45e 100644
--- a/src/wix/WixToolset.Core.Burn/WixToolset.Core.Burn.csproj
+++ b/src/wix/WixToolset.Core.Burn/WixToolset.Core.Burn.csproj
@@ -15,18 +15,6 @@
15 </PropertyGroup> 15 </PropertyGroup>
16 16
17 <ItemGroup> 17 <ItemGroup>
18 <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
19 <_Parameter1>WixToolset.Core.TestPackage, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a9967ec28982f42ee51a47dd5204315975a6ed69294b982146a99a70130a2fa13e226aaddde14c17d1bf3af69e8956d69a86585e74d208efcc5ac98a0686055327b2e87960d3c39bf3a6bc1e572863327d19dbf4fd2616dda124dbea260755a2d1d39d3cf1049ea526493eb2bf996b8ad985e3012308529e5b9b0f5cd5fa04bd</_Parameter1>
20 </AssemblyAttribute>
21 <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
22 <_Parameter1>WixToolsetTest.Core.Burn, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a9967ec28982f42ee51a47dd5204315975a6ed69294b982146a99a70130a2fa13e226aaddde14c17d1bf3af69e8956d69a86585e74d208efcc5ac98a0686055327b2e87960d3c39bf3a6bc1e572863327d19dbf4fd2616dda124dbea260755a2d1d39d3cf1049ea526493eb2bf996b8ad985e3012308529e5b9b0f5cd5fa04bd</_Parameter1>
23 </AssemblyAttribute>
24 <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
25 <_Parameter1>WixToolsetTest.CoreIntegration, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a9967ec28982f42ee51a47dd5204315975a6ed69294b982146a99a70130a2fa13e226aaddde14c17d1bf3af69e8956d69a86585e74d208efcc5ac98a0686055327b2e87960d3c39bf3a6bc1e572863327d19dbf4fd2616dda124dbea260755a2d1d39d3cf1049ea526493eb2bf996b8ad985e3012308529e5b9b0f5cd5fa04bd</_Parameter1>
26 </AssemblyAttribute>
27 </ItemGroup>
28
29 <ItemGroup>
30 <ProjectReference Include="..\WixToolset.Core\WixToolset.Core.csproj" /> 18 <ProjectReference Include="..\WixToolset.Core\WixToolset.Core.csproj" />
31 <ProjectReference Include="..\WixToolset.Core.Native\WixToolset.Core.Native.csproj" /> 19 <ProjectReference Include="..\WixToolset.Core.Native\WixToolset.Core.Native.csproj" />
32 </ItemGroup> 20 </ItemGroup>
diff --git a/src/wix/WixToolset.Core.TestPackage/BundleExtractor.cs b/src/wix/WixToolset.Core.TestPackage/BundleExtractor.cs
index f8cf49df..3161c4eb 100644
--- a/src/wix/WixToolset.Core.TestPackage/BundleExtractor.cs
+++ b/src/wix/WixToolset.Core.TestPackage/BundleExtractor.cs
@@ -2,9 +2,10 @@
2 2
3namespace WixToolset.Core.TestPackage 3namespace WixToolset.Core.TestPackage
4{ 4{
5 using System;
6 using System.Collections.Generic;
5 using System.IO; 7 using System.IO;
6 using System.Xml; 8 using System.Xml;
7 using WixToolset.Core.Burn.Bundles;
8 using WixToolset.Data.Burn; 9 using WixToolset.Data.Burn;
9 using WixToolset.Extensibility.Services; 10 using WixToolset.Extensibility.Services;
10 11
@@ -13,6 +14,10 @@ namespace WixToolset.Core.TestPackage
13 /// </summary> 14 /// </summary>
14 public class BundleExtractor 15 public class BundleExtractor
15 { 16 {
17 private const string BurnNamespace = "http://wixtoolset.org/schemas/v4/2008/Burn";
18 private const string BADataFileName = "BootstrapperApplicationData.xml";
19 private const string BundleExtensionDataFileName = "BundleExtensionData.xml";
20
16 /// <summary> 21 /// <summary>
17 /// Extracts the BA container. 22 /// Extracts the BA container.
18 /// </summary> 23 /// </summary>
@@ -32,25 +37,34 @@ namespace WixToolset.Core.TestPackage
32 /// <param name="messaging"></param> 37 /// <param name="messaging"></param>
33 /// <param name="bundleFilePath">Path to the bundle.</param> 38 /// <param name="bundleFilePath">Path to the bundle.</param>
34 /// <param name="baFolderPath">Path to extract BA to.</param> 39 /// <param name="baFolderPath">Path to extract BA to.</param>
35 /// <param name="otherContainersFolderPath">Path to extract other attached containers to.</param> 40 /// <param name="otherContainersFolderPath">Optional path to extract other attached containers to.</param>
36 /// <param name="tempFolderPath">Temp path for extraction.</param> 41 /// <param name="tempFolderPath">Temp path for extraction.</param>
37 /// <returns></returns> 42 /// <returns></returns>
38 public static ExtractBAContainerResult ExtractAllContainers(IMessaging messaging, string bundleFilePath, string baFolderPath, string otherContainersFolderPath, string tempFolderPath) 43 public static ExtractBAContainerResult ExtractAllContainers(IMessaging messaging, string bundleFilePath, string baFolderPath, string otherContainersFolderPath, string tempFolderPath)
39 { 44 {
40 var result = new ExtractBAContainerResult();
41 Directory.CreateDirectory(tempFolderPath); 45 Directory.CreateDirectory(tempFolderPath);
42 using (var burnReader = BurnReader.Open(messaging, new TestFileSystem(), bundleFilePath)) 46
47 var args = new List<string>
43 { 48 {
44 result.Success = burnReader.ExtractUXContainer(baFolderPath, tempFolderPath); 49 "burn", "extract",
50 "-intermediatefolder", tempFolderPath,
51 bundleFilePath,
52 "-oba", baFolderPath
53 };
45 54
46 if (otherContainersFolderPath != null) 55 if (!String.IsNullOrEmpty(otherContainersFolderPath))
47 { 56 {
48 result.AttachedContainersSuccess = burnReader.ExtractAttachedContainers(otherContainersFolderPath, tempFolderPath); 57 args.Add("-o");
49 } 58 args.Add(otherContainersFolderPath);
50 } 59 }
51 60
52 if (result.Success) 61 var runnerResult = WixRunner.Execute(args.ToArray());
62
63 var result = new ExtractBAContainerResult();
64
65 if (runnerResult.ExitCode == 0)
53 { 66 {
67 result.Success = true;
54 result.ManifestDocument = LoadBurnManifest(baFolderPath); 68 result.ManifestDocument = LoadBurnManifest(baFolderPath);
55 result.ManifestNamespaceManager = GetBurnNamespaceManager(result.ManifestDocument, "burn"); 69 result.ManifestNamespaceManager = GetBurnNamespaceManager(result.ManifestDocument, "burn");
56 70
@@ -99,7 +113,7 @@ namespace WixToolset.Core.TestPackage
99 public static XmlNamespaceManager GetBurnNamespaceManager(XmlDocument document, string prefix) 113 public static XmlNamespaceManager GetBurnNamespaceManager(XmlDocument document, string prefix)
100 { 114 {
101 var namespaceManager = new XmlNamespaceManager(document.NameTable); 115 var namespaceManager = new XmlNamespaceManager(document.NameTable);
102 namespaceManager.AddNamespace(prefix, BurnCommon.BurnNamespace); 116 namespaceManager.AddNamespace(prefix, BurnNamespace);
103 return namespaceManager; 117 return namespaceManager;
104 } 118 }
105 119
@@ -111,7 +125,7 @@ namespace WixToolset.Core.TestPackage
111 public static XmlDocument LoadBAData(string baFolderPath) 125 public static XmlDocument LoadBAData(string baFolderPath)
112 { 126 {
113 var document = new XmlDocument(); 127 var document = new XmlDocument();
114 document.Load(Path.Combine(baFolderPath, BurnCommon.BADataFileName)); 128 document.Load(Path.Combine(baFolderPath, BADataFileName));
115 return document; 129 return document;
116 } 130 }
117 131
@@ -123,7 +137,7 @@ namespace WixToolset.Core.TestPackage
123 public static XmlDocument LoadBundleExtensionData(string baFolderPath) 137 public static XmlDocument LoadBundleExtensionData(string baFolderPath)
124 { 138 {
125 var document = new XmlDocument(); 139 var document = new XmlDocument();
126 document.Load(Path.Combine(baFolderPath, BurnCommon.BundleExtensionDataFileName)); 140 document.Load(Path.Combine(baFolderPath, BundleExtensionDataFileName));
127 return document; 141 return document;
128 } 142 }
129 143
@@ -138,20 +152,5 @@ namespace WixToolset.Core.TestPackage
138 document.Load(Path.Combine(baFolderPath, "manifest.xml")); 152 document.Load(Path.Combine(baFolderPath, "manifest.xml"));
139 return document; 153 return document;
140 } 154 }
141
142 private class TestFileSystem : IFileSystem
143 {
144 public void CopyFile(string source, string destination, bool allowHardlink)
145 {
146 Directory.CreateDirectory(Path.GetDirectoryName(destination));
147 File.Copy(source, destination);
148 }
149
150 public void MoveFile(string source, string destination)
151 {
152 Directory.CreateDirectory(Path.GetDirectoryName(destination));
153 File.Move(source, destination);
154 }
155 }
156 } 155 }
157} 156}
diff --git a/src/wix/test/WixToolsetTest.Core.Burn/BurnReaderFixture.cs b/src/wix/test/WixToolsetTest.Core.Burn/BurnReaderFixture.cs
deleted file mode 100644
index a83da7f6..00000000
--- a/src/wix/test/WixToolsetTest.Core.Burn/BurnReaderFixture.cs
+++ /dev/null
@@ -1,44 +0,0 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3namespace WixToolsetTest.Core.Burn
4{
5 using System;
6 using WixToolset.Core.Burn.Bundles;
7 using Xunit;
8
9 public class BurnReaderFixture
10 {
11 [Fact]
12 public void CanReadUInt16Max()
13 {
14 var bytes = new byte[] { 0xFF, 0xFF };
15 var offset = 0u;
16
17 var result = BurnCommon.ReadUInt16(bytes, offset);
18
19 Assert.Equal(UInt16.MaxValue, result);
20 }
21
22 [Fact]
23 public void CanReadUInt32Max()
24 {
25 var bytes = new byte[] { 0xFF, 0xFF, 0xFF, 0xFF };
26 var offset = 0u;
27
28 var result = BurnCommon.ReadUInt32(bytes, offset);
29
30 Assert.Equal(UInt32.MaxValue, result);
31 }
32
33 [Fact]
34 public void CanReadUInt64Max()
35 {
36 var bytes = new byte[] { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
37 var offset = 0u;
38
39 var result = BurnCommon.ReadUInt64(bytes, offset);
40
41 Assert.Equal(UInt64.MaxValue, result);
42 }
43 }
44}
diff --git a/src/wix/test/WixToolsetTest.Core.Burn/WixToolsetTest.Core.Burn.csproj b/src/wix/test/WixToolsetTest.Core.Burn/WixToolsetTest.Core.Burn.csproj
deleted file mode 100644
index 36dfa4b3..00000000
--- a/src/wix/test/WixToolsetTest.Core.Burn/WixToolsetTest.Core.Burn.csproj
+++ /dev/null
@@ -1,17 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4<Project Sdk="Microsoft.NET.Sdk">
5 <PropertyGroup>
6 <TargetFramework>netcoreapp3.1</TargetFramework>
7 <IsWixTestProject>true</IsWixTestProject>
8 </PropertyGroup>
9
10 <ItemGroup>
11 <ProjectReference Include="..\..\WixToolset.Core.Burn\WixToolset.Core.Burn.csproj" />
12 </ItemGroup>
13
14 <ItemGroup>
15 <PackageReference Include="WixBuildTools.TestSupport" />
16 </ItemGroup>
17</Project>
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/BundleExtractionFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/BundleExtractionFixture.cs
index 478d8c95..7b4999cc 100644
--- a/src/wix/test/WixToolsetTest.CoreIntegration/BundleExtractionFixture.cs
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/BundleExtractionFixture.cs
@@ -46,6 +46,7 @@ namespace WixToolsetTest.CoreIntegration
46 { 46 {
47 "burn", "extract", 47 "burn", "extract",
48 exePath, 48 exePath,
49 "-oba", baFolderPath,
49 "-o", extractFolderPath 50 "-o", extractFolderPath
50 }); 51 });
51 52
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/BundleFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/BundleFixture.cs
index f72adad0..db831d0a 100644
--- a/src/wix/test/WixToolsetTest.CoreIntegration/BundleFixture.cs
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/BundleFixture.cs
@@ -140,7 +140,7 @@ namespace WixToolsetTest.CoreIntegration
140 switch (attribute.LocalName) 140 switch (attribute.LocalName)
141 { 141 {
142 case "EngineVersion": 142 case "EngineVersion":
143 WixAssert.StringEqual($"{ThisAssembly.Git.BaseVersion.Major}.{ThisAssembly.Git.BaseVersion.Minor}.{ThisAssembly.Git.BaseVersion.Patch}.{ThisAssembly.Git.Commits}", attribute.Value); 143 Assert.True(Version.TryParse(attribute.Value, out var _));
144 break; 144 break;
145 case "ProtocolVersion": 145 case "ProtocolVersion":
146 WixAssert.StringEqual("1", attribute.Value); 146 WixAssert.StringEqual("1", attribute.Value);
@@ -252,7 +252,7 @@ namespace WixToolsetTest.CoreIntegration
252 switch (attribute.LocalName) 252 switch (attribute.LocalName)
253 { 253 {
254 case "EngineVersion": 254 case "EngineVersion":
255 WixAssert.StringEqual($"{ThisAssembly.Git.BaseVersion.Major}.{ThisAssembly.Git.BaseVersion.Minor}.{ThisAssembly.Git.BaseVersion.Patch}.{ThisAssembly.Git.Commits}", attribute.Value); 255 Assert.True(Version.TryParse(attribute.Value, out var _));
256 break; 256 break;
257 case "ProtocolVersion": 257 case "ProtocolVersion":
258 WixAssert.StringEqual("1", attribute.Value); 258 WixAssert.StringEqual("1", attribute.Value);
@@ -553,7 +553,7 @@ namespace WixToolsetTest.CoreIntegration
553 "-o", exePath, 553 "-o", exePath,
554 }); 554 });
555 555
556 var attachedContainerWarnings = result.Messages.Where(m => m.Id == (int)BurnBackendWarnings.Ids.AttachedContainerPayloadCollision) 556 var attachedContainerWarnings = result.Messages.Where(m => m.Id == 8500)
557 .Select(m => m.ToString()) 557 .Select(m => m.ToString())
558 .ToArray(); 558 .ToArray();
559 WixAssert.CompareLineByLine(new string[] 559 WixAssert.CompareLineByLine(new string[]
@@ -561,7 +561,7 @@ namespace WixToolsetTest.CoreIntegration
561 "The Payload 'Auto2' has a duplicate Name 'burn.exe' in the attached container. When extracting the bundle with dark.exe, the file will get overwritten.", 561 "The Payload 'Auto2' has a duplicate Name 'burn.exe' in the attached container. When extracting the bundle with dark.exe, the file will get overwritten.",
562 }, attachedContainerWarnings); 562 }, attachedContainerWarnings);
563 563
564 var baContainerErrors = result.Messages.Where(m => m.Id == (int)BurnBackendErrors.Ids.BAContainerPayloadCollision) 564 var baContainerErrors = result.Messages.Where(m => m.Id == 8002)
565 .Select(m => m.ToString()) 565 .Select(m => m.ToString())
566 .ToArray(); 566 .ToArray();
567 WixAssert.CompareLineByLine(new string[] 567 WixAssert.CompareLineByLine(new string[]
@@ -571,7 +571,7 @@ namespace WixToolsetTest.CoreIntegration
571 "The Payload 'uxYRbgitOs0K878jn5L_z7LdJ21KI' has a duplicate Name 'BundleExtensionData.xml' in the BA container. When extracting the container at runtime, the file will get overwritten.", 571 "The Payload 'uxYRbgitOs0K878jn5L_z7LdJ21KI' has a duplicate Name 'BundleExtensionData.xml' in the BA container. When extracting the container at runtime, the file will get overwritten.",
572 }, baContainerErrors); 572 }, baContainerErrors);
573 573
574 var externalErrors = result.Messages.Where(m => m.Id == (int)BurnBackendErrors.Ids.ExternalPayloadCollision) 574 var externalErrors = result.Messages.Where(m => m.Id == 8004)
575 .Select(m => m.ToString()) 575 .Select(m => m.ToString())
576 .ToArray(); 576 .ToArray();
577 WixAssert.CompareLineByLine(new string[] 577 WixAssert.CompareLineByLine(new string[]
@@ -580,7 +580,7 @@ namespace WixToolsetTest.CoreIntegration
580 "The external Container 'MsiPackagesContainer' has a duplicate Name 'ContainerCollision'. When building the bundle or laying out the bundle, the file will get overwritten.", 580 "The external Container 'MsiPackagesContainer' has a duplicate Name 'ContainerCollision'. When building the bundle or laying out the bundle, the file will get overwritten.",
581 }, externalErrors); 581 }, externalErrors);
582 582
583 var packageCacheErrors = result.Messages.Where(m => m.Id == (int)BurnBackendErrors.Ids.PackageCachePayloadCollision) 583 var packageCacheErrors = result.Messages.Where(m => m.Id == 8006)
584 .Select(m => m.ToString()) 584 .Select(m => m.ToString())
585 .ToArray(); 585 .ToArray();
586 WixAssert.CompareLineByLine(new string[] 586 WixAssert.CompareLineByLine(new string[]
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj b/src/wix/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
index 16e6f73a..4ff61280 100644
--- a/src/wix/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
@@ -21,6 +21,6 @@
21 </ItemGroup> 21 </ItemGroup>
22 22
23 <ItemGroup> 23 <ItemGroup>
24 <PackageReference Include="WixBuildTools.TestSupport" /> 24 <PackageReference Include="WixBuildTools.TestSupport" />
25 </ItemGroup> 25 </ItemGroup>
26</Project> 26</Project>
diff --git a/src/wix/wix.cmd b/src/wix/wix.cmd
index 17c1ab6f..f2e64e50 100644
--- a/src/wix/wix.cmd
+++ b/src/wix/wix.cmd
@@ -27,7 +27,6 @@ msbuild wix.sln -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\wix_build
27dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Converters -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Converters.trx" || exit /b 27dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Converters -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Converters.trx" || exit /b
28dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Converters.Symbolizer -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Converters.Symbolizer.trx" || exit /b 28dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Converters.Symbolizer -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Converters.Symbolizer.trx" || exit /b
29dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Core -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Core.trx" || exit /b 29dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Core -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Core.trx" || exit /b
30dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Core.Burn -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Core.Burn.trx" || exit /b
31dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Core.Native -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Core.Native.trx" || exit /b 30dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Core.Native -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Core.Native.trx" || exit /b
32dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.CoreIntegration -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.CoreIntegration.trx" || exit /b 31dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.CoreIntegration -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.CoreIntegration.trx" || exit /b
33 32
diff --git a/src/wix/wix.sln b/src/wix/wix.sln
index 13ca8785..cffaf9ed 100644
--- a/src/wix/wix.sln
+++ b/src/wix/wix.sln
@@ -24,8 +24,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Example.Extension", "test\E
24EndProject 24EndProject
25Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.CoreIntegration", "test\WixToolsetTest.CoreIntegration\WixToolsetTest.CoreIntegration.csproj", "{E8A08E86-1780-4ED4-8F63-AB2B52C1C16B}" 25Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.CoreIntegration", "test\WixToolsetTest.CoreIntegration\WixToolsetTest.CoreIntegration.csproj", "{E8A08E86-1780-4ED4-8F63-AB2B52C1C16B}"
26EndProject 26EndProject
27Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.Core.Burn", "test\WixToolsetTest.Core.Burn\WixToolsetTest.Core.Burn.csproj", "{DF63F589-028E-45A1-A212-948FACF1FDCD}"
28EndProject
29Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.Core.TestPackage", "WixToolset.Core.TestPackage\WixToolset.Core.TestPackage.csproj", "{853716DB-C02C-41BD-91BC-79CDC0C17D10}" 27Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.Core.TestPackage", "WixToolset.Core.TestPackage\WixToolset.Core.TestPackage.csproj", "{853716DB-C02C-41BD-91BC-79CDC0C17D10}"
30EndProject 28EndProject
31Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CompileCoreTestExtensionWixlib", "test\CompileCoreTestExtensionWixlib\CompileCoreTestExtensionWixlib.csproj", "{23FC60D7-B101-42F8-9786-DB7A9CD964A2}" 29Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CompileCoreTestExtensionWixlib", "test\CompileCoreTestExtensionWixlib\CompileCoreTestExtensionWixlib.csproj", "{23FC60D7-B101-42F8-9786-DB7A9CD964A2}"
@@ -222,22 +220,6 @@ Global
222 {E8A08E86-1780-4ED4-8F63-AB2B52C1C16B}.Release|x64.Build.0 = Release|Any CPU 220 {E8A08E86-1780-4ED4-8F63-AB2B52C1C16B}.Release|x64.Build.0 = Release|Any CPU
223 {E8A08E86-1780-4ED4-8F63-AB2B52C1C16B}.Release|x86.ActiveCfg = Release|Any CPU 221 {E8A08E86-1780-4ED4-8F63-AB2B52C1C16B}.Release|x86.ActiveCfg = Release|Any CPU
224 {E8A08E86-1780-4ED4-8F63-AB2B52C1C16B}.Release|x86.Build.0 = Release|Any CPU 222 {E8A08E86-1780-4ED4-8F63-AB2B52C1C16B}.Release|x86.Build.0 = Release|Any CPU
225 {DF63F589-028E-45A1-A212-948FACF1FDCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
226 {DF63F589-028E-45A1-A212-948FACF1FDCD}.Debug|Any CPU.Build.0 = Debug|Any CPU
227 {DF63F589-028E-45A1-A212-948FACF1FDCD}.Debug|ARM64.ActiveCfg = Debug|Any CPU
228 {DF63F589-028E-45A1-A212-948FACF1FDCD}.Debug|ARM64.Build.0 = Debug|Any CPU
229 {DF63F589-028E-45A1-A212-948FACF1FDCD}.Debug|x64.ActiveCfg = Debug|Any CPU
230 {DF63F589-028E-45A1-A212-948FACF1FDCD}.Debug|x64.Build.0 = Debug|Any CPU
231 {DF63F589-028E-45A1-A212-948FACF1FDCD}.Debug|x86.ActiveCfg = Debug|Any CPU
232 {DF63F589-028E-45A1-A212-948FACF1FDCD}.Debug|x86.Build.0 = Debug|Any CPU
233 {DF63F589-028E-45A1-A212-948FACF1FDCD}.Release|Any CPU.ActiveCfg = Release|Any CPU
234 {DF63F589-028E-45A1-A212-948FACF1FDCD}.Release|Any CPU.Build.0 = Release|Any CPU
235 {DF63F589-028E-45A1-A212-948FACF1FDCD}.Release|ARM64.ActiveCfg = Release|Any CPU
236 {DF63F589-028E-45A1-A212-948FACF1FDCD}.Release|ARM64.Build.0 = Release|Any CPU
237 {DF63F589-028E-45A1-A212-948FACF1FDCD}.Release|x64.ActiveCfg = Release|Any CPU
238 {DF63F589-028E-45A1-A212-948FACF1FDCD}.Release|x64.Build.0 = Release|Any CPU
239 {DF63F589-028E-45A1-A212-948FACF1FDCD}.Release|x86.ActiveCfg = Release|Any CPU
240 {DF63F589-028E-45A1-A212-948FACF1FDCD}.Release|x86.Build.0 = Release|Any CPU
241 {853716DB-C02C-41BD-91BC-79CDC0C17D10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 223 {853716DB-C02C-41BD-91BC-79CDC0C17D10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
242 {853716DB-C02C-41BD-91BC-79CDC0C17D10}.Debug|Any CPU.Build.0 = Debug|Any CPU 224 {853716DB-C02C-41BD-91BC-79CDC0C17D10}.Debug|Any CPU.Build.0 = Debug|Any CPU
243 {853716DB-C02C-41BD-91BC-79CDC0C17D10}.Debug|ARM64.ActiveCfg = Debug|Any CPU 225 {853716DB-C02C-41BD-91BC-79CDC0C17D10}.Debug|ARM64.ActiveCfg = Debug|Any CPU
@@ -439,7 +421,6 @@ Global
439 {9DB36DB1-24A1-47A7-9E57-D48A2E33C13C} = {1284331E-BC6C-426D-AAAF-140C0174F875} 421 {9DB36DB1-24A1-47A7-9E57-D48A2E33C13C} = {1284331E-BC6C-426D-AAAF-140C0174F875}
440 {C66C2503-C671-4230-8B48-1D93A8532A28} = {1284331E-BC6C-426D-AAAF-140C0174F875} 422 {C66C2503-C671-4230-8B48-1D93A8532A28} = {1284331E-BC6C-426D-AAAF-140C0174F875}
441 {E8A08E86-1780-4ED4-8F63-AB2B52C1C16B} = {1284331E-BC6C-426D-AAAF-140C0174F875} 423 {E8A08E86-1780-4ED4-8F63-AB2B52C1C16B} = {1284331E-BC6C-426D-AAAF-140C0174F875}
442 {DF63F589-028E-45A1-A212-948FACF1FDCD} = {1284331E-BC6C-426D-AAAF-140C0174F875}
443 {23FC60D7-B101-42F8-9786-DB7A9CD964A2} = {1284331E-BC6C-426D-AAAF-140C0174F875} 424 {23FC60D7-B101-42F8-9786-DB7A9CD964A2} = {1284331E-BC6C-426D-AAAF-140C0174F875}
444 {C44BB95F-5020-4876-933C-B73A24C488FD} = {1284331E-BC6C-426D-AAAF-140C0174F875} 425 {C44BB95F-5020-4876-933C-B73A24C488FD} = {1284331E-BC6C-426D-AAAF-140C0174F875}
445 {93645356-5D5F-45DE-AC7F-252D35E1ACE5} = {1284331E-BC6C-426D-AAAF-140C0174F875} 426 {93645356-5D5F-45DE-AC7F-252D35E1ACE5} = {1284331E-BC6C-426D-AAAF-140C0174F875}