| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Assembly.UnLoad |
| Автор: jfx 18.1.2006, 19:28 |
| Понятно что такого метода MS не предусмотрела, но тем не менее как можно "разлочить" dll-ку со сборкой которая уже не используется? AppDomain.UnLoad не помог... Меня не интересует "уборка мусора", dll остается залоченой до выхода из приложения при любых обстоятельствах Как победить? Спасибо. Добавлено @ 19:42 Да, если это невозможно, то может быть можно как-то получить ресурс из сборки без ее загрузки? |
| Автор: jfx 18.1.2006, 19:51 |
| Похоже только AppDomain.SetShadowCopyFiles может помочь (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemappdomainclasssetshadowcopyfilestopic.asp?frame=true) Может можно как-то проще? |
| Автор: mr.DUDA 19.1.2006, 00:10 |
| Сборку, загруженную в домен, выгрузить нельзя. |
| Автор: arilou 19.1.2006, 12:57 |
| Зато можно выгрузить домен со всеми сборками |
| Автор: jfx 6.2.2006, 15:03 |
| Спасибо, давно не заглядывал. Т.е. можно в домен загрузить только ресурс? Как домены создаются я знаю Спасибо. |
| Автор: mr.DUDA 6.2.2006, 16:20 | ||||
Создаём домен, дёргаем метод в отдельном домене. После того как попали в новый домен, грузим сборку с пом. Assembly.LoadFrom. Получаем ресурс с пом. GetManifestResourceStream. Читаем стрим в переменную-массив. Кладём массив во внутренние переменные домена с пом. AppDomain.SetData(). Выходим из метода, получаем с пом. GetData() массив. Выгружаем домен. Вот пример:
|
| Автор: jfx 6.2.2006, 17:01 |
| Спасибо, буду пробовать. |