我有一个 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>
我想通过 MSBuild 扩展包(版本 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 并对其进行了处理,因为资源管理器中的“修改日期”设置为现在,而在我运行脚本之前情况并非如此。但是文件中没有明显的变化。我使用 diff 工具比较了 MSBuild 之前和之后的文件版本,它们是相同的。
我也尝试设置Key
andValue
而不是InnerText
,但这也无济于事。
知道我做错了什么吗?