我能使用.NET 4代码合同并保持与.NET 3.5兼容吗?

10

.NET 4推出了Code Contracts作为一个新特性。我想使用CC,但希望生成的文件可以在3.5 SP1中运行。这是否可行?我是否只能使用部分新功能?显然,有可能让CC仅执行静态检查而不包含在二进制文件中,是正确的吗?

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


我想知道这个,虽然我猜是“不”。 - Finglas
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获取它。


4
是的,你可以在.NET 3.5中使用Code Contracts(但是最好使用Visual Studio 2010进行开发以获得工具支持)。只需从Code Contracts网站下载MSI,安装并将DLL从C:\Program Files (x86)\Microsoft\Contracts\Contracts\v3.5复制到你的解决方案,并在使用它的所有项目中明确引用Microsoft.Contracts.dll
如果你被绑定到比2010年更早的Visual Studio版本,或者一个没有Code Contract支持的2010版本,你可以从命令行中执行ccrewrite.execcrefgen.execcdocgen.exe(位于C:\Program Files (x86)\Microsoft\Contracts\Bin)作为后期构建事件

2
代码合约与VS2008 Team Edition兼容(但不与其他版本的VS2008兼容)。 - Jeffrey Cameron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接