10

.NET 4 引入了代码契约作为一项新功能。我想使用 CC,但提供仍然可以在 3.5 SP1 中运行的文件。那可能吗?我可以只使用部分新功能吗?显然可以让 CC 只进行静态检查而不包含在二进制文件中,对吗?

我知道 CC 作为单独的模块可用于 3.5,如果我不能使用 CC 的 4 版本,这是一个可行的解决方法吗?功能集有区别吗?

4

2 回答 2

4

我想使用 CC,但提供仍然可以在 3.5 SP1 中运行的文件。那可能吗?

您不能使用 .NET 4.0 CC,但可以使用 Microsoft.Contracts.dll,它是 3.5 CC 程序集。

显然可以让 CC 只进行静态检查而不包含在二进制文件中,对吗?

是的。高级版包含静态检查器,但您需要 VS2008 Team System 或 VS2010 Premium/Ultimate 才能使用 Code Contracts 高级版。

我知道 CC 作为单独的模块可用于 3.5,如果我不能使用 CC 的 4 版本,这是一个可行的解决方法吗?

是的,它仍然可用。从http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx获取

于 2010-04-17T08:41:01.563 回答
4

是的,您可以在 .NET 3.5 中使用代码协定(但明智的做法是使用 Visual Studio 2010 进行开发,以便获得工具支持)。只需从Code Contracts 网站下载 MSI ,安装 DLL 并将其复制C:\Program Files (x86)\Microsoft\Contracts\Contracts\v3.5到您的解决方案中,并Microsoft.Contracts.dll在所有使用它的项目中明确引用。

如果您绑定到比 2010 更早的 Visual Studio 版本,或不支持代码协定的 2010 版本,您可以从命令行执行ccrewrite.exe,ccrefgen.execcdocgen.exe(位于)作为构建后事件C:\Program Files (x86)\Microsoft\Contracts\Bin

于 2010-08-25T14:18:25.567 回答