【问题标题】:Can .NET 2.0 assemblies run under .NET 4.0?.NET 2.0 程序集可以在 .NET 4.0 下运行吗?
【发布时间】:2011-08-16 19:43:26
【问题描述】:

我开发了一个 .NET 解决方案,它由多个程序集组成,其中大部分是针对 .NET Framework 2.0 版的小型辅助程序集。其余程序集是 MVC 3 Web 应用程序,它们必须以 .NET Framework 4.0 版为目标。除了 .NET 和 MVC 框架之外,我的解决方案没有其他外部依赖项。

我的问题如下:当我向客户部署此解决方案时,我必须部署两个版本的 .NET Framework,还是只部署 4.0 版? .NET 2.0 程序集可以在 .NET 4.0 下运行吗?

【问题讨论】:

  • 所有三个答案都同样有效,但是,因为我只能接受一个,所以我接受了最先发布的那个。

标签: .net versioning


【解决方案1】:

是的,嵌入在 .NET 2.0 程序集的程序集中的依赖项会自动转换为它们的 4.0 版本。但它使用从未测试过的那些程序集的版本运行。它们高度兼容,但包含几个错误修复,您可能在不知不觉中依赖这些错误。没有人可以给你 100% 的保证。

试试吧。

【讨论】:

  • 幸运的是,我的 .NET 2.0 程序集非常简单。它们中的大多数只是普通的旧数据类型,即 MVC 应用程序的模型;少数几个,不仅仅是 POD 类型,只是帮助类,它们从数据库中检索数据,并用它填充这些 POD 类型的实例。
【解决方案2】:

您只需要最新版本。向下兼容。

【讨论】:

  • 这是一个合格的真理。请在下面查看我的答案。
【解决方案3】:

答案是肯定的,为 .NET 2.0 开发的程序集将在 .NET 4.0 下正确运行

【讨论】:

    【解决方案4】:

    是和否(至少对于 .Net 4.5)。虽然它是向后兼容的,但默认是在关联的 .Net 版本上运行代码,如 here 所述:

    .NET Framework 4.5 及其单点版本与使用早期版本的 .NET Framework 构建的应用向后兼容。换言之,使用先前版本构建的应用程序和组件无需修改即可在 .NET Framework 4.5 上运行。但是,默认情况下,应用程序在为其开发的公共语言运行时版本上运行,因此您可能必须提供配置文件以使您的应用程序能够在 .NET Framework 4.5 上运行。有关详细信息,请参阅本文前面的应用版本兼容性部分。

    添加MyLovely.exe.config 文件后一切正常:

    <configuration>
      <startup>
        <supportedRuntime version="v4.0"/>
      </startup>
    </configuration>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2011-04-23
      • 1970-01-01
      相关资源
      最近更新 更多