2

我们有 2 个使用 .NET 3.5 和 .NET 4.0 编写的桌面主机应用程序。我们有 3 个在 .NET 3.5 上编写的加载项。一个加载项是在 .NET 4 上编写的 - “NET4APP”。

我们希望使用 .NET 3.5 主机应用程序为所有加载项集成主机应用程序和加载项。

它们可以与 MSI 包以任意组合捆绑在一起。

如果客户没有 .NET 4 并且不使用 NET4APP,我们不希望他们使用它。

有没有办法将 .NET 4 应用程序(或 .NET 4 运行时)加载到 .NET 3.5 应用程序中?

4

4 回答 4

4

在 .net 3.5 运行时(实际上是 .net 2.0 运行时)下无法运行 .net 4.0 应用程序。如果是 .net 3.5 应用程序,您可以在 2.0 运行时下运行它,因为 .net 3.5 应用程序在 .net 2.0 运行时下运行。但是会有问题,这种方式很危险。如果你想运行 .net 4.0 应用程序,你必须使用 .net 4.0 运行时,别无选择。或者您必须将其重写为 .net 3.5。

我们不得不将项目的某些部分从 .net 3.5 重写为 .net 2.0 RTM,因为我们的一些客户没有安装 .net 3.5,其中一些甚至没有安装 2.0 SP1,所以我们重写了我们的产品符合 .net 2.0 RTM 标准。我们仍然使用 .net 3.5 的一些功能,将一些 .net 3.5 程序集与我们的产品一起分发。实际上这不是问题,因为我们仍然可以使用扩展方法、lambdas、linq-to-objects。而且我敢肯定,您退回到 .net 3.5 运行时不会有任何问题。从 .net 3.5 退回到 .net 2.0 会更痛苦 :)

于 2011-04-21T14:24:30.843 回答
3

不; 但是,您应该在 .NET 3.5 中编译您的 .NET 4.0 应用程序,看看会发生什么。您可能没有使用任何特定于 4.0 的内容,只需将其编译为 3.5。

于 2011-04-21T14:01:14.777 回答
2

使用 .NET4 的客户,您可以简单地在 .NET4 下运行整个程序。如果您提供两种设置(一种带有 NET4APP,一种没有),每个人都会很高兴。

于 2011-04-21T17:05:35.200 回答
1

如果客户(或机器)没有安装 .Net 4 运行时,您无法加载它,您是否尝试在 .Net 3.5 下构建您的 .Net 4 应用程序?您可能没有使用特定于 .Net 4 的组件。

于 2011-04-21T14:10:51.357 回答