我在部署时使用 MSBuild 任务 XmlUpdate 更新我的 log4net 文件,它的工作原理就像魅力 :)。然而今天我发现了一个大问题。
问题: 如果我不小心指定了错误的 Xpath,脚本不会失败。
MSBuild 任务配置错误:
<Target Name="UpdateLog4NetConfig" DependsOnTargets="UpdateAppConfig">
<XmlUpdate XmlFileName="$(ReleasePath)\log4net.config"
Xpath="//log4net/root/ERRORNODE/@value"
Value="WARN"
ContinueOnError="false"/>
</Target>
当我运行它时,我得到:
[XmlUpdate] Updating Xml Document "D:\TeamCity Agents\...\output\log4net.config".
[XmlUpdate] 0 node(s) selected for update.
[XmlUpdate] XmlUpdate Wrote: "WARN".
但是构建继续执行下一个任务!
问题: 我如何确保当 XmlUpdate "fails" 时,它实际上会停止整个脚本并显示一条大的 FAILED 消息?
(我知道 XPath 实际上并没有“失败”,但应该能够判断我认为是否应用了任何更改)
亲切的问候