CUIX и NET-сборка с одинаковым именем
Сегодня столкнулся с интересной ситуацией, когда файл меню ACAD'a и NET-сборка лежат рядом и имеют одно и то же имя. Возможно, это очевидные моменты, но не для меня
Итак, у нас есть сборка с именем, например, MyCoolApp.dll. Она развивается, как-то обновляется (будем считать, практически вручную) - не суть. В какой-то момент рядом кладется файл MyCoolApp.cuix.
И ситуация так сложилась, что про ресурсные dll как-то и не вспомнили (ну или не стали собирать).
И вот теперь - voilà! - загружаем меню. Отлично, потом грузим dll, пока ничего необычного. dll заблокирована, ее нельзя переместить, удалить, переименовать...
Но что будет, если меню загружено, а dll еще нет? Ну не было еще команды _.netload? Ведь вроде бы можно взять и удалить / переименовать / переместить dll. Ага, щщас! Переименовать-то еще и можно, а вот удалить - фигушки. ProcessExplorer четко и внятно показывает, что mycoolapp.dll заблокирована процессом acad.exe
При этом если выгрузить cuix, то dll моментально освобождается!
Как вывод - не стоит делать свои сборки одноименными с файлами меню. Даже если очень хочется