Skip to content

Commit d8fe527

Browse files
committed
escape file path in ms runsettings
1 parent 4aba188 commit d8fe527

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

SharedProject/Core/MsTestPlatform/CodeCoverage/RunSettingsTemplate.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
namespace FineCodeCoverage.Engine.MsTestPlatform.CodeCoverage
1010
{
11-
1211
[Export(typeof(IRunSettingsTemplate))]
1312
internal class RunSettingsTemplate : IRunSettingsTemplate
1413
{
@@ -224,8 +223,8 @@ private XElement GetMsDataCollectorCodeCoverageElement(XDocument templateDocumen
224223
public string Replace(string templatedXml, IRunSettingsTemplateReplacements replacements)
225224
{
226225
return templatedXml
227-
.Replace(replacementLookups.ResultsDirectory, replacements.ResultsDirectory)
228-
.Replace(replacementLookups.TestAdapter, replacements.TestAdapter)
226+
.Replace(replacementLookups.ResultsDirectory, XmlFileEscaper.Escape(replacements.ResultsDirectory))
227+
.Replace(replacementLookups.TestAdapter, XmlFileEscaper.Escape(replacements.TestAdapter))
229228
.Replace(replacementLookups.Enabled, replacements.Enabled)
230229
.Replace(replacementLookups.ModulePathsExclude, replacements.ModulePathsExclude)
231230
.Replace(replacementLookups.ModulePathsInclude, replacements.ModulePathsInclude)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
namespace FineCodeCoverage.Core.Utilities
2+
{
3+
internal static class XmlFileEscaper
4+
{
5+
public static string Escape(string filePath)
6+
{
7+
return filePath.Replace("&", "&").Replace("'", "'");
8+
}
9+
}
10+
}

SharedProject/SharedProject.projitems

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@
163163
<Compile Include="$(MSBuildThisFileDirectory)Core\Utilities\LinqToXmlUtil.cs" />
164164
<Compile Include="$(MSBuildThisFileDirectory)Core\Utilities\Tryer.cs" />
165165
<Compile Include="$(MSBuildThisFileDirectory)Core\Utilities\VsThreading\IThreadHelper.cs" />
166+
<Compile Include="$(MSBuildThisFileDirectory)Core\Utilities\XmlFileEscaper.cs" />
166167
<Compile Include="$(MSBuildThisFileDirectory)Core\Utilities\ZipFileWrapper.cs" />
167168
<Compile Include="$(MSBuildThisFileDirectory)Impl\CoverageColour\GlyphMargin\RefreshCoverageGlyphsMessage.cs" />
168169
<Compile Include="$(MSBuildThisFileDirectory)Impl\CoverageColour\MarginBase\CoverageLineTaggerBase.cs" />

0 commit comments

Comments
 (0)