如何在基于.net framework 4.0的应用程序中使用System.Windows.Forms,Version=2.0.0.0?

如何在基于.net framework 4.0的应用程序中使用System.Windows.Forms,Version=2.0.0.0?,.net,visual-studio,.net,Visual Studio,在VS2010中,编写以下代码并运行: =========== string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), @"Microsoft.NET\Framework"); string pathV2 = Path.Combine(path, "v2.0.50727"); Assembly assembly = Assembly.Load(File.ReadAllByte

在VS2010中,编写以下代码并运行:

===========

string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), @"Microsoft.NET\Framework");
string pathV2 = Path.Combine(path, "v2.0.50727");
Assembly assembly = Assembly.Load(File.ReadAllBytes(Path.Combine(pathV2,  System.Windows.Forms.dll")));
Console.Write(assembly.Location); 
================= 它将写出:
C:\Windows\Microsoft.Net\assembly\GAC\u MSIL\System.Windows.Forms\v4.0\u 4.0.0\u b77a5c561934e089\System.Windows.Forms.dll

那么,如何使用System.Windows.Forms,Version=2.0.0.0


谢谢

为什么不直接针对.NET 3.5 SP1(它只使用System.Windows.Forms程序集)

或者,如果您打算以.NET4为目标,那么为什么不以.NET4为目标呢


编辑2:如果不创建第二个以.NET 3.5或更早版本为目标的程序集,这是不可能的。

我想使用Control.FromHandle函数从另一个应用程序获取控制,我必须使用System.Windows.Forms.dll 2.0版,如果目标应用程序基于.net 2.0.extern alias,当我从C:\Windows\Microsoft.net\Framework\v2.0.50727添加System.Windows.Forms.dll引用时,它无法解决此问题,即使我从字节[]加载,它也会自动从我的示例代码更改为v4.0,它将更改为v4。0@maskx:唯一的方法是创建第二个以早期框架为目标的程序集,并将代码隐藏在其中。我尝试过这种方法,但失败。请将程序集基目标添加到fareamework v2.0,如果在应用程序目标中引用到framework v2.0,则为v2.0。但在应用程序中引用faramework v4.0时。所有程序集都更改为v4.0,包括System.Windows.Forms.dllmaybe,此问题无法解决,请参阅