.NET 4 引入了代码契约作为一项新功能。我想使用 CC,但提供仍然可以在 3.5 SP1 中运行的文件。那可能吗?我可以只使用部分新功能吗?显然可以让 CC 只进行静态检查而不包含在二进制文件中,对吗?
我知道 CC 作为单独的模块可用于 3.5,如果我不能使用 CC 的 4 版本,这是一个可行的解决方法吗?功能集有区别吗?
.NET 4 引入了代码契约作为一项新功能。我想使用 CC,但提供仍然可以在 3.5 SP1 中运行的文件。那可能吗?我可以只使用部分新功能吗?显然可以让 CC 只进行静态检查而不包含在二进制文件中,对吗?
我知道 CC 作为单独的模块可用于 3.5,如果我不能使用 CC 的 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获取
是的,您可以在 .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.exe
和ccdocgen.exe
(位于)作为构建后事件。C:\Program Files (x86)\Microsoft\Contracts\Bin