如果Code Contracts重写器未运行,为什么TFS2012报告构建成功?

时间:2013-01-30 18:59:52

标签: msbuild code-contracts tfs2012

我构建了我的解决方案,但构建服务器上没有安装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安装过程中仍然不清楚更改了哪些设置。

1 个答案:

答案 0 :(得分:3)

您还需要在构建服务器上安装这些工具。合同工具的设计是这样的,除非你使用Contract.Requires< Exception >(...),否则可以在不使用我们工具的情况下构建和发布位。但是,如果您使用Contract.Requires< Exception >(...),则必须使用重写器作为文档说明。因此,为了成功构建项目,您需要安装工具。 MsBuild和VS和C#对合同工具一无所知,因此无法警告您缺少工具安装。

希望这有帮助。