我正在使用以下(大大简化)的MSBuild脚本:
这非常适合转换单个配置文件,而无需通过MSDeploy.
但是,让我说在我的变换中我拼错了一个变量.我会收到一个警告:
C:\ MyApp\DevOps\Config\Production\webapp.xml(15,6):警告:源文档中的任何元素都不匹配'/ configuration/appSettings/add [@ key ='MyUnknownVariable']'[C:\ MyApp \的DevOps\ConfigBundle.msbuild]
虽然我们收到警告是很好的,但我真的需要这个错误,因为这将成为我们自动构建和部署过程的一部分,所以在应用程序停止工作之前,不太可能有人发现它.
我想要一种方法将这些警告视为错误.基于我在互联网上看到的一些东西,我尝试了一个带有两个不同TreatWarningsAsErrors符号的PropertyGroup:
true true
我已经尝试在命令行上设置它(我怀疑它与上面相同):
C:\MyApp\DevOps>msbuild /p:TreatWarningsAsErrors="true" ConfigBundle.msbuild
遗憾的是,这些都不起作用; 警告继续发送.基于这一点,我猜测它是由个人MSBuild任务来尊重TreatWarningsAsErrors指令,在这种情况下,TransformXml不会.
如果我能找到一种方法来了解上一个任务是否发出警告,例如我可以做以下事情:
它并不完美,但肯定会阻止构建成功完成.希望有人会对此有一个有用的建议.