【问题标题】:.net 4.0 migration.net 4.0 迁移
【发布时间】:2011-03-13 12:22:00
【问题描述】:

.net 3.5 c# 项目可以引用 .net 4.0 程序集并使用它进行编译吗? 运行时间呢? 4.0 编译/运行 3.5 怎么样?

编辑:特别是,我有一个 3rd 方 .net 程序集。它有扩展点:我在 app.config 中注册了我的 dll,它调用了我(可能通过反射)。我可以在 .net 4.0 中实现我的 dll 吗?什么时候选择 CLR 版本,什么时候出现主 exe 或者什么时候 dll 需要它的某个版本?

【问题讨论】:

    标签: .net .net-3.5 .net-4.0 versioning


    【解决方案1】:

    请注意,针对您的特定情况,您可以使用 <requiredRuntime> 配置元素使第 3 方应用程序加载 4.0 版框架。这将导致框架的 4.0 版本加载,因此您的 DLL 可以使用 4.0 功能。

    此外,.NET 4.0 附带一个名为In-Process Side-by-Site 的功能。我自己从未研究过此功能,但它可能对您的情况也有用...

    【讨论】:

      【解决方案2】:

      .net 3.5 应用程序需要重新定位到 te 4.0 框架才能成为 .net 4.0 应用程序并使用 .net 4.0 功能。这不应该破坏任何东西(除了在您的用户的 PC 上需要 .net 4.0),但可以让您开始使用 .net 4.0 功能。

      您可以将 .net 4.0 应用程序重新定位到 3.5 如果它不使用任何 .net 4.0 功能。如果是这样,您将需要重写这些代码以使用 .net 3.5。

      定位特定的 .net 版本很简单 - 通过从项目属性的下拉列表中选择版本来完成。

      【讨论】:

      • '如果 .net 4.0 应用程序不使用任何 .net 4.0 功能,您可以将其重新定位到 3.5。' 这实际上意味着,'不使用任何不仅仅是编译器技巧的功能。我会因为称它们为诡计而惹上麻烦,但是哦,好吧。一个简单的例子是 C# 中的可选参数。
      • @Yaron:我希望每个程序集都应该能够独立地“链接”到不同版本的 CLR。但是,我无法确认,因为我不知道答案。为什么不试试看呢?
      【解决方案3】:

      不,您需要升级到 4.0 才能引用 4.0 程序集。

      【讨论】:

        猜你喜欢
        • 2011-03-05
        • 1970-01-01
        • 1970-01-01
        • 2014-02-13
        • 2011-06-29
        • 2013-03-22
        • 2012-07-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多