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?

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top