@@ -152,6 +152,7 @@ private IXPathNavigable AddFCCRunSettingsActual(IXPathNavigable inputRunSettingD
152152 userRunSettingsProjectDetailsLookup ,
153153 fccMsTestAdapterPath
154154 ) ;
155+
155156 EnsureTestAdaptersPathsAndReplace ( navigator , replacements ) ;
156157 EnsureCorrectMsDataCollectorAndReplace ( clonedNavigator , replacements ) ;
157158 return navigator ;
@@ -212,14 +213,31 @@ private void EnsureCorrectMsDataCollectorAndReplace(XPathNavigator xpathNavigato
212213 xpathNavigator . AppendChild ( runSettingsTemplate . DataCollectionRunSettingsElement ) ;
213214 }
214215
215- if ( addedMsDataCollector )
216+ // todo - improve this
217+ var disableMsDataCollector = replacements . Enabled . ToLower ( ) == "false" ;
218+ if ( addedMsDataCollector || disableMsDataCollector )
216219 {
217220 xpathNavigator . MoveToRoot ( ) ;
218221 var dataCollectorsNavigator = xpathNavigator . SelectSingleNode ( "/RunSettings/DataCollectionRunSettings/DataCollectors" ) ;
219222 var msDataCollectorNavigator = MoveToMsDataCollectorFromDataCollectors ( dataCollectorsNavigator ) ;
220- ReplaceExcludesIncludes ( msDataCollectorNavigator , replacements ) ;
223+
224+ if ( disableMsDataCollector )
225+ {
226+ DisableMsDataCollector ( msDataCollectorNavigator ) ;
227+ }
228+ else
229+ {
230+ ReplaceExcludesIncludes ( msDataCollectorNavigator , replacements ) ; // no need to replace if we are disabling
231+ }
221232 }
233+ }
222234
235+
236+ private void DisableMsDataCollector ( XPathNavigator msDataCollectorNavigator )
237+ {
238+ var element = XElement . Parse ( msDataCollectorNavigator . OuterXml ) ;
239+ element . SetAttributeValue ( "enabled" , "false" ) ;
240+ msDataCollectorNavigator . OuterXml = element . ToString ( ) ;
223241 }
224242
225243 private XPathNavigator MoveToMsDataCollectorFromDataCollectors ( XPathNavigator navigator )
0 commit comments