가능한 중복 :
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을 사용하여로드 된 어셈블리를 유지합니다. –