【发布时间】:2017-10-24 17:19:56
【问题描述】:
我想从不是我当前应用程序域基础文件夹的文件夹中加载程序集。我想加载的一些程序集已经在默认应用程序域的旧版本中加载。为了运行它,我找到了以下代码。新加载的程序集位于文件夹 c:\testa\
How to Load an Assembly to AppDomain with all references recursively?
class Program
{
static void Main(string[] args)
{
AppDomainSetup domaininfo = new AppDomainSetup();
domaininfo.ApplicationBase = @"c:\testa\";
Evidence adevidence = AppDomain.CurrentDomain.Evidence;
AppDomain domain = AppDomain.CreateDomain("MyDomain", adevidence, domaininfo);
Type type = typeof(Proxy);
var value = (Proxy)domain.CreateInstanceAndUnwrap(
type.Assembly.FullName,
type.FullName);
var assembly = value.GetAssembly(args[0]);
// AppDomain.Unload(domain);
}
}
public class Proxy : MarshalByRefObject
{
public Assembly GetAssembly(string assemblyPath)
{
try
{
return Assembly.LoadFile(assemblyPath);
}
catch (Exception)
{
return null;
// throw new InvalidOperationException(ex);
}
}
}
作为上述代码的作者,我得到一个文件或依赖项未找到。那么我该如何处理这个问题。有什么想法吗?
【问题讨论】:
标签: c# appdomain system.reflection