今天查找有关低版本引用高版本的程序集。
后来发现一个同仁的文章,写的比较好,后来实践成功。
在app.config中添加一个配置节:startup
<
startup
useLegacyV2RuntimeActivationPolicy
=
"true"
>
<
supportedRuntime
version
=
"v4.0"
/>
</
startup
>
调用例子:
测试程序集:TestForm 为3.5程序集
反射引用程序集:TestClass 为4.0程序集 ,对应接口程序集:ITestClass 为3.5
则可以在TestForm (启动程序集)中app.config配置
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
后,启动中加载:
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
System.Reflection.Assembly k = System.Reflection.Assembly.LoadFile(@"盘符:\路径\TestClass.dll");
//Namespace02.IClass1在ITestClass程序集中,需要引用到本项目中
Namespace02.IClass1 obj = k.CreateInstance("Namespace01.Class1") as Namespace02.IClass1;
string str = obj.GetHellow();
MessageBox.Show(str);
}
执行成功!
注意:
开发环境:visual studio 2010
感谢无恨星晨:
参考引用:
http://www.cnblogs.com/weixing/archive/2012/04/09/2439060.html