应用场景, 现在有工作目录
\bin
----main.exe
----\bin\binA\A.dll
----\bin\binA\A_relation1.dll (A.dll的依赖文件)
----\bin\binB\B.dll
----\bin\binB\B_relation1.dll (B.dll的依赖文件)
按照常规运行, a.dll,b.dll以及他的依赖文件都要放到 main.exe同级目录下
问题如果要分开运行应该如何处理呢?
1. 通过 AppDomain添加privatePath
AppDomain.CurrentDomain.AppendPrivatePath(".\\binA\\");
AppDomain.CurrentDomain.AppendPrivatePath(".\\binB\\");
2. 通过反射方式加载a.dll和b.dll
var assmebly = Assembly.LoadFrom(".\\binA\\A.dll");
3. 通过type.invoke方法调用方法
var type = assmebly.GetType("A.Program");
type.GetMethod("Main").Invoke(null, new object[] { new string[] { "test" } });
那么就可以将目录分开运行.