我可以在.NET 2应用程序中运行.NET 4应用程序吗?

时间:2012-10-22 15:16:22

标签: c# .net-4.0 .net-2.0

  

可能重复:
  Can I use a .NET 4.0 library in a .NET 2.0 application?

所以我有一个遗留的.NET 2 GUI应用程序。重做此应用程序是不可能的。

我还有一个控制台.NET 4应用程序,可以执行FTP和其他工作。它使用LINQ。

现在,我将控制台应用程序(即.NET 4)抽象为可重用的DLL等。

我希望能够做的是让GUI应用程序(.NET 2)能够包含这些DLL并调用它们。然后从中获取返回值。

我认为更糟糕的情况我可以保持它是一个控制台应用程序,让.NET两个外部执行它。但我希望GUI应用程序能够从.NET 4中执行方法。

将运行此应用程序的客户端都具有.NET 4。

感谢。

2 个答案:

答案 0 :(得分:8)

  

所以我有一个遗留的.NET 2 GUI应用程序。重做此应用程序是不可能的。

是否正在将框架目标更改为.NET 4并且还无法重建?这可能是最简单的方法 - 然后你知道你不会在奇怪的情况下结束你实际上在CLR v2上运行并尝试加载需要CLR v4(和.NET)的程序集框架v4组件)。

在大多数情况下,您应该只需重新定位 - 虽然向后兼容性不是100%,但它非常好。

答案 1 :(得分:1)

您需要做的是将共享实用程序分解为针对2.0框架的DLL。然后可以在2.0和4.0 .Net过程中使用这些DLL。 .Net在向后兼容性方面设置了很高的标准,在绝大多数情况下,2.0 DLL可以在4.0中无需更改即可运行。