![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
4ybaka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
Загружаю сборку через Assembly.LoadFile() или Assembly.LoadFrom(), а потом нужно ее удалить. так вот доступа к файлу пока не закроешь приложения - нет. как можно освободить файл?
-------------------- "То,что вы понимаете - это все,что вы понимаете." Брайн Керниган |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
4ybaka, если загрузить сборку в домен, отдельный от главного домена приложения, то её можно потом без проблем выгрузить.
-------------------- СУВ, Partizan. |
|||
|
||||
4ybaka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
попробовал - не получилось.также не дает удалять.может чтото не так делаю?...код такой:
ЗЫ:данные все загружаются -------------------- "То,что вы понимаете - это все,что вы понимаете." Брайн Керниган |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
4ybaka, сам недавно столкнулся с подобной проблемой. Все workaround'ы, которые находил, сводились к бесконечному циклу:
Вот примеры подобных реализаций: 1. http://mark.michaelis.net/Blog/UnableToCon...nAppDomain.aspx 2. http://codebetter.com/blogs/ranjan.sakalle...4/08/61574.aspx Здесь под заголовком "Unloading" есть обоснование, отчего возникают такие проблемы. А вот здесь объясняется, почему нет метода Assembly.Unload. Это сообщение отредактировал(а) Idsa - 4.9.2008, 06:05 |
|||
|
||||
4ybaka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
что-то я не совсем понял смысла кода,т.к. исключение то вываливается не при Unload,а при записи в файл...но тем не менее все равно не работает.
-------------------- "То,что вы понимаете - это все,что вы понимаете." Брайн Керниган |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
Какая еще запись в файл? Почему тогда выложены исходники с выгрузкой домена, а не с записью в файл? |
|||
|
||||
4ybaka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
потому что при удалении файла через File.Delete(path) думаю сложно сделать ошибку.
ЗЫ: запись = удаление в данном случае ![]() -------------------- "То,что вы понимаете - это все,что вы понимаете." Брайн Керниган |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
||||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
Idsa, мои телепатические способности подсказывают мне, что автор через File.Delete пытается удалить сборку, достигая тем самым выгрузки её...да только по рукам бьют, ибо сборка-то занята )
![]() -------------------- СУВ, Partizan. |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
Хм... Ну так до этого же сборка выгружается. 4ybaka, нужен весь код. Иначе я буду кусатсья. Надоело играть в отгадайку. |
|||
|
||||
4ybaka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
к сожалению старый код уже не вернуть....вообщем предложили загрузить сборку в массив байт и потом через Assembly.Load() загрузить ее.тогда файл не блокируется и хорошо все пишется
![]()
PS: исключение было такое: Access to the path 'D:\tmpProjects\src\CSEnumEditor\bin\Debug\CSEnums.dll' is denied. ЗЗЫ: код может оказаться с опечатками,т.к. восстанавливался в браузере.... -------------------- "То,что вы понимаете - это все,что вы понимаете." Брайн Керниган |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |