Я использую CodeDOM для динамического создания классов. Я указываю выходную сборку, так что .dll создается с именем класса. Однако эти классы необходимо будет обновить с тем же именем класса, поэтому класс будет обновлен, а .dll не будет обновлен (поскольку он не может перезаписать предыдущую .dll). Мне интересно, есть ли способ вызвать метод, который удалит эту .dll, а затем, когда я сгенерирую новый класс, там появится новая .dll. Я знаю, что могу использовать домены приложений, но проблема в том, что мне нужно часто обновлять классы, и я думаю, что производительность сильно пострадает.Есть ли способ удалить DLL-файл без использования отдельных доменов приложений?
0
A
ответ
2
Вы можете удалить/воссоздать DLL тогда и только тогда, когда этот DLL-файл в настоящее время не открыт. Он открыт, если один или несколько доменов приложений имеют DLL-код, загруженный в домен.
Невозможно выгрузить DLL из домена приложения. Вы должны выгрузить домен приложения, чтобы выгрузить все DLL-файлы, на которые он ссылается.
UPDATE
Я не знал о способности Рослин, чтобы компилировать в памяти на @SLaks предложение. Если вы не привязаны к физической DLL, посмотрите на this article.
Смежные вопросы
- 1. Есть ли способ удалить элемент формы без использования jQuery .remove()?
- 2. Изучение JavaScript: есть ли способ изменить файл изображения группы изображений без использования отдельных идентификаторов?
- 3. Есть ли способ удалить заголовок для приложений Silverlight вне браузера
- 4. Есть ли способ выбора отдельных ячеек?
- 5. Есть ли способ адресовать несколько приложений на nginx без DNS?
- 6. Есть ли способ удалить FILE_FLAG_DELETE_ON_CLOSE?
- 7. Есть ли способ удалить крипы?
- 8. Есть ли способ удалить заголовки из org.apache.felix.framework.BundleImpl?
- 9. Есть ли способ УДАЛИТЬ примечания PHP без присвоения им идентификатора?
- 10. Есть ли способ сделать звонок на iphone без использования встроенного набора приложений?
- 11. Есть ли способ распространять Windows 7 приложений без использования Windows Phone 7 Marketplace?
- 12. Есть ли способ напечатать массив строк без использования цикла?
- 13. Есть ли способ определить диапазон значений без использования триггера?
- 14. Есть ли способ реализовать кнопку DataGridView SaveItem без использования TableAdapters?
- 15. Есть ли способ импортировать данные в neo4j без использования csv?
- 16. Есть ли другой способ сделать Hotswap без использования Java IDE?
- 17. Есть ли способ вызова функционального «Invoke» без использования Reflection?
- 18. есть ли способ создать точку сохранения без использования транзакции?
- 19. Есть ли способ использования констант без разрешения области?
- 20. Есть ли способ получить свойства для принтера без использования wmi?
- 21. Есть ли способ отслеживать задержку транзакционной репликации без использования токенов?
- 22. vim: есть ли способ заменить абзац без использования визуального режима?
- 23. Есть ли способ создать портативный RIA без использования LiveCycle?
- 24. Android: есть ли способ изменить изображение без использования пользовательского адаптера?
- 25. Есть ли способ использовать hashmap без использования ключевого слова Synchronized
- 26. Есть ли способ имитировать raspbian без использования qemu?
- 27. Есть ли способ конвертировать FileInputStream в объект без использования ObjectInputStream?
- 28. Есть ли способ сериализации класса C++ без использования библиотеки?
- 29. Есть ли способ отображения UIBarButtonItem без использования UIToolBar ... или даже
- 30. Есть ли другой способ сделать этот случай без использования -MAXINT?
Вместо этого используйте Roslyn, чтобы вы могли скомпилировать память. – SLaks
Если вам нужно делать частые обновления, почему вы сохраняете DLL на диск в первую очередь? .NET рад иметь сборку только для памяти для случаев, подобных этому. –
Стоимость appdomain должна быть незначительной по сравнению с затратами на создание кода, его компиляцию и запись DLL на диск. –