aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2025-12-13 20:23:23 -0800
committerRob Mensching <rob@firegiant.com>2025-12-14 07:58:11 -0800
commit84689a9b15900ece2c3c40f000416b5bba2c2059 (patch)
tree4696fe9879bc56b6c31d3e05dfdbd8a701946449
parent7760a8b0d241223e0210c52d17b950f64629d2a4 (diff)
downloadwix-84689a9b15900ece2c3c40f000416b5bba2c2059.tar.gz
wix-84689a9b15900ece2c3c40f000416b5bba2c2059.tar.bz2
wix-84689a9b15900ece2c3c40f000416b5bba2c2059.zip
Fix handling of default items
Fixes 7455
-rw-r--r--src/wix/WixToolset.Sdk/tools/wix.props12
-rw-r--r--src/wix/WixToolset.Sdk/tools/wix.targets5
-rw-r--r--src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs62
-rw-r--r--src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/Bad.wxl1
-rw-r--r--src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/Bad.wxs1
-rw-r--r--src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/Library.wxs7
-rw-r--r--src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/OnlyGoodFiles.wixproj15
-rw-r--r--src/wix/test/WixToolsetTest.Sdk/TestData/Wixlib/WithBadFiles/SkipBadFiles.wixproj15
8 files changed, 113 insertions, 5 deletions
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 @@
25 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 25 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
26 </PropertyGroup> 26 </PropertyGroup>
27 27
28 <!-- Default items -->
29 <ItemGroup Condition=" '$(EnableDefaultItems)' == 'true' ">
30 <Compile Include="**/*.wxs" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" Condition=" '$(EnableDefaultCompileItems)' == 'true' " />
31 <EmbeddedResource Include="**/*.wxl" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" Condition=" '$(EnableDefaultEmbeddedResourceItems)' == 'true' " />
32 </ItemGroup>
33 <ItemGroup Condition=" '$(EnableDefaultItems)' == 'true' And '$(EnableDefaultNoneItems)' == 'true' ">
34 <None Include="**/*" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" />
35 <None Remove="**/*.wxs" />
36 <None Remove="**/*.wxl" />
37 <None Remove="**/*.wxi" />
38 </ItemGroup>
39
28 <PropertyGroup> 40 <PropertyGroup>
29 <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences> 41 <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
30 <DisableTransitiveProjectReferences>true</DisableTransitiveProjectReferences> 42 <DisableTransitiveProjectReferences>true</DisableTransitiveProjectReferences>
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 @@
31 <WixTasksPath Condition=" '$(WixTasksPath)' == '' ">$(WixBinDir)WixToolset.BuildTasks.dll</WixTasksPath> 31 <WixTasksPath Condition=" '$(WixTasksPath)' == '' ">$(WixBinDir)WixToolset.BuildTasks.dll</WixTasksPath>
32 </PropertyGroup> 32 </PropertyGroup>
33 33
34 <ItemGroup Condition=" '$(EnableDefaultItems)' == 'true' ">
35 <Compile Include="**/*.wxs" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" Condition=" '$(EnableDefaultCompileItems)' == 'true' " />
36 <EmbeddedResource Include="**/*.wxl" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" Condition=" '$(EnableDefaultEmbeddedResourceItems)' == 'true' " />
37 </ItemGroup>
38
39 <ItemGroup> 34 <ItemGroup>
40 <AvailableItemName Include="BindPath;BindVariable;WixLibrary;WixExtension" /> 35 <AvailableItemName Include="BindPath;BindVariable;WixLibrary;WixExtension" />
41 </ItemGroup> 36 </ItemGroup>
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
@@ -586,6 +586,68 @@ namespace WixToolsetTest.Sdk
586 [DataRow(BuildSystem.DotNetCoreSdk)] 586 [DataRow(BuildSystem.DotNetCoreSdk)]
587 [DataRow(BuildSystem.MSBuild)] 587 [DataRow(BuildSystem.MSBuild)]
588 [DataRow(BuildSystem.MSBuild64)] 588 [DataRow(BuildSystem.MSBuild64)]
589 public void CanBuildWixlibOnlyGoodFiles(BuildSystem buildSystem)
590 {
591 var sourceFolder = TestData.Get(@"TestData", "Wixlib", "WithBadFiles");
592
593 using (var fs = new TestDataFolderFileSystem())
594 {
595 fs.Initialize(sourceFolder);
596 var baseFolder = fs.BaseFolder;
597 var binFolder = Path.Combine(baseFolder, @"bin\");
598 var projectPath = Path.Combine(baseFolder, "OnlyGoodFiles.wixproj");
599
600 var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[]
601 {
602 MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "WixMSBuildProps", MsbuildFixture.WixPropsPath),
603 });
604 result.AssertSuccess();
605
606 var wixBuildCommands = MsbuildUtilities.GetToolCommandLines(result, "wix", "build", buildSystem);
607 WixAssert.Single(wixBuildCommands);
608
609 var path = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories)
610 .Select(s => s.Substring(baseFolder.Length + 1))
611 .Single();
612 WixAssert.StringEqual(@"bin\Release\OnlyGoodFiles.wixlib", path);
613 }
614 }
615
616 [TestMethod]
617 [DataRow(BuildSystem.DotNetCoreSdk)]
618 [DataRow(BuildSystem.MSBuild)]
619 [DataRow(BuildSystem.MSBuild64)]
620 public void CanBuildWixlibSkippingBadFiles(BuildSystem buildSystem)
621 {
622 var sourceFolder = TestData.Get(@"TestData", "Wixlib", "WithBadFiles");
623
624 using (var fs = new TestDataFolderFileSystem())
625 {
626 fs.Initialize(sourceFolder);
627 var baseFolder = fs.BaseFolder;
628 var binFolder = Path.Combine(baseFolder, @"bin\");
629 var projectPath = Path.Combine(baseFolder, "SkipBadFiles.wixproj");
630
631 var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[]
632 {
633 MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "WixMSBuildProps", MsbuildFixture.WixPropsPath),
634 });
635 result.AssertSuccess();
636
637 var wixBuildCommands = MsbuildUtilities.GetToolCommandLines(result, "wix", "build", buildSystem);
638 WixAssert.Single(wixBuildCommands);
639
640 var path = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories)
641 .Select(s => s.Substring(baseFolder.Length + 1))
642 .Single();
643 WixAssert.StringEqual(@"bin\Release\SkipBadFiles.wixlib", path);
644 }
645 }
646
647 [TestMethod]
648 [DataRow(BuildSystem.DotNetCoreSdk)]
649 [DataRow(BuildSystem.MSBuild)]
650 [DataRow(BuildSystem.MSBuild64)]
589 public void CanBuildPackageIncludingSimpleWixlib(BuildSystem buildSystem) 651 public void CanBuildPackageIncludingSimpleWixlib(BuildSystem buildSystem)
590 { 652 {
591 var sourceFolder = TestData.Get(@"TestData", "Wixlib"); 653 var sourceFolder = TestData.Get(@"TestData", "Wixlib");
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 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Fragment>
3 <StandardDirectory Id="ProgramFilesFolder">
4 <Directory Id="WixLibFolder" />
5 </StandardDirectory>
6 </Fragment>
7</Wix>
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 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Project>
3 <Import Project="$(WixMSBuildProps)" />
4
5 <PropertyGroup>
6 <OutputType>Library</OutputType>
7 <EnableDefaultItems>false</EnableDefaultItems>
8 </PropertyGroup>
9
10 <ItemGroup>
11 <Compile Include="Library.wxs" />
12 </ItemGroup>
13
14 <Import Project="$(WixTargetsPath)" />
15</Project>
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 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Project>
3 <Import Project="$(WixMSBuildProps)" />
4
5 <PropertyGroup>
6 <OutputType>Library</OutputType>
7 </PropertyGroup>
8
9 <ItemGroup>
10 <Compile Remove="Bad.wxs" />
11 <EmbeddedResource Remove="Bad.wxl" />
12 </ItemGroup>
13
14 <Import Project="$(WixTargetsPath)" />
15</Project>