1

我构建了我的解决方案,但构建服务器上没有安装 CC 工具。
所以没有重写。

现在我很好奇,如果不是所有任务都完成了,为什么 msbuild 报告构建成功?

PS我对msbuild完全没有经验,所以如果我的问题听起来很愚蠢,请原谅,伙计们。

更新
好吧,我在本地安装了代码合同扩展,它为项目选项创建了附加选项卡。然后我在运行时启用了代码合同检查,并在 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
最终,我们在构建服务器上安装了代码合同并执行了组装检测。
然而,仍然不清楚在 CC 安装期间更改了哪些设置。

4

1 回答 1

3

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

希望这可以帮助。

于 2013-04-25T01:25:46.793 回答