我构建了我的解决方案,但构建服务器上没有安装CC工具 所以没有重写。
现在我很好奇为什么如果不是所有任务都完成,msbuild报告会成功建立?
P.S。我对msbuild完全缺乏经验,所以如果我的问题听起来很愚蠢,请原谅,伙计。
更新
好吧,我安装了本地Code Contracts扩展,为项目选项创建了额外的选项卡。然后我在运行时启用了代码合同检查,并在Main方法的最开头添加了以下行:
// test for Code Contracts rewrite
// exception is thrown if no rewrite
Contract.Requires<Exception>(true);
我提交了对TFS的更改并启动了构建,并且在没有任何警告的情况下成功完成了。没有重写,我的应用程序抛出异常
我已经阅读了关于Microsoft.CodeContracts.targets文件广告在CC安装目录中找到它,但我看到项目文件中没有参考它。仅限<CodeContractsAssemblyMode>1</CodeContractsAssemblyMode>
。
我不明白msbuild在哪里获取有关CC的知识以及如何应用它们。
更新2
最后,我们在Build Server上安装了Code Contracts,并执行了装配工具
然而,在CC安装过程中仍然不清楚更改了哪些设置。
答案 0 :(得分:3)
您还需要在构建服务器上安装这些工具。合同工具的设计是这样的,除非你使用Contract.Requires< Exception >(...)
,否则可以在不使用我们工具的情况下构建和发布位。但是,如果您使用Contract.Requires< Exception >(...)
,则必须使用重写器作为文档说明。因此,为了成功构建项目,您需要安装工具。
MsBuild和VS和C#对合同工具一无所知,因此无法警告您缺少工具安装。
希望这有帮助。