1.4 KiB
Startup and loading
OrthoLoader.Ribbon.Initialize() подписывает Ribbon item event и вызывает OrthoLoader.Initialize() (OrthoLoader/Ribbon.cs:151-157). OrthoLoader.Initialize() читает Settings.xml, формирует путь относительно Assembly.GetExecutingAssembly().Location, временно меняет CMDECHO/FILEDIA и выполняет ._netload для каждой перечисленной DLL (OrthoLoader/Loader.cs:24-29, 48-100). Это plugin DLL + loader DLL, не standalone EXE и не .bundle.
Settings.xml является deployment contract. Список assemblies загружается по XML LoadAssembly/@assemblyname (OrthoLoader/Loader.cs:105-118). При ошибке показывается MessageBox; rollback системных переменных выполняется в finally, но lifecycle всех загруженных DLL централизованно не управляется.
Риски: порядок загрузки, поиск соседних DLL, ручная публикация FilesRelease, вызов командной строки из API и зависимость от локального deployment path. _archive и FilesRelease не являются доказательством отдельной загрузочной цепочки.