Skip to content

Commit 84689a9

Browse files
committed
Fix handling of default items
Fixes 7455
1 parent 7760a8b commit 84689a9

File tree

8 files changed

+113
-5
lines changed

8 files changed

+113
-5
lines changed

src/wix/WixToolset.Sdk/tools/wix.props

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,18 @@
2525
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
2626
</PropertyGroup>
2727

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+
2840
<PropertyGroup>
2941
<AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
3042
<DisableTransitiveProjectReferences>true</DisableTransitiveProjectReferences>

src/wix/WixToolset.Sdk/tools/wix.targets

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,6 @@
3131
<WixTasksPath Condition=" '$(WixTasksPath)' == '' ">$(WixBinDir)WixToolset.BuildTasks.dll</WixTasksPath>
3232
</PropertyGroup>
3333

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-
3934
<ItemGroup>
4035
<AvailableItemName Include="BindPath;BindVariable;WixLibrary;WixExtension" />
4136
</ItemGroup>

src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,6 +582,68 @@ public void CanBuildSimpleWixlib(BuildSystem buildSystem)
582582
}
583583
}
584584

585+
[TestMethod]
586+
[DataRow(BuildSystem.DotNetCoreSdk)]
587+
[DataRow(BuildSystem.MSBuild)]
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+
585647
[TestMethod]
586648
[DataRow(BuildSystem.DotNetCoreSdk)]
587649
[DataRow(BuildSystem.MSBuild)]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Not a proper XML file, will break the build.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Not a proper XML file, will break the build.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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>

0 commit comments

Comments
 (0)