net core 指定多个运行目录

应用场景, 现在有工作目录

\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" } });

那么就可以将目录分开运行.

 


版权声明:本文为pehao原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。