不同项目的代码合同

Code Contracts on different projects

我有一个合同项目(项目 A)生成一个库,另一个项目(项目 B)实现该库的接口。

我试过将合同文件从项目 A 复制到项目 B,合同在运行时触发,没有问题。但是当我试图从项目 B 引用项目 A 时。静态分析器仍在工作,但运行时检查不再工作。

我是不是做错了什么?关于代码合同的工作原理,我有什么不明白的地方吗?

重要提示: 这里讨论过 - CodeContracts issue

在新解决方案中复制了类似的项目结构。一切正常,没有任何问题。我仍然找不到生产解决方案有什么问题。

出于绝望,我创建了一个新的 CompanyName.ContractsDebug 库。一些测试合约实现在使用该库时触发了运行时检查。然后我尝试进行愚蠢的修复,我将旧合同项目 (CompanyName.Contracts) 的命名空间重构为一个新名称 (CompanyName.Shared.Contracts)。这不知何故解决了一切。非常奇怪的错误。

更新 我仓促地说将它移至 Shared.Contracts 有效。将其移至 Shared.IContracts 即可。我不知道 Contracts 关键字是怎么回事。