Как обновить dll/ плагин без перезапуска AutoCAD?

У меня есть библиотека классов DLL, которая загружает сценарии AutoCAD из сетевой папки. Однако мне нужен способ обеспечить автоматическое обновление библиотеки классов. С приложениями Windows Form я бы просто использовал развертывание ClickOnce, а затем использовал Application.Restart, однако, поскольку это должна быть библиотека классов (так как это дополнение для AutoCAD), это кажется невозможным.

Какой лучший способ справиться с этим?

3 ответа

Некоторые разработчики имеют 2 (или более) DLL-библиотеки с кодом AutoCAD: 1-я основная DLL загружается при запуске AutoCAD, проверяет наличие обновлений, загружает и устанавливает. Вторая DLL фактически содержит команды, которые будут загружаться по требованию, когда пользователь запускает команду.

Это невозможно с плагинами AutoCAD, потому что DLL загружена в AppDomain. Это "тихое" обновление возможно только с C++.

Вы можете пойти по пути TDD, что является хорошей практикой. Вот раздаточный материал по этой теме, потому что TDD в AutoCAD не так прост из-за вышеупомянутой проблемы.

Вы можете попытаться разработать свой алгоритм в своих собственных классах, чтобы получить лучший опыт работы с TDD. Затем перенесите его с DTO в транзакцию AutoCAD.

Недавно я создал решение, позволяющее перезагружать ту же копию .dll в AutoCAD.

Проверьте мой блог с полным решением:

http://www.cadwiki.net/blogpost/How-to-reload-a-.dll-into-AutoCAD

Другие вопросы по тегам