我创建了一个C++包装类库来导入C++本机dll。我已经将这个C++类库的项目引用添加到我的C#应用程序,并将所有依赖项复制到Debug文件夹。到目前为止,除非我想为该C++本地dll的旧版本执行相同的过程,否则每件事情都可以正常工作。很明显,我不能有两个dll(s)具有相同的名称和文件夹中的依赖关系的相同名称。所以我决定为每个版本的C++包装器提供一个c#程序集包装器,并让每个程序集dll和依赖项放在一个分开的文件夹中。我试图用Assembly.LoadFrom()在运行时加载包装程序集 - 时间和它加载程序集,但是,当它到达的Invkode行:如何在使用Assembly.loadfrom()时解决程序集在C#中的依赖关系()
bject[] p = new object[] { command, null,format,handle};
uint ret= (uint) mi.Invoke(obj,p)
它抛出一个异常说:
无法加载文件或程序集“MDVRCLib,版本= 1.0.6110.25310,文化=中立,PublicKeyToken =空'或其中一个依赖。该系统找不到指定的文件。
再次,如果我使用此程序集作为项目引用,并将其所有的依赖关系复制到项目文件夹,它将正常工作。我想知道,当我使用Assembly.LoadFrom()从另一个文件夹加载程序集时,如何解决程序集的依赖关系,以防止出现此类错误?