3

WCFサービスアプリケーションがあり、web.configがデバッグモードに設定されています(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>

これをMSBuildExtensionPack(バージョン3.5.8.0)で「debug = false」に設定して、リリースされたバージョンが常に自動的に非デバッグモードになるようにします。

明らかに、XmlFileクラスを使用する必要がありますが、何もしません。
私のビルドファイルは次のようになります。

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

ビルドスクリプトを実行すると、次のように表示されます。

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

エラーも警告もありません...何もありません。
エクスプローラーの[変更日]が現在設定されているため、MSBuildがweb.configを検出し、それを使用して何かを実行したことがわかります。これは、スクリプトを実行する前はそうではありませんでした。ただし、ファイルに目に見える変更はありません。差分ツールを使用して、MSBuildの前後のファイルバージョンを比較しましたが、それらは同じです。

の代わりにを設定しようとしましKeyたが、それも役に立ちません。ValueInnerText

私が間違っていることについて何か考えはありますか?

4

1 に答える 1

4

これを試して:

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

拡張パック バージョン 3.5.8.0 を使用しています

于 2010-12-22T22:37:30.860 に答える