Здравствуйте!
Снова столкнулся с проблемой в AutoCAD. У меня есть библиотечная сборка, которая содержит несколько часто используемых WPF контролов. При необходимости я ее подключаю как ссылку и использую эти контролы в диалоговых окнах в приложениях под AutoCAD/Civil 3D.
Порядок подключения прост:
1. Добавляю DLL как ссылочную
2. В XAML коде диалога добавляю пространство имен моей библиотечной сборки
3. Добавляю библиотечные контролы в нужное место.
Все это хорошо работало, пока мне не понадобилось подкорректировать библиотечную сборку. После изменения, я задал ей новый номер версии. Полученную DLL я просто добавил в инсталлятор, без перекомпиляции тех приложений, которые на нее ссылаются. И оказалось, что AutoCAD перестал их воспринимать! Выдает исключение загрузки сборки. При этом, если вне AutoCAD сделать то же самое - проблем никаких нет. К примеру, WPF приложение спокойно воспринимает библиотечную DLL, не смотря на изменение ее версии.
Еще одна особенность. Даже если версия не изменялась, библиотечную DLL надо явно подгрузить в AutoCAD с помощью NETLOAD. Сам он не в состоянии найти ссылочную DLL рядом с DLL приложения! Но это не критично, я и так их загружаю принудительно. А вот то, что при каждом изменении версии библиотечной DLL нужно пересобирать все другие DLL, просто убивает всю идею использования библиотеки!
Для пояснения ситуации, я сделал тестовый проект и записал видео. Буду признателен за идеи, как с этим бороться.