可能重複:
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保持那裏加載大會。 –