我有这个结构
--Loader.exe
--Core.dll
--Plugins/Test.dll
--C:\Program Files\Program\Program.exe
程序集Test.dll引用了Core.dll,这很好。当我运行Loader.exe时,它会将Core.dll注入另一个进程(Program.exe),当它执行时,它会尝试加载程序集Test.dll。问题是Test.dll正在路径C:\ Program Files \ Program \ instad中添加它的路径中寻找引用Core.dll。
解决方案:(我正在搜索)
我正在寻找如何从另一个进程路径的执行路径instad加载引用的方法。
问题:
不要理解Core.dll是否加载了引用Core.dll的程序集,为什么它无法自行加载?
答案 0 :(得分:2)
从中加载引用程序集的目录由运行代码的AppDomain
的配置决定,具体来说,由AppDomain.BaseDirectory和AppDomain.RelativeSearchPath属性决定。默认情况下,程序集从包含入口点程序集的目录(通常是主EXE应用程序程序集)加载。要自定义这些路径,您需要创建自定义AppDomain
。或者,您可以使用Assembly.LoadFile或Assembly.LoadFrom手动加载程序集。