可能重复:
Unloading the Assembly loaded with Assembly.LoadFrom()为什么装配仍然可见?
我使用自定义AppDomain
加载/卸载组件。但是当组装被卸载时,我可以在AppDomain.CurrentDomain
下看到它。
这是怎么回事?这是正常的行为还是我错过了什么?
谢谢你的任何线索!
string assemblyPath = @"C:\MyFile.dll";
var assemblyName = AssemblyName.GetAssemblyName(assemblyPath);
var ads = new AppDomainSetup
{
ApplicationBase = AppDomain.CurrentDomain.SetupInformation.ApplicationBase,
DisallowCodeDownload = true
};
AppDomain newDomainName = AppDomain.CreateDomain("newDomainName", null, ads);
try
{
Assembly testLibrary = newDomainName.Load(assemblyName);
var c1 = AppDomain.CurrentDomain.GetAssemblies();
var c2 = newDomainName.GetAssemblies();
}
finally
{
AppDomain.Unload(newDomainName);
var c3 = AppDomain.CurrentDomain.GetAssemblies();
// The assembly is still visible here!!!
}
@asawyer不,它不是一个重复的问题我使用一个新的AppDomain保持那里加载大会。 –