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