Как установить для web.config значение «debug=false» через пакет расширений MSBuild?

StackOverflow https://stackoverflow.com/questions/4512013

Вопрос

У меня есть приложение службы 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>

Я хотел бы установить для этого параметра значение «debug=false» через пакет расширений MSBuild (версия 3.5.8.0), чтобы выпущенная версия всегда автоматически находилась в режиме без отладки.

Очевидно, мне нужно использовать Класс 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 и Value вместо InnerText, но это тоже не помогает.

Есть идеи, что я делаю неправильно?

Это было полезно?

Решение

Попробуй это:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top