Domanda

Ho un Application Service WCF e il web.config è impostato sulla modalità di debug (debug = true):

    <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>

vorrei set che a "debug = false" tramite Extension Pack MSBuild (versione 3.5.8.0), in modo che la versione rilasciata è sempre automaticamente in modalità non-debug.

Ovviamente ho bisogno di usare la XMLFILE classe , ma non fa nulla.
Il mio aspetto build file come questo:

  <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>

Quando eseguo lo script di build, vedo solo questo:

Test:  
XmlFile: C:\MyProject\Build\ServiceClient\web.config 
Update Attribute: /configuration/system.web/compilation[@name='debug']. Value:

Nessun errore, nessun avviso ... niente.
Vedo che MSBuild trovato il web.config e ha fatto qualcosa con esso, perché "data di modifica" in Explorer è impostato in questo momento, che non era il caso prima ho eseguito lo script. Ma non v'è alcun cambiamento visibile nel file. Ho usato uno strumento diff per confrontare le versioni dei file prima e dopo MSBuild, e sono identici.

Ho anche provato a Key set e Value invece di InnerText, ma che non aiuta neanche.

Qualche idea di cosa sto facendo male?

È stato utile?

Soluzione

Prova questo:

  <Target Name="Test">
    <MSBuild.ExtensionPack.Xml.XmlFile TaskAction="UpdateAttribute" File="web.config" XPath="/configuration/system.web/compilation" Key="debug" Value="false" />
  </Target>

Sto usando Extension Pack versione 3.5.8.0

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top