Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>В общем не важно каким способом, но мне необходимо научиться пришибать сборки в домене или домен вместе со сборкой
А>>и освобождать dllки
А>AppDomain.Unload (...) не спасёт отца?
Да, спасает, после этого я могу создать домен и загрузить свежескомпилированную сборку
но после AppDomain.Unload dllка не освобождается, а по сему ни перезаписать ни удалить я ее не могу

а меня как раз и волнует вопрос удаления сейчас
инече скомпилированные сборки копятся в каталоге программы
а вообще был бы пресного благодарен не только за конкретный совет по решению вопроса но и за ссылку на доки по этой теме
и еще вопрос попутный, можно ли загрузить в домен сборку откомпилированную в памяти?
сейчас я делаю так (может вообще надо как-то по другому?):
***
AppDomainSetup domaininfo = new AppDomainSetup();
domaininfo.ApplicationBase = AppPath;
Evidence adevidence = AppDomain.CurrentDomain.Evidence;
ScriptsDomain = AppDomain.CreateDomain("ScriptsDomain", adevidence, domaininfo);
CodeDomProvider provider = GetCurrentProvider(Lng);
string DLLPath = CompileScriptsToDLL(false, path, name, Lng, provider);
if (DLLPath != "")
{
byte[] rawAssembly = loadFile(DLLPath);
/*string pdbpath = DLLPath.Replace(".dll", ".pdb");
byte[] rawSymbolStore = loadFile(pdbpath);*/
Assembly assembly = ScriptsDomain.Load(rawAssembly);
if (assembly != null)
{
ну и тут собственно вызов метода Start у сборки с передаваемой ему ссылкой на объект находящийся в CurrentDomain
}
}
***
вообще я очевидно непонимаю некоторых ключевых моментов
почему при Assembly assembly = ScriptsDomain.Load(rawAssembly); (по идее передается массив байт а не ссылка на файл)
все же необходимо налисие самой dll в AppPath