У меня есть приложение, использующее .NET Framework 4.6.2.
Это служебное приложение, которое используется для обновления другого программного обеспечения, расположенного в той же папке. Для этого он загружает zip-архив через вызов API, а затем распаковывает его в папку сразу после удаления всего существующего содержимого.
В рамках этого приложения ему необходимо прочитать некоторые файлы JSON перед процессом извлечения (поскольку он также распаковывает некоторое программное обеспечение в другие каталоги, указанные внутри json), для чего я использую Newtonsoft.JSON. Проблема в том, что Newtonsoft.Json.dll — это один из файлов в архиве. Потенциально его необходимо обновить, если мы начнем использовать более новую версию библиотеки (она используется как приложением обновления, так и другими исполняемыми файлами, которые находятся в этой папке).
После создания несколько вызовов с помощью Newtonsoft.Json в приложении обновления, я знаю, что больше не буду его использовать, поэтому надеялся удалить его и распаковать из .zip. Однако файл заблокирован приложением, поэтому я не могу удалить его с помощью простого метода FileInfo.delete(). В ошибке говорится, что «Доступ к пути Newtonsoft.Json.dll запрещен» (по понятным причинам)
Могу ли я каким-либо образом принудительно удалить его? Повторю и подчеркну: к тому моменту, когда я хочу удалить .dll, я уверен, что не буду использовать какие-либо его функции до следующего запуска.
Или, альтернативно, есть ли какой лучший обходной путь для этого сценария вы бы порекомендовали?
UPD: Сейчас я рассматриваю два альтернативных варианта:
1) Использование Costura. Фоди, чтобы встроить dll в приложение и сделать ее независимой от .dll в папке
2) Переименование неудачно извлеченных файлов в filename.dll.new и запуск пакетного сценария, который найдет их все и заменит (запускается (отсоединяется) приложением перед выходом)
Подробнее здесь: https://stackoverflow.com/questions/788 ... mework-app
Удалите DLL-файл, загруженный приложением .NET Framework. ⇐ C#
Место общения программистов C#
-
Anonymous
1722459208
Anonymous
У меня есть приложение, использующее .NET Framework 4.6.2.
Это служебное приложение, которое используется для обновления другого программного обеспечения, расположенного в той же папке. Для этого он загружает zip-архив через вызов API, а затем распаковывает его в папку сразу после удаления всего существующего содержимого.
В рамках этого приложения ему необходимо прочитать некоторые файлы JSON перед процессом извлечения (поскольку он также распаковывает некоторое программное обеспечение в другие каталоги, указанные внутри json), для чего я использую Newtonsoft.JSON. Проблема в том, что Newtonsoft.Json.dll — это один из файлов в архиве. Потенциально его необходимо обновить, если мы начнем использовать более новую версию библиотеки (она используется как приложением обновления, так и другими исполняемыми файлами, которые находятся в этой папке).
После создания несколько вызовов с помощью Newtonsoft.Json в приложении обновления, я знаю, что больше не буду его использовать, поэтому надеялся удалить его и распаковать из .zip. Однако файл заблокирован приложением, поэтому я не могу удалить его с помощью простого метода FileInfo.delete(). В ошибке говорится, что «Доступ к пути Newtonsoft.Json.dll запрещен» (по понятным причинам)
Могу ли я каким-либо образом принудительно удалить его? Повторю и подчеркну: к тому моменту, когда я хочу удалить .dll, я [b]уверен[/b], что не буду использовать какие-либо его функции до следующего запуска.
Или, альтернативно, есть ли какой лучший обходной путь для этого сценария вы бы порекомендовали?
UPD: Сейчас я рассматриваю два альтернативных варианта:
1) Использование Costura. Фоди, чтобы встроить dll в приложение и сделать ее независимой от .dll в папке
2) Переименование неудачно извлеченных файлов в filename.dll.new и запуск пакетного сценария, который найдет их все и заменит (запускается (отсоединяется) приложением перед выходом)
Подробнее здесь: [url]https://stackoverflow.com/questions/78818231/delete-a-dll-that-was-loaded-by-a-net-framework-app[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия