From 005a33a0d5ef8233f9d547fa28ae7f72731cad69 Mon Sep 17 00:00:00 2001 From: Mike Wileczka <22036740+mwileczka@users.noreply.github.com> Date: Wed, 19 Apr 2023 10:12:24 -0400 Subject: Fix harvesting project names with invalid chars Project names with invalid characters, namely spaces, where not being harvested properly. The sanitized name is requires for the `Source="$(var.PROJECT_NAME` output. Updated harvest project unit test for project names with spaces. --- src/tools/heat/VSProjectHarvester.cs | 2 +- .../WixToolsetTest.HeatTasks/MsbuildHeatFixture.cs | 48 +++++++++++----------- .../HeatProjectPreSdkStyle.wixproj | 2 +- .../HeatProject/HeatProjectPreSdkStyle/Package.wxs | 4 +- .../Tools Version 4Cs/Properties/AssemblyInfo.cs | 11 +++++ .../Tools Version 4Cs/Tools Version 4Cs.csproj | 36 ++++++++++++++++ .../ToolsVersion4Cs/Properties/AssemblyInfo.cs | 11 ----- .../ToolsVersion4Cs/ToolsVersion4Cs.csproj | 36 ---------------- 8 files changed, 75 insertions(+), 75 deletions(-) create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/Tools Version 4Cs/Properties/AssemblyInfo.cs create mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/Tools Version 4Cs/Tools Version 4Cs.csproj delete mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/ToolsVersion4Cs/Properties/AssemblyInfo.cs delete mode 100644 src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/ToolsVersion4Cs/ToolsVersion4Cs.csproj diff --git a/src/tools/heat/VSProjectHarvester.cs b/src/tools/heat/VSProjectHarvester.cs index 02e8ff94..92eac6ff 100644 --- a/src/tools/heat/VSProjectHarvester.cs +++ b/src/tools/heat/VSProjectHarvester.cs @@ -367,7 +367,7 @@ namespace WixToolset.Harvesters projectBaseDir = Path.GetDirectoryName(projectFile) + "\\"; } - int harvestCount = this.HarvestProjectOutputGroupFiles(projectBaseDir, projectName, pog.Name, pog.FileSource, pogFiles, harvestParent); + int harvestCount = this.HarvestProjectOutputGroupFiles(projectBaseDir, sanitizedProjectName, pog.Name, pog.FileSource, pogFiles, harvestParent); if (this.GenerateType == GenerateType.Container) { diff --git a/src/tools/test/WixToolsetTest.HeatTasks/MsbuildHeatFixture.cs b/src/tools/test/WixToolsetTest.HeatTasks/MsbuildHeatFixture.cs index cea76712..a7d46962 100644 --- a/src/tools/test/WixToolsetTest.HeatTasks/MsbuildHeatFixture.cs +++ b/src/tools/test/WixToolsetTest.HeatTasks/MsbuildHeatFixture.cs @@ -200,62 +200,62 @@ namespace WixToolsetTest.Sdk var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray(); WixAssert.StringCollectionEmpty(warnings); - var generatedFilePath = Path.Combine(intermediateFolder, "Release", "_ToolsVersion4Cs.wxs"); + var generatedFilePath = Path.Combine(intermediateFolder, "Release", "_Tools Version 4Cs.wxs"); Assert.True(File.Exists(generatedFilePath)); var generatedContents = File.ReadAllText(generatedFilePath); var testXml = generatedContents.GetTestXml(); WixAssert.StringEqual(@"" + "" + - "" + - "" + - "" + + "" + + "" + + "" + "" + "" + "" + "" + - "" + - "" + + "" + + "" + "" + "" + "" + - "" + - "" + - "" + + "" + + "" + + "" + "" + "" + "" + "" + - "" + - "" + + "" + + "" + "" + "" + "" + - "" + - "" + - "" + + "" + + "" + + "" + "" + - "" + - "" + - "" + + "" + + "" + + "" + "" + "" + "" + "" + "" + - "" + - "" + - "" + + "" + + "" + + "" + "" + "" + "" + - "" + + "" + "" + "" + - "" + + "" + "" + "" + - "" + + "" + "" + "", testXml); @@ -266,7 +266,7 @@ namespace WixToolsetTest.Sdk 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); + WixAssert.StringEqual(Path.Combine(fs.BaseFolder, "Tools Version 4Cs", "bin", "Release\\\\Tools Version 4Cs.dll"), fileSymbol[FileSymbolFields.Source].AsPath()?.Path); } } diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/HeatProjectPreSdkStyle.wixproj b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/HeatProjectPreSdkStyle.wixproj index 642b349d..14def612 100644 --- a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/HeatProjectPreSdkStyle.wixproj +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/HeatProjectPreSdkStyle.wixproj @@ -11,7 +11,7 @@ - + diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/Package.wxs b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/Package.wxs index 6c12861b..568f9cdd 100644 --- a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/Package.wxs +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/Package.wxs @@ -5,13 +5,13 @@ - + - + diff --git a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/Tools Version 4Cs/Properties/AssemblyInfo.cs b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/Tools Version 4Cs/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..fed7cd9e --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/Tools Version 4Cs/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("Tools Version 4Cs")] +[assembly: AssemblyDescription("Tools Version 4Cs")] +[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/Tools Version 4Cs/Tools Version 4Cs.csproj b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/Tools Version 4Cs/Tools Version 4Cs.csproj new file mode 100644 index 00000000..def5ccb2 --- /dev/null +++ b/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/Tools Version 4Cs/Tools Version 4Cs.csproj @@ -0,0 +1,36 @@ + + + + + + + {8B19578A-816A-48A1-A6C4-58067334EB79} + Tools Version 4Cs + Library + ToolsVersion4Cs + v4.7.2 + + + true + false + $(DefineConstants);DEBUG;TRACE + bin\Debug\ + + + true + true + $(DefineConstants);TRACE + bin\Release\ + + + + + + + + + + + + + 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 deleted file mode 100644 index c29a2303..00000000 --- a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/ToolsVersion4Cs/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,11 +0,0 @@ -// 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 deleted file mode 100644 index e5723ea2..00000000 --- a/src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/ToolsVersion4Cs/ToolsVersion4Cs.csproj +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - {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 -- cgit v1.2.3-55-g6feb