2010-02-08 201 views
1

在VS2010编写代码并运行:如何在基于.NET Framework 4.0的应用程序中使用System.Windows.Forms,Version = 2.0.0.0?

===========

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_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll

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

感谢

回答

0

你为什么不只是面向.NET 3.5 SP1(它使用的唯一System.Windows.Forms程序集)?或者,如果你打算以.NET 4为目标,那你为什么要尝试使用而不是目标.NET 4?

编辑2:如果不创建另一个面向.NET 3.5或更早版本的程序集,这是不可能的。

+0

我想使用Control.FromHandle函数从另一个应用程序获取控件,如果目标应用程序基于.net 2.0,则必须使用System.Windows.Forms.dll版本2.0。 – maskx 2010-02-08 07:05:11

+0

@maskx:检查我的编辑:) – 2010-02-08 07:21:04

+0

extern别名无法解决此问题 当我从C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727添加System.Windows.Forms.dll refrence时,它会自动更改为v4.0 从我的示例代码中,即使我从byte []加载,它将更改为v4.0 – maskx 2010-02-08 07:55:55

相关问题