【问题标题】:Framework compatibility框架兼容性
【发布时间】:2011-05-04 10:09:17
【问题描述】:

我有一个基于 .NET Framework v4.0 的类库。是否可以将此作为参考添加到针对 v3.5 框架的控制台或 Web 应用程序中?

【问题讨论】:

    标签: .net frameworks c#-4.0


    【解决方案1】:

    .NET 4.0 中的元数据格式已更改。 CLR 的第 2 版,当您针对 2.0 和 3.5 之间的任何 .NET 版本时获得的版本不知道如何阅读它。同样的事情发生在 1.1 和 2.0 之间。 CLR 版本 4 知道如何毫无问题地读取旧格式。只要您有对编译为目标版本 4 的非框架程序集的引用,那么您必须使用 .NET 4.0。

    重新定位不需要引用该程序集的现有 EXE 项目是可能的。将 .config 文件添加到项目并粘贴:

    <startup useLegacyV2RuntimeActivationPolicy="true">
       <supportedRuntime version="v4.0"/>
    </startup>  
    

    【讨论】:

      【解决方案2】:

      我建议不要,因为他们使用的是完全不同的 CLR。通常,向后兼容性 = 是,向前兼容性 = 否。

      【讨论】:

        【解决方案3】:

        我刚刚创建了一个 Framework 3.5 控制台应用程序并添加了对我手头的 4.0 dll 的引用。

        编译器对此一点也不满意。

        (空)程序运行一次(出现控制台,然后关闭),然后错误列表中出现40条警告,与版本问题有关,根本无法访问dll的命名空间。

        我会同意 Sasquiha 的观点,并说这看起来不可行。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-20
          • 2015-11-17
          • 1970-01-01
          • 1970-01-01
          • 2010-11-19
          相关资源
          最近更新 更多