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.
Mike Wileczka committed
Apr 19, 2023 at 10:12 UTC
041558eb93368365ca397e16045e01454a603976
6 files changed
+32
-32
src/tools/heat/VSProjectHarvester.cs
+1
-1
@@ -367,7 +367,7 @@ namespace WixToolset.Harvesters
367
projectBaseDir = Path.GetDirectoryName(projectFile) + "\\";
368
}
369
370
- int harvestCount = this.HarvestProjectOutputGroupFiles(projectBaseDir, projectName, pog.Name, pog.FileSource, pogFiles, harvestParent);
370
+ int harvestCount = this.HarvestProjectOutputGroupFiles(projectBaseDir, sanitizedProjectName, pog.Name, pog.FileSource, pogFiles, harvestParent);
371
372
if (this.GenerateType == GenerateType.Container)
373
{
src/tools/test/WixToolsetTest.HeatTasks/MsbuildHeatFixture.cs
+24
-24
@@ -200,62 +200,62 @@ namespace WixToolsetTest.Sdk
200
var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray();
201
WixAssert.StringCollectionEmpty(warnings);
202
203
- var generatedFilePath = Path.Combine(intermediateFolder, "Release", "_ToolsVersion4Cs.wxs");
203
+ var generatedFilePath = Path.Combine(intermediateFolder, "Release", "_Tools Version 4Cs.wxs");
204
Assert.True(File.Exists(generatedFilePath));
205
206
var generatedContents = File.ReadAllText(generatedFilePath);
207
var testXml = generatedContents.GetTestXml();
208
WixAssert.StringEqual(@"<Wix>" +
209
"<Fragment>" +
210
- "<DirectoryRef Id='ToolsVersion4Cs.Binaries'>" +
211
- "<Component Id='ToolsVersion4Cs.Binaries.ToolsVersion4Cs.dll' Guid='*'>" +
212
- "<File Id='ToolsVersion4Cs.Binaries.ToolsVersion4Cs.dll' Source='$(var.ToolsVersion4Cs.TargetDir)\\ToolsVersion4Cs.dll' />" +
210
+ "<DirectoryRef Id='Tools_Version_4Cs.Binaries'>" +
211
+ "<Component Id='Tools_Version_4Cs.Binaries.Tools_Version_4Cs.dll' Guid='*'>" +
212
+ "<File Id='Tools_Version_4Cs.Binaries.Tools_Version_4Cs.dll' Source='$(var.Tools_Version_4Cs.TargetDir)\\Tools Version 4Cs.dll' />" +
213
"</Component>" +
214
"</DirectoryRef>" +
215
"</Fragment>" +
216
"<Fragment>" +
217
- "<ComponentGroup Id='ToolsVersion4Cs.Binaries'>" +
218
- "<ComponentRef Id='ToolsVersion4Cs.Binaries.ToolsVersion4Cs.dll' />" +
217
+ "<ComponentGroup Id='Tools_Version_4Cs.Binaries'>" +
218
+ "<ComponentRef Id='Tools_Version_4Cs.Binaries.Tools_Version_4Cs.dll' />" +
219
"</ComponentGroup>" +
220
"</Fragment>" +
221
"<Fragment>" +
222
- "<DirectoryRef Id='ToolsVersion4Cs.Symbols'>" +
223
- "<Component Id='ToolsVersion4Cs.Symbols.ToolsVersion4Cs.pdb' Guid='*'>" +
224
- "<File Id='ToolsVersion4Cs.Symbols.ToolsVersion4Cs.pdb' Source='$(var.ToolsVersion4Cs.TargetDir)\\ToolsVersion4Cs.pdb' />" +
222
+ "<DirectoryRef Id='Tools_Version_4Cs.Symbols'>" +
223
+ "<Component Id='Tools_Version_4Cs.Symbols.Tools_Version_4Cs.pdb' Guid='*'>" +
224
+ "<File Id='Tools_Version_4Cs.Symbols.Tools_Version_4Cs.pdb' Source='$(var.Tools_Version_4Cs.TargetDir)\\Tools Version 4Cs.pdb' />" +
225
"</Component>" +
226
"</DirectoryRef>" +
227
"</Fragment>" +
228
"<Fragment>" +
229
- "<ComponentGroup Id='ToolsVersion4Cs.Symbols'>" +
230
- "<ComponentRef Id='ToolsVersion4Cs.Symbols.ToolsVersion4Cs.pdb' />" +
229
+ "<ComponentGroup Id='Tools_Version_4Cs.Symbols'>" +
230
+ "<ComponentRef Id='Tools_Version_4Cs.Symbols.Tools_Version_4Cs.pdb' />" +
231
"</ComponentGroup>" +
232
"</Fragment>" +
233
"<Fragment>" +
234
- "<DirectoryRef Id='ToolsVersion4Cs.Sources'>" +
235
- "<Component Id='ToolsVersion4Cs.Sources.ToolsVersion4Cs.csproj' Guid='*'>" +
236
- "<File Id='ToolsVersion4Cs.Sources.ToolsVersion4Cs.csproj' Source='$(var.ToolsVersion4Cs.ProjectDir)\\ToolsVersion4Cs.csproj' />" +
234
+ "<DirectoryRef Id='Tools_Version_4Cs.Sources'>" +
235
+ "<Component Id='Tools_Version_4Cs.Sources.Tools_Version_4Cs.csproj' Guid='*'>" +
236
+ "<File Id='Tools_Version_4Cs.Sources.Tools_Version_4Cs.csproj' Source='$(var.Tools_Version_4Cs.ProjectDir)\\Tools Version 4Cs.csproj' />" +
237
"</Component>" +
238
- "<Directory Id='ToolsVersion4Cs.Sources.Properties' Name='Properties'>" +
239
- "<Component Id='ToolsVersion4Cs.Sources.AssemblyInfo.cs' Guid='*'>" +
240
- "<File Id='ToolsVersion4Cs.Sources.AssemblyInfo.cs' Source='$(var.ToolsVersion4Cs.ProjectDir)\\Properties\\AssemblyInfo.cs' />" +
238
+ "<Directory Id='Tools_Version_4Cs.Sources.Properties' Name='Properties'>" +
239
+ "<Component Id='Tools_Version_4Cs.Sources.AssemblyInfo.cs' Guid='*'>" +
240
+ "<File Id='Tools_Version_4Cs.Sources.AssemblyInfo.cs' Source='$(var.Tools_Version_4Cs.ProjectDir)\\Properties\\AssemblyInfo.cs' />" +
241
"</Component>" +
242
"</Directory>" +
243
"</DirectoryRef>" +
244
"</Fragment>" +
245
"<Fragment>" +
246
- "<ComponentGroup Id='ToolsVersion4Cs.Sources'>" +
247
- "<ComponentRef Id='ToolsVersion4Cs.Sources.ToolsVersion4Cs.csproj' />" +
248
- "<ComponentRef Id='ToolsVersion4Cs.Sources.AssemblyInfo.cs' />" +
246
+ "<ComponentGroup Id='Tools_Version_4Cs.Sources'>" +
247
+ "<ComponentRef Id='Tools_Version_4Cs.Sources.Tools_Version_4Cs.csproj' />" +
248
+ "<ComponentRef Id='Tools_Version_4Cs.Sources.AssemblyInfo.cs' />" +
249
"</ComponentGroup>" +
250
"</Fragment>" +
251
"<Fragment>" +
252
- "<ComponentGroup Id='ToolsVersion4Cs.Content' />" +
252
+ "<ComponentGroup Id='Tools_Version_4Cs.Content' />" +
253
"</Fragment>" +
254
"<Fragment>" +
255
- "<ComponentGroup Id='ToolsVersion4Cs.Satellites' />" +
255
+ "<ComponentGroup Id='Tools_Version_4Cs.Satellites' />" +
256
"</Fragment>" +
257
"<Fragment>" +
258
- "<ComponentGroup Id='ToolsVersion4Cs.Documents' />" +
258
+ "<ComponentGroup Id='Tools_Version_4Cs.Documents' />" +
259
"</Fragment>" +
260
"</Wix>", testXml);
261
@@ -266,7 +266,7 @@ namespace WixToolsetTest.Sdk
266
var section = intermediate.Sections.Single();
267
268
var fileSymbol = section.Symbols.OfType<FileSymbol>().Single();
269
- WixAssert.StringEqual(Path.Combine(fs.BaseFolder, "ToolsVersion4Cs", "bin", "Release\\\\ToolsVersion4Cs.dll"), fileSymbol[FileSymbolFields.Source].AsPath()?.Path);
269
+ WixAssert.StringEqual(Path.Combine(fs.BaseFolder, "Tools Version 4Cs", "bin", "Release\\\\Tools Version 4Cs.dll"), fileSymbol[FileSymbolFields.Source].AsPath()?.Path);
270
}
271
}
272
src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/HeatProjectPreSdkStyle.wixproj
+1
-1
@@ -11,7 +11,7 @@
11
</PropertyGroup>
12
13
<ItemGroup>
14
- <ProjectReference Include="..\ToolsVersion4Cs\ToolsVersion4Cs.csproj" />
14
+ <ProjectReference Include="..\Tools Version 4Cs\Tools Version 4Cs.csproj" />
15
</ItemGroup>
16
17
<Import Project="$(HeatTargetsPath)" />
src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/HeatProjectPreSdkStyle/Package.wxs
+2
-2
@@ -5,13 +5,13 @@
5
<MediaTemplate />
6
7
<Feature Id="ProductFeature" Title="HeatProjectFeature">
8
- <ComponentGroupRef Id="ToolsVersion4Cs.Binaries" />
8
+ <ComponentGroupRef Id="Tools_Version_4Cs.Binaries" />
9
</Feature>
10
</Package>
11
12
<Fragment>
13
<StandardDirectory Id="ProgramFilesFolder">
14
- <Directory Id="ToolsVersion4Cs.Binaries" Name="MsiPackage" />
14
+ <Directory Id="Tools_Version_4Cs.Binaries" Name="MsiPackage" />
15
</StandardDirectory>
16
</Fragment>
17
</Wix>
src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/Tools Version 4Cs/Properties/AssemblyInfo.cs
renamed
+2
-2
@@ -4,8 +4,8 @@ using System;
4
using System.Reflection;
5
using System.Runtime.InteropServices;
6
7
-[assembly: AssemblyTitle("ToolsVersion4Cs")]
8
-[assembly: AssemblyDescription("ToolsVersion4Cs")]
7
+[assembly: AssemblyTitle("Tools Version 4Cs")]
8
+[assembly: AssemblyDescription("Tools Version 4Cs")]
9
[assembly: AssemblyProduct("WiX Toolset")]
10
[assembly: AssemblyCompany("WiX Toolset Team")]
11
[assembly: AssemblyCopyright("Copyright (c) .NET Foundation and contributors. All rights reserved.")]
src/tools/test/WixToolsetTest.HeatTasks/TestData/HeatProject/Tools Version 4Cs/Tools Version 4Cs.csproj
renamed
+2
-2
@@ -5,7 +5,7 @@
5
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6
<PropertyGroup>
7
<ProjectGuid>{8B19578A-816A-48A1-A6C4-58067334EB79}</ProjectGuid>
8
- <AssemblyName>ToolsVersion4Cs</AssemblyName>
8
+ <AssemblyName>Tools Version 4Cs</AssemblyName>
9
<OutputType>Library</OutputType>
10
<RootNamespace>ToolsVersion4Cs</RootNamespace>
11
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
@@ -33,4 +33,4 @@
33
</ItemGroup>
34
35
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
36
-</Project>
\ No newline at end of file
36
+</Project>