Как установить для web.config значение "debug=false" с помощью пакета расширений MSBuild?
У меня есть приложение-служба 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
, но это тоже не помогает.
Есть идеи, что я делаю не так?
1 ответ
Попробуй это:
<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