Wie setze ich Web.config über MSBuild Extension Pack auf "Debug = False" fest?
-
12-10-2019 - |
Frage
Ich habe eine WCF -Dienstanwendung und das web.config ist auf den Debug -Modus (Debug = True) eingestellt:
<compilation debug="true">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
Ich möchte dies auf "Debug = False" über MSBuild Extension Pack (Version 3.5.8.0) festlegen, so dass die veröffentlichte Version immer automatisch im Nicht-Debug-Modus ist.
Offensichtlich muss ich das verwenden XMLFILE -Klasse, aber es tut nichts.
Meine Build -Datei sieht so aus:
<Target Name="Test">
<MSBuild.ExtensionPack.Xml.XmlFile TaskAction="UpdateAttribute" File="$(MSBuildProjectDirectory)\$(BuildDir)\ServiceClient\web.config" XPath="/configuration/system.web/compilation[@name='debug']" InnerText="false"/>
</Target>
Wenn ich das Build -Skript ausführe, sehe ich nur Folgendes:
Test:
XmlFile: C:\MyProject\Build\ServiceClient\web.config
Update Attribute: /configuration/system.web/compilation[@name='debug']. Value:
Keine Fehler, keine Warnungen ... nichts.
Ich kann sehen, dass MSBuild das Web.config gefunden und etwas damit gemacht hat, da im Entdecker "Datum geändert" wird, was derzeit nicht der Fall war, bevor ich das Skript leitete. Es gibt jedoch keine sichtbare Änderung in der Datei. Ich habe ein Diff -Tool verwendet, um die Dateiversionen vor und nach MSBuild zu vergleichen, und sie sind identisch.
Ich habe auch versucht zu setzen Key
und Value
Anstatt von InnerText
, Aber das hilft auch nicht.
Irgendeine Idee, was ich falsch mache?
Lösung
Versuche dies:
<Target Name="Test">
<MSBuild.ExtensionPack.Xml.XmlFile TaskAction="UpdateAttribute" File="web.config" XPath="/configuration/system.web/compilation" Key="debug" Value="false" />
</Target>
Ich verwende die Erweiterungspaketversion 3.5.8.0