【问题标题】:Can I use .NET 4 Code Contracts and remain compatible with .NET 3.5?我可以使用 .NET 4 代码合同并保持与 .NET 3.5 的兼容性吗?
【发布时间】:2011-02-05 14:27:14
【问题描述】:

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

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

【问题讨论】:

  • 我想知道这个,不过我猜“不”。

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


【解决方案1】:

我想使用 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 单独的模块,这是可行的吗 解决方法,以防我无法使用 4 CC 版本?

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

【讨论】:

    【解决方案2】:

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

    如果您绑定到早于 2010 的 Visual Studio 版本,或不支持代码协定的 2010 版本,则可以执行 ccrewrite.execcrefgen.execcdocgen.exe(位于 @ 987654328@) 从命令行作为post build event

    【讨论】:

    • 代码合同确实适用于 VS2008 团队版(但不适用于 VS2008 的任何其他版本)
    猜你喜欢
    • 1970-01-01
    • 2011-03-12
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多