当我load dll(d1)文件(此文件引用了其他的dll(d2)),然后利用InvokeMember调用d1的方法时出错,错误提示:不能加载d2.
例如:
Could not load file or assembly 'ClassLibrary2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
我该如何解决?调用的部分主要代码如下:
object obj = type.InvokeMember
(null,BindingFlags.DeclaredOnly | BindingFlags.Public |BindingFlags.NonPublic |BindingFlags.Instance | BindingFlags.CreateInstance, null, null, null);type.InvokeMember
(methodName, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic |BindingFlags.Instance | BindingFlags.InvokeMethod, null, obj, null);

解决方案 »

  1.   

    自己顶。
    我发现把运行的应用程序放到这个dll(d1)文件的目录下可以通过的。
    当不放在这个目录下的时候,我想试着利用SetCurrentDirectory方法把应用程序的路径改变,这样一来它是否就会从我设置的路径去load呢,结果我错了。郁闷
      

  2.   

    我发现把运行的应用程序放到这个dll(d1)文件的目录下可以通过的。把dll放到系统目录不可以吗?