1) Потребуется как минимум несколько сборок для поддержки различных версий AutoCAD, которые должны быть зарегистрированы в системе для автоматической загрузки в AutoCAD.
Обычно я автоматически компилирую три сборки: под 2009, 2013 и 2015. Диапазон их применения: AutoCAD 2009-2016. Кроме того, создаю
единую точку входа, которую и регистрирую в автозагрузку для каждой интересной мне версии AutoCAD.
В зависимости от версии потребуются различные методы загрузки.
О каких "различных методах загрузки" речь и какое отношение это имеет к коду? Регистрация в реестре работает во всех версиях AutoCAD. Использовать не доведённый до ума механизм Bundle пакетов вместо регистрации в реестре можно по своему усмотрению. Текущее его состояние я не проверял, но мне достаточно того, что отсутствие внятной и корректной его спецификации преподносится компанией автодеск как "благо" для программистов (даже комментировать это не хочу) и то, что формат конфиг-файла может автодеском произвольно меняться как перчатки (уже спотыкался об это).
Например, помнится нельзя было отключить автозагрузку Bundle пакета, т.к. соответствующая настройка в конфиг-файле пакета попросту игнорировалась данным механизмом. В качестве решения проблемы автодеск предлагала временно переименовывать каталог (вместо суффикса ".bundle" набирать абракадабру).
2) Метод Initialize() может быть вызван до того, как dwg-файл будет полностью загружен. Даже чтение информации из dwg-файла в этом методе является рискованным, а изменение её и подавно. Так что этот код следовало бы как-то модифицировать.
В моих тестах этого не происходило. Если такая опасность существует то, конечно же, её следует обойти. ПредлОжите способ получения извещения о завершении инициализации документа? Что автодеск рекомендует по данному вопросу?