Добрый день!
Перерыл кучу информации в интернете, но что-то так ничего и не добился.
Создаю новый домен, загружаю в него сборку, потом домен выгружаю, а сборка все равно подцепленной остается...
//описываю класс чтобы сборка создавалась только в новом домене
public class Proxy : MarshalByRefObject
{
public Assembly GetAssembly(string assemblyPath)
{
try
{
return Assembly.LoadFile(assemblyPath);
}
catch (Exception)
{
return null;
}
}
}
//далее в коде
AppDomainSetup ads = new AppDomainSetup();
ads.ApplicationBase = Directory.GetCurrentDirectory();
AppDomain ad = AppDomain.CreateDomain("TestDomain", null, ads);//создаю домен
ad.SetShadowCopyFiles();//не знаю, насколько это надо
Type type1 = typeof(Proxy);
var value = (Proxy)ad.CreateInstanceAndUnwrap(type1.Assembly.FullName, type1.FullName);//создаю экземпляр типа Proxy в новом домене
var ass = value.GetAssembly(cp.OutputAssembly);// загружаю сборку
//операции со сборкой
//......
//
AppDomain.Unload(ad);
ad = null;
GC.Collect(2);();//не знаю, насколько это надо
Заранее спасибо...
Type type1 = typeof(Proxy);
Судя по этой строчке у вас proxy сборка подцеплена в references. До тех пор пока приложение основное работает сборка будет занята.
Здравствуйте, ZloeBablo, Вы писали:
ZB>ZB>Type type1 = typeof(Proxy);
ZB>Судя по этой строчке у вас proxy сборка подцеплена в references. До тех пор пока приложение основное работает сборка будет занята.
Не совсем понял, а почему вы сделали такой вывод?
То есть вы предлагаете просто убрать переменную type1 и писать typeof(Proxy) вместо нее?
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.