AppDomain加载错误

时间:2017-10-10 01:24:23

标签: c# reflection .net-assembly appdomain

我遇到了加载问题但无法解决问题。 我得到的错误如下:

  

无法加载文件或程序集'BuildTest,Version = 1.0.0.4,   Culture = neutral,PublicKeyToken = null'或其依赖项之一。该   系统找不到指定的文件。“:”BuildTest,Version = 1.0.0.4,   Culture = neutral,PublicKeyToken = null“

我写的代码如下:

var buildTestPath = @"D:\BuildTest\bin\Debug";

AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationName = "BuildTest";
setup.ShadowCopyFiles = "true";
setup.PrivateBinPath = buildTestPath;

AppDomain domain = AppDomain.CreateDomain("MyDomain", AppDomain.CurrentDomain.Evidence, setup);

var assemblyFile = Path.Combine(buildTestPath, "BuildTest.dll");
var assemblyName = AssemblyName.GetAssemblyName(assemblyFile);
var assembly = domain.Load(assemblyName);

Type myType = assembly.GetType("BuildTest.Class1");
MethodInfo myMethod = myType.GetMethod("MethodA");
object obj = Activator.CreateInstance(myType);
myMethod.Invoke(obj, null);

AppDomain.Unload(domain);

有人可以帮帮我吗?

由于

1 个答案:

答案 0 :(得分:0)

AppDomain.Load只应用于将程序集加载到当前AppDomain中。

要将程序集(并创建该类型的实例)加载到新创建的域中,AppDomain类会公开CreateInstanceAndUnwrap之类的方法,您应该在这里使用它。