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