我们在.NET 3.5和.NET 4.0上编写了2个桌面主机应用程序。 我们在.NET 3.5上编写了3个加载项。 一个加载项是在.NET 4上编写的 - “NET4APP”。
我们希望使用适用于所有加载项的.NET 3.5主机应用程序集成主机应用程序和加载项。
它们可以与MSI包的任意组合捆绑在一起。
我们不希望让客户使用.NET 4,如果他们没有它并且不使用NET4APP。
有没有办法将.NET 4应用程序(或.NET 4运行时)加载到.NET 3.5应用程序中?
答案 0 :(得分: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会更加痛苦:)
答案 1 :(得分:3)
没有;但是,您应该在.NET 3.5中编译.NET 4.0应用程序,看看会发生什么。您可能没有使用4.0特定的任何内容,只能将其编译为3.5。
答案 2 :(得分:2)
使用.NET4的客户,您可以简单地在.NET4下运行整个程序。如果您提供两个设置(一个使用NET4APP,一个不使用),每个人都会很高兴。
答案 3 :(得分:1)
如果客户(或机器)没有安装它,您是否无法加载.Net 4运行时,您是否尝试在.Net 3.5下构建.Net 4应用程序?您可能没有使用特定于.Net 4的组件。