我可以使用.NET 4 Code Contracts并与.NET 3.5保持兼容吗?

时间:2010-04-08 08:07:18

标签: .net-3.5 .net-4.0 code-contracts

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

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

2 个答案:

答案 0 :(得分:4)

  

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

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

  

显然可以拥有CC   只做静态检查而不是   包含在二进制文件中的是   正确的吗?

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

  

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

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

获取

答案 1 :(得分:4)

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

如果您绑定的Visual Studio早于2010版本,或者2010版本没有Code Contract支持,则可以执行ccrewrite.execcrefgen.exe和{{1位于ccdocgen.exe)的C:\Program Files (x86)\Microsoft\Contracts\Binpost build event