diff --git a/SharedProject/Core/MsTestPlatform/CodeCoverage/MsTemplateReplacementException.cs b/SharedProject/Core/MsTestPlatform/CodeCoverage/MsTemplateReplacementException.cs
new file mode 100644
index 00000000..8d70cf67
--- /dev/null
+++ b/SharedProject/Core/MsTestPlatform/CodeCoverage/MsTemplateReplacementException.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Xml;
+
+namespace FineCodeCoverage.Engine.MsTestPlatform.CodeCoverage
+{
+ public class MsTemplateReplacementException : Exception
+ {
+ private XmlException innerException;
+ private string replacedRunSettingsTemplate;
+ public MsTemplateReplacementException(XmlException innerException, string replacedRunSettingsTemplate)
+ {
+ this.innerException = innerException;
+ this.replacedRunSettingsTemplate = replacedRunSettingsTemplate;
+ }
+
+ public override string ToString()
+ {
+ return $@"${innerException}
+Replaced template :
+${replacedRunSettingsTemplate}
+";
+ }
+
+ }
+}
diff --git a/SharedProject/Core/MsTestPlatform/CodeCoverage/RunSettingsTemplate.cs b/SharedProject/Core/MsTestPlatform/CodeCoverage/RunSettingsTemplate.cs
index 91c54b8c..6f7c3468 100644
--- a/SharedProject/Core/MsTestPlatform/CodeCoverage/RunSettingsTemplate.cs
+++ b/SharedProject/Core/MsTestPlatform/CodeCoverage/RunSettingsTemplate.cs
@@ -2,11 +2,13 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
+using System.Xml;
using System.Xml.Linq;
using System.Xml.XPath;
namespace FineCodeCoverage.Engine.MsTestPlatform.CodeCoverage
{
+
[Export(typeof(IRunSettingsTemplate))]
internal class RunSettingsTemplate : IRunSettingsTemplate
{
@@ -186,7 +188,14 @@ bool isNetFramework
private string AddRecommendedYouDoNotChangeElementsIfNotProvided(string replacedRunSettingsTemplate, bool isNetFramework)
{
- var templateDocument = XDocument.Parse(replacedRunSettingsTemplate);
+ XDocument templateDocument = null;
+ try
+ {
+ templateDocument = XDocument.Parse(replacedRunSettingsTemplate);
+ }catch(XmlException exc)
+ {
+ throw new MsTemplateReplacementException(exc, replacedRunSettingsTemplate);
+ }
var msDataCollectorCodeCoverageElement = GetMsDataCollectorCodeCoverageElement(templateDocument);
if (msDataCollectorCodeCoverageElement != null)
{
diff --git a/SharedProject/SharedProject.projitems b/SharedProject/SharedProject.projitems
index caff195f..50362465 100644
--- a/SharedProject/SharedProject.projitems
+++ b/SharedProject/SharedProject.projitems
@@ -87,6 +87,7 @@
+