From 84689a9b15900ece2c3c40f000416b5bba2c2059 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 13 Dec 2025 20:23:23 -0800 Subject: Fix handling of default items Fixes 7455 --- src/wix/WixToolset.Sdk/tools/wix.props | 12 +++++ src/wix/WixToolset.Sdk/tools/wix.targets | 5 -- src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs | 62 ++++++++++++++++++++++ .../TestData/Wixlib/WithBadFiles/Bad.wxl | 1 + .../TestData/Wixlib/WithBadFiles/Bad.wxs | 1 + .../TestData/Wixlib/WithBadFiles/Library.wxs | 7 +++ .../Wixlib/WithBadFiles/OnlyGoodFiles.wixproj | 15 ++++++ .../Wixlib/WithBadFiles/SkipBadFiles.wixproj | 15 ++++++ 8 files changed, 113 insertions(+), 5 deletions(-) create mode 100644 src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/Bad.wxl create mode 100644 src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/Bad.wxs create mode 100644 src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/Library.wxs create mode 100644 src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/OnlyGoodFiles.wixproj create mode 100644 src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/SkipBadFiles.wixproj (limited to 'src') diff --git a/src/wix/WixToolset.Sdk/tools/wix.props b/src/wix/WixToolset.Sdk/tools/wix.props index af26f694..a7239225 100644 --- a/src/wix/WixToolset.Sdk/tools/wix.props +++ b/src/wix/WixToolset.Sdk/tools/wix.props @@ -25,6 +25,18 @@ Debug + + + + + + + + + + + + false true diff --git a/src/wix/WixToolset.Sdk/tools/wix.targets b/src/wix/WixToolset.Sdk/tools/wix.targets index a9c54269..4de5835f 100644 --- a/src/wix/WixToolset.Sdk/tools/wix.targets +++ b/src/wix/WixToolset.Sdk/tools/wix.targets @@ -31,11 +31,6 @@ $(WixBinDir)WixToolset.BuildTasks.dll - - - - - diff --git a/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs b/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs index 25fd61d9..507a5843 100644 --- a/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs +++ b/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs @@ -582,6 +582,68 @@ namespace WixToolsetTest.Sdk } } + [TestMethod] + [DataRow(BuildSystem.DotNetCoreSdk)] + [DataRow(BuildSystem.MSBuild)] + [DataRow(BuildSystem.MSBuild64)] + public void CanBuildWixlibOnlyGoodFiles(BuildSystem buildSystem) + { + var sourceFolder = TestData.Get(@"TestData", "Wixlib", "WithBadFiles"); + + using (var fs = new TestDataFolderFileSystem()) + { + fs.Initialize(sourceFolder); + var baseFolder = fs.BaseFolder; + var binFolder = Path.Combine(baseFolder, @"bin\"); + var projectPath = Path.Combine(baseFolder, "OnlyGoodFiles.wixproj"); + + var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] + { + MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "WixMSBuildProps", MsbuildFixture.WixPropsPath), + }); + result.AssertSuccess(); + + var wixBuildCommands = MsbuildUtilities.GetToolCommandLines(result, "wix", "build", buildSystem); + WixAssert.Single(wixBuildCommands); + + var path = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories) + .Select(s => s.Substring(baseFolder.Length + 1)) + .Single(); + WixAssert.StringEqual(@"bin\Release\OnlyGoodFiles.wixlib", path); + } + } + + [TestMethod] + [DataRow(BuildSystem.DotNetCoreSdk)] + [DataRow(BuildSystem.MSBuild)] + [DataRow(BuildSystem.MSBuild64)] + public void CanBuildWixlibSkippingBadFiles(BuildSystem buildSystem) + { + var sourceFolder = TestData.Get(@"TestData", "Wixlib", "WithBadFiles"); + + using (var fs = new TestDataFolderFileSystem()) + { + fs.Initialize(sourceFolder); + var baseFolder = fs.BaseFolder; + var binFolder = Path.Combine(baseFolder, @"bin\"); + var projectPath = Path.Combine(baseFolder, "SkipBadFiles.wixproj"); + + var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] + { + MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "WixMSBuildProps", MsbuildFixture.WixPropsPath), + }); + result.AssertSuccess(); + + var wixBuildCommands = MsbuildUtilities.GetToolCommandLines(result, "wix", "build", buildSystem); + WixAssert.Single(wixBuildCommands); + + var path = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories) + .Select(s => s.Substring(baseFolder.Length + 1)) + .Single(); + WixAssert.StringEqual(@"bin\Release\SkipBadFiles.wixlib", path); + } + } + [TestMethod] [DataRow(BuildSystem.DotNetCoreSdk)] [DataRow(BuildSystem.MSBuild)] diff --git a/src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/Bad.wxl b/src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/Bad.wxl new file mode 100644 index 00000000..0e616bd1 --- /dev/null +++ b/src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/Bad.wxl @@ -0,0 +1 @@ +Not a proper XML file, will break the build. diff --git a/src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/Bad.wxs b/src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/Bad.wxs new file mode 100644 index 00000000..0e616bd1 --- /dev/null +++ b/src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/Bad.wxs @@ -0,0 +1 @@ +Not a proper XML file, will break the build. diff --git a/src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/Library.wxs b/src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/Library.wxs new file mode 100644 index 00000000..bcf79a1f --- /dev/null +++ b/src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/Library.wxs @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/OnlyGoodFiles.wixproj b/src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/OnlyGoodFiles.wixproj new file mode 100644 index 00000000..620c5314 --- /dev/null +++ b/src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/OnlyGoodFiles.wixproj @@ -0,0 +1,15 @@ + + + + + + Library + false + + + + + + + + diff --git a/src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/SkipBadFiles.wixproj b/src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/SkipBadFiles.wixproj new file mode 100644 index 00000000..c406ccd9 --- /dev/null +++ b/src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/SkipBadFiles.wixproj @@ -0,0 +1,15 @@ + + + + + + Library + + + + + + + + + -- cgit v1.2.3-55-g6feb