From a627ca9b720047e633a8fe72003ab9bee31006c5 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 26 Jul 2022 17:20:39 -0700 Subject: Create WixToolset.Heat.nupkg to distribute heat.exe and Heat targets Moves Heat functionality to the "tools" layer and packages it all up in WixToolset.Heat.nupkg for distribution in WiX v4. Completes 6838 --- src/tools/test/Directory.Build.props | 10 + src/tools/test/WixToolsetTest.Heat/HeatRunner.cs | 92 +++++ .../WixToolsetTest.Heat/WixToolsetTest.Heat.csproj | 20 + .../WixToolsetTest.HeatTasks/MsbuildHeatFixture.cs | 410 +++++++++++++++++++++ .../EnsureWixSdkCached/EnsureWixSdkCached.wixproj | 4 + .../HeatFileMultipleFilesSameFileName.wixproj | 26 ++ .../MyProgram.json | 1 + .../MyProgram.txt | 1 + .../HeatFileMultipleFilesSameFileName/Package.wxs | 18 + .../HeatFilePackage/HeatFilePackage.wixproj | 21 ++ .../TestData/HeatFilePackage/Package.wxs | 17 + .../HeatProjectPreSdkStyle.wixproj | 18 + .../HeatProject/HeatProjectPreSdkStyle/Package.wxs | 17 + .../HeatProjectSdkStyle.wixproj | 18 + .../HeatProject/HeatProjectSdkStyle/Package.wxs | 17 + .../TestData/HeatProject/SdkStyleCs/SdkStyleCs.cs | 8 + .../HeatProject/SdkStyleCs/SdkStyleCs.csproj | 8 + .../ToolsVersion4Cs/Properties/AssemblyInfo.cs | 11 + .../ToolsVersion4Cs/ToolsVersion4Cs.csproj | 36 ++ .../WixToolsetTest.HeatTasks.csproj | 28 ++ .../WixToolsetTest.HeatTasks.v3.ncrunchproject | 5 + 21 files changed, 786 insertions(+) create mode 100644 src/tools/test/Directory.Build.props create mode 100644 src/tools/test/WixToolsetTest.Heat/HeatRunner.cs create mode 100644 src/tools/test/WixToolsetTest.Heat/WixToolsetTest.Heat.csproj create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/MsbuildHeatFixture.cs create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/EnsureWixSdkCached/EnsureWixSdkCached.wixproj create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFileMultipleFilesSameFileName/HeatFileMultipleFilesSameFileName.wixproj create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFileMultipleFilesSameFileName/MyProgram.json create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFileMultipleFilesSameFileName/MyProgram.txt create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFileMultipleFilesSameFileName/Package.wxs create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFilePackage/HeatFilePackage.wixproj create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFilePackage/Package.wxs create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/HeatProjectPreSdkStyle.wixproj create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/Package.wxs create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectSdkStyle/HeatProjectSdkStyle.wixproj create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectSdkStyle/Package.wxs create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/SdkStyleCs/SdkStyleCs.cs create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/SdkStyleCs/SdkStyleCs.csproj create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/ToolsVersion4Cs/Properties/AssemblyInfo.cs create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/ToolsVersion4Cs/ToolsVersion4Cs.csproj create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/WixToolsetTest.HeatTasks.csproj create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/WixToolsetTest.HeatTasks.v3.ncrunchproject (limited to 'src/tools/test') diff --git a/src/tools/test/Directory.Build.props b/src/tools/test/Directory.Build.props new file mode 100644 index 00000000..a0c9a659 --- /dev/null +++ b/src/tools/test/Directory.Build.props @@ -0,0 +1,10 @@ + + + + + + + + $(OutputPath)test\$(ProjectName) + + diff --git a/src/tools/test/WixToolsetTest.Heat/HeatRunner.cs b/src/tools/test/WixToolsetTest.Heat/HeatRunner.cs new file mode 100644 index 00000000..287698a9 --- /dev/null +++ b/src/tools/test/WixToolsetTest.Heat/HeatRunner.cs @@ -0,0 +1,92 @@ +// 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. + +namespace WixToolsetTest.Harvesters +{ + using System; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + using WixToolset.Core; + using WixToolset.Core.Burn; + using WixToolset.Core.TestPackage; + using WixToolset.Data; + using WixToolset.Extensibility.Data; + using WixToolset.Extensibility.Services; + using WixToolset.Harvesters; + + /// + /// Utility class to emulate heat.exe. + /// + public static class HeatRunner + { + /// + /// Emulates calling heat.exe. + /// + /// + /// + /// + /// + public static int Execute(string[] args, out List messages, bool warningsAsErrors = true) + { + var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); + var task = Execute(args, serviceProvider, out messages, warningsAsErrors: warningsAsErrors); + return task.Result; + } + + /// + /// Emulates calling wix.exe with standard backends. + /// This overload always treats warnings as errors. + /// + /// + /// + public static WixRunnerResult Execute(params string[] args) + { + return Execute(true, args); + } + + /// + /// Emulates calling wix.exe with standard backends. + /// + /// + /// + /// + public static WixRunnerResult Execute(bool warningsAsErrors, params string[] args) + { + var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); + var exitCode = Execute(args, serviceProvider, out var messages, warningsAsErrors: warningsAsErrors); + return new WixRunnerResult { ExitCode = exitCode.Result, Messages = messages.ToArray() }; + } + + /// + /// Emulates calling wix.exe with standard backends. + /// + /// + /// + /// + /// + /// + public static Task Execute(string[] args, IWixToolsetCoreServiceProvider coreProvider, out List messages, bool warningsAsErrors = true) + { + coreProvider.AddBundleBackend(); + + var listener = new TestMessageListener(); + + messages = listener.Messages; + + var messaging = coreProvider.GetService(); + messaging.SetListener(listener); + + if (warningsAsErrors) + { + messaging.WarningsAsError = true; + } + + var arguments = coreProvider.GetService(); + arguments.Populate(args); + + var commandLine = HeatCommandLineFactory.CreateCommandLine(coreProvider); + var command = commandLine.ParseStandardCommandLine(arguments); + return command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1); + } + } +} diff --git a/src/tools/test/WixToolsetTest.Heat/WixToolsetTest.Heat.csproj b/src/tools/test/WixToolsetTest.Heat/WixToolsetTest.Heat.csproj new file mode 100644 index 00000000..73eb078c --- /dev/null +++ b/src/tools/test/WixToolsetTest.Heat/WixToolsetTest.Heat.csproj @@ -0,0 +1,20 @@ + + + + + + netcoreapp3.1 + false + false + + + + + + + + + + + + diff --git a/src/tools/test/WixToolsetTest.HeatTasks/MsbuildHeatFixture.cs b/src/tools/test/WixToolsetTest.HeatTasks/MsbuildHeatFixture.cs new file mode 100644 index 00000000..d54da457 --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/MsbuildHeatFixture.cs @@ -0,0 +1,410 @@ +// 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. + +namespace WixToolsetTest.Sdk +{ + using System; + using System.IO; + using System.Linq; + using WixBuildTools.TestSupport; + using WixToolset.Core.TestPackage; + using WixToolset.Data; + using WixToolset.Data.Symbols; + using Xunit; + + public class MsbuildHeatFixture + { + public static readonly string HeatTargetsPath = Path.Combine(Path.GetDirectoryName(new Uri(typeof(MsbuildHeatFixture).Assembly.CodeBase).AbsolutePath), "..", "..", "..", "publish", "WixToolset.Heat", "build", "WixToolset.Heat.targets"); + + public MsbuildHeatFixture() + { + EnsureWixSdkCached(); + } + + [Theory] + [InlineData(BuildSystem.DotNetCoreSdk)] + [InlineData(BuildSystem.MSBuild)] + [InlineData(BuildSystem.MSBuild64)] + public void CanBuildHeatFilePackage(BuildSystem buildSystem) + { + var sourceFolder = TestData.Get("TestData", "HeatFilePackage"); + + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(); + var binFolder = Path.Combine(baseFolder, @"bin"); + var intermediateFolder = Path.Combine(baseFolder, @"obj\"); + var projectPath = Path.Combine(sourceFolder, "HeatFilePackage.wixproj"); + + var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] { + "-Restore", + MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "HeatTargetsPath", MsbuildHeatFixture.HeatTargetsPath), + MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "BaseIntermediateOutputPath", intermediateFolder), + MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "OutputPath", binFolder), + }); + result.AssertSuccess(); + + var heatCommandLines = MsbuildUtilities.GetToolCommandLines(result, "heat", "file", buildSystem, true); + Assert.Single(heatCommandLines); + + var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray(); + WixAssert.StringCollectionEmpty(warnings); + + var generatedFilePath = Path.Combine(intermediateFolder, "Release", "_ProductComponents_INSTALLFOLDER_HeatFilePackage.wixproj_file.wxs"); + var generatedContents = File.ReadAllText(generatedFilePath); + var testXml = generatedContents.GetTestXml(); + WixAssert.StringEqual(@"" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "", testXml); + + var pdbPath = Path.Combine(binFolder, "HeatFilePackage.wixpdb"); + var intermediate = Intermediate.Load(pdbPath); + var section = intermediate.Sections.Single(); + + var fileSymbol = section.Symbols.OfType().Single(); + WixAssert.StringEqual(@"SourceDir\HeatFilePackage.wixproj", fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath()?.Path); + } + } + + [Theory] + [InlineData(BuildSystem.DotNetCoreSdk)] + [InlineData(BuildSystem.MSBuild)] + [InlineData(BuildSystem.MSBuild64)] + public void CanBuildHeatFileWithMultipleFilesPackage(BuildSystem buildSystem) + { + var sourceFolder = TestData.Get(@"TestData", "HeatFileMultipleFilesSameFileName"); + + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(); + var binFolder = Path.Combine(baseFolder, @"bin\"); + var intermediateFolder = Path.Combine(baseFolder, @"obj\"); + var projectPath = Path.Combine(sourceFolder, "HeatFileMultipleFilesSameFileName.wixproj"); + + var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] { + "-Restore", + MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "HeatTargetsPath", MsbuildHeatFixture.HeatTargetsPath), + MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "BaseIntermediateOutputPath", intermediateFolder), + MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "OutputPath", binFolder), + }); + result.AssertSuccess(); + + var heatCommandLines = MsbuildUtilities.GetToolCommandLines(result, "heat", "file", buildSystem, true); + Assert.Equal(2, heatCommandLines.Count()); + + var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray(); + WixAssert.StringCollectionEmpty(warnings); + + var generatedFilePath = Path.Combine(intermediateFolder, "Release", "_TxtProductComponents_INSTALLFOLDER_MyProgram.txt_file.wxs"); + Assert.True(File.Exists(generatedFilePath)); + + var generatedContents = File.ReadAllText(generatedFilePath); + var testXml = generatedContents.GetTestXml(); + WixAssert.StringEqual("" + + "" + + "" + + "" + + @"" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "", testXml); + + generatedFilePath = Path.Combine(intermediateFolder, "Release", "_JsonProductComponents_INSTALLFOLDER_MyProgram.json_file.wxs"); + Assert.True(File.Exists(generatedFilePath)); + + generatedContents = File.ReadAllText(generatedFilePath); + testXml = generatedContents.GetTestXml(); + WixAssert.StringEqual("" + + "" + + "" + + "" + + @"" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "", testXml); + + var pdbPath = Path.Combine(binFolder, "HeatFileMultipleFilesSameFileName.wixpdb"); + Assert.True(File.Exists(pdbPath)); + + var intermediate = Intermediate.Load(pdbPath); + var section = intermediate.Sections.Single(); + + var fileSymbols = section.Symbols.OfType().ToArray(); + WixAssert.StringEqual(@"SourceDir\MyProgram.txt", fileSymbols[0][FileSymbolFields.Source].PreviousValue.AsPath()?.Path); + WixAssert.StringEqual(@"SourceDir\MyProgram.json", fileSymbols[1][FileSymbolFields.Source].PreviousValue.AsPath()?.Path); + } + } + + [Theory] + [InlineData(BuildSystem.DotNetCoreSdk, true)] + [InlineData(BuildSystem.DotNetCoreSdk, false)] + [InlineData(BuildSystem.MSBuild, true)] + [InlineData(BuildSystem.MSBuild, false)] + [InlineData(BuildSystem.MSBuild64, true)] + [InlineData(BuildSystem.MSBuild64, false)] + public void CanBuildHeatProjectPreSdkStyle(BuildSystem buildSystem, bool useToolsVersion) + { + var sourceFolder = TestData.Get(@"TestData", "HeatProject"); + + using (var fs = new TestDataFolderFileSystem()) + { + fs.Initialize(sourceFolder); + File.Copy("global.json", Path.Combine(fs.BaseFolder, "global.json")); + + var baseFolder = Path.Combine(fs.BaseFolder, "HeatProjectPreSdkStyle"); + var binFolder = Path.Combine(baseFolder, @"bin\"); + var intermediateFolder = Path.Combine(baseFolder, @"obj\"); + var projectPath = Path.Combine(baseFolder, "HeatProjectPreSdkStyle.wixproj"); + + var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] + { + MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "HeatTargetsPath", MsbuildHeatFixture.HeatTargetsPath), + useToolsVersion ? $"-p:HarvestProjectsUseToolsVersion=true" : String.Empty, + }); + result.AssertSuccess(); + + var heatCommandLines = MsbuildUtilities.GetToolCommandLines(result, "heat", "project", buildSystem, true); + var heatCommandLine = Assert.Single(heatCommandLines); + + if (useToolsVersion && buildSystem != BuildSystem.DotNetCoreSdk) + { + Assert.Contains("-usetoolsversion", heatCommandLine); + } + else + { + Assert.DoesNotContain("-usetoolsversion", heatCommandLine); + } + + var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray(); + WixAssert.StringCollectionEmpty(warnings); + + var generatedFilePath = Path.Combine(intermediateFolder, "Release", "_ToolsVersion4Cs.wxs"); + Assert.True(File.Exists(generatedFilePath)); + + var generatedContents = File.ReadAllText(generatedFilePath); + var testXml = generatedContents.GetTestXml(); + WixAssert.StringEqual(@"" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "", testXml); + + var pdbPath = Path.Combine(binFolder, "Release", "HeatProjectPreSdkStyle.wixpdb"); + Assert.True(File.Exists(pdbPath)); + + var intermediate = Intermediate.Load(pdbPath); + var section = intermediate.Sections.Single(); + + var fileSymbol = section.Symbols.OfType().Single(); + WixAssert.StringEqual(Path.Combine(fs.BaseFolder, "ToolsVersion4Cs", "bin", "Release\\\\ToolsVersion4Cs.dll"), fileSymbol[FileSymbolFields.Source].AsPath()?.Path); + } + } + + [Theory] + [InlineData(BuildSystem.DotNetCoreSdk, true)] + [InlineData(BuildSystem.DotNetCoreSdk, false)] + [InlineData(BuildSystem.MSBuild, true)] + [InlineData(BuildSystem.MSBuild, false)] + [InlineData(BuildSystem.MSBuild64, true)] + [InlineData(BuildSystem.MSBuild64, false)] + public void CanBuildHeatProjectSdkStyle(BuildSystem buildSystem, bool useToolsVersion) + { + var sourceFolder = TestData.Get(@"TestData\HeatProject"); + + using (var fs = new TestDataFolderFileSystem()) + { + fs.Initialize(sourceFolder); + File.Copy("global.json", Path.Combine(fs.BaseFolder, "global.json")); + + var baseFolder = Path.Combine(fs.BaseFolder, "HeatProjectSdkStyle"); + var binFolder = Path.Combine(baseFolder, @"bin\"); + var intermediateFolder = Path.Combine(baseFolder, @"obj\"); + var projectPath = Path.Combine(fs.BaseFolder, "HeatProjectSdkStyle", "HeatProjectSdkStyle.wixproj"); + var referencedProjectPath = Path.Combine(fs.BaseFolder, "SdkStyleCs", "SdkStyleCs.csproj"); + + var result = MsbuildUtilities.BuildProject(buildSystem, referencedProjectPath, new[] + { + "-t:restore", + MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "HeatTargetsPath", MsbuildHeatFixture.HeatTargetsPath), + }); + result.AssertSuccess(); + + result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] + { + MsbuildUtilities.GetQuotedPropertySwitch(buildSystem, "HeatTargetsPath", MsbuildHeatFixture.HeatTargetsPath), + useToolsVersion ? $"-p:HarvestProjectsUseToolsVersion=true" : String.Empty, + }); + result.AssertSuccess(); + + var heatCommandLines = MsbuildUtilities.GetToolCommandLines(result, "heat", "project", buildSystem, true); + var heatCommandLine = Assert.Single(heatCommandLines); + + if (useToolsVersion && buildSystem != BuildSystem.DotNetCoreSdk) + { + Assert.Contains("-usetoolsversion", heatCommandLine); + } + else + { + Assert.DoesNotContain("-usetoolsversion", heatCommandLine); + } + + var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray(); + WixAssert.StringCollectionEmpty(warnings); + + var generatedFilePath = Path.Combine(intermediateFolder, "Release", "_SdkStyleCs.wxs"); + Assert.True(File.Exists(generatedFilePath)); + + var generatedContents = File.ReadAllText(generatedFilePath); + var testXml = generatedContents.GetTestXml(); + WixAssert.StringEqual(@"" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "", testXml); + + var pdbPath = Path.Combine(binFolder, "Release", "HeatProjectSdkStyle.wixpdb"); + Assert.True(File.Exists(pdbPath)); + + var intermediate = Intermediate.Load(pdbPath); + var section = intermediate.Sections.Single(); + + var fileSymbol = section.Symbols.OfType().Single(); + WixAssert.StringEqual(Path.Combine(fs.BaseFolder, "SdkStyleCs", "bin", "Release", "netstandard2.0\\\\SdkStyleCs.dll"), fileSymbol[FileSymbolFields.Source].AsPath()?.Path); + } + } + + /// + /// This method exists to get the WixToolset.Sdk.nupkg into the NuGet package cache using the global.json + /// and nuget.config in the root of the repository. By pre-caching the WiX SDK, the rest of the tests will + /// pull the binaries out of the cache instead of needing to find the original .nupkg in the build artifacts + /// folder (which requires use of nuget.config found in the root of the repo) + /// + private static void EnsureWixSdkCached() + { + // This EnsureWixSdkCached project exists only to pre-cache the WixToolset.Sdk for use by later projects. + var sourceFolder = TestData.Get("TestData", "EnsureWixSdkCached"); + + var result = MsbuildUtilities.BuildProject(BuildSystem.DotNetCoreSdk, Path.Combine(sourceFolder, "EnsureWixSdkCached.wixproj"), new[] + { + "-t:restore", + }); + result.AssertSuccess(); + } + } +} diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/EnsureWixSdkCached/EnsureWixSdkCached.wixproj b/src/tools/test/WixToolsetTest.HeatTasks/TestData/EnsureWixSdkCached/EnsureWixSdkCached.wixproj new file mode 100644 index 00000000..7730425f --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/EnsureWixSdkCached/EnsureWixSdkCached.wixproj @@ -0,0 +1,4 @@ + + + + diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFileMultipleFilesSameFileName/HeatFileMultipleFilesSameFileName.wixproj b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFileMultipleFilesSameFileName/HeatFileMultipleFilesSameFileName.wixproj new file mode 100644 index 00000000..2aaf5c01 --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFileMultipleFilesSameFileName/HeatFileMultipleFilesSameFileName.wixproj @@ -0,0 +1,26 @@ + + + + + + + + + true + + + + + TxtProductComponents + INSTALLFOLDER + true + + + JsonProductComponents + INSTALLFOLDER + true + + + + + diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFileMultipleFilesSameFileName/MyProgram.json b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFileMultipleFilesSameFileName/MyProgram.json new file mode 100644 index 00000000..5f282702 --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFileMultipleFilesSameFileName/MyProgram.json @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFileMultipleFilesSameFileName/MyProgram.txt b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFileMultipleFilesSameFileName/MyProgram.txt new file mode 100644 index 00000000..5f282702 --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFileMultipleFilesSameFileName/MyProgram.txt @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFileMultipleFilesSameFileName/Package.wxs b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFileMultipleFilesSameFileName/Package.wxs new file mode 100644 index 00000000..5abcee9f --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFileMultipleFilesSameFileName/Package.wxs @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFilePackage/HeatFilePackage.wixproj b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFilePackage/HeatFilePackage.wixproj new file mode 100644 index 00000000..345832cf --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFilePackage/HeatFilePackage.wixproj @@ -0,0 +1,21 @@ + + + + + + + + + true + + + + + ProductComponents + INSTALLFOLDER + true + + + + + diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFilePackage/Package.wxs b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFilePackage/Package.wxs new file mode 100644 index 00000000..f5fa8cf6 --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatFilePackage/Package.wxs @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/HeatProjectPreSdkStyle.wixproj b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/HeatProjectPreSdkStyle.wixproj new file mode 100644 index 00000000..a05348a5 --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/HeatProjectPreSdkStyle.wixproj @@ -0,0 +1,18 @@ + + + + + + + + + true + true + + + + + + + + diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/Package.wxs b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/Package.wxs new file mode 100644 index 00000000..6c12861b --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/Package.wxs @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectSdkStyle/HeatProjectSdkStyle.wixproj b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectSdkStyle/HeatProjectSdkStyle.wixproj new file mode 100644 index 00000000..202921fe --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectSdkStyle/HeatProjectSdkStyle.wixproj @@ -0,0 +1,18 @@ + + + + + + + + + true + true + + + + + + + + diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectSdkStyle/Package.wxs b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectSdkStyle/Package.wxs new file mode 100644 index 00000000..d30218f3 --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectSdkStyle/Package.wxs @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/SdkStyleCs/SdkStyleCs.cs b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/SdkStyleCs/SdkStyleCs.cs new file mode 100644 index 00000000..2b2c5be2 --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/SdkStyleCs/SdkStyleCs.cs @@ -0,0 +1,8 @@ +// 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. + +namespace SdkStyleCs +{ + public class SdkStyleCs + { + } +} diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/SdkStyleCs/SdkStyleCs.csproj b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/SdkStyleCs/SdkStyleCs.csproj new file mode 100644 index 00000000..755976bc --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/SdkStyleCs/SdkStyleCs.csproj @@ -0,0 +1,8 @@ + + + + + + netstandard2.0 + + diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/ToolsVersion4Cs/Properties/AssemblyInfo.cs b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/ToolsVersion4Cs/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..c29a2303 --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/ToolsVersion4Cs/Properties/AssemblyInfo.cs @@ -0,0 +1,11 @@ +// 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. + +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +[assembly: AssemblyTitle("ToolsVersion4Cs")] +[assembly: AssemblyDescription("ToolsVersion4Cs")] +[assembly: AssemblyProduct("WiX Toolset")] +[assembly: AssemblyCompany("WiX Toolset Team")] +[assembly: AssemblyCopyright("Copyright (c) .NET Foundation and contributors. All rights reserved.")] diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/ToolsVersion4Cs/ToolsVersion4Cs.csproj b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/ToolsVersion4Cs/ToolsVersion4Cs.csproj new file mode 100644 index 00000000..e5723ea2 --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/ToolsVersion4Cs/ToolsVersion4Cs.csproj @@ -0,0 +1,36 @@ + + + + + + + {8B19578A-816A-48A1-A6C4-58067334EB79} + ToolsVersion4Cs + Library + ToolsVersion4Cs + v4.7.2 + + + true + false + $(DefineConstants);DEBUG;TRACE + bin\Debug\ + + + true + true + $(DefineConstants);TRACE + bin\Release\ + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/tools/test/WixToolsetTest.HeatTasks/WixToolsetTest.HeatTasks.csproj b/src/tools/test/WixToolsetTest.HeatTasks/WixToolsetTest.HeatTasks.csproj new file mode 100644 index 00000000..c0c7c903 --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/WixToolsetTest.HeatTasks.csproj @@ -0,0 +1,28 @@ + + + + + + net472 + false + embedded + TestData\**;$(DefaultItemExcludes) + false + + + + + + + + + + + + + + + + + + diff --git a/src/tools/test/WixToolsetTest.HeatTasks/WixToolsetTest.HeatTasks.v3.ncrunchproject b/src/tools/test/WixToolsetTest.HeatTasks/WixToolsetTest.HeatTasks.v3.ncrunchproject new file mode 100644 index 00000000..319cd523 --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/WixToolsetTest.HeatTasks.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + True + + \ No newline at end of file -- cgit v1.2.3-55-g6feb