При переходе с Windows на Linux-платформу API nanoCAD остается неизменным, сборку приложений нужно по-прежнему выполнять на Windows, а на Linux вместо инсталлятора .msi следует создать .deb- или .rpm-пакет.
Адаптация приложения
В качестве примера выполним адаптацию приложения "Примеры SDK для nanoCAD 23.1" для работы на Linux. Сборку приложения начнем на Windows, для чего разместим nanoCAD SDK по адресу C:\SDK. Для сборки примеров достаточно выполнить файл \SDK\samples\BuildAllSamples.bat. Одним из результатов сборки является MSI-инсталлятор C:\SDK\samples\bin-x64\Installer\Release\ru-RU\SamplesAppSimple.msi.
Файл SamplesAppSimple.msi является примером дистрибутива для распространения по рабочим местам приложений под nanoCAD. В режиме «Приложение» установщик выполняет следующие действия:
◼️ записывает на компьютер файлы приложений в C:\Program Files\Nanosoft\Примеры SDK для nanoCAD 23.1\;
◼️ добавляет ярлык на рабочий стол. Путь, указанный в ярлыке: C:\Program Files\Nanosoft\nanoCAD x64 23.1\nCad.exe" -r SamplesApp -g "C:\Program Files\Nanosoft\Примеры SDK для nanoCAD 23.1\NCADx64.package.
При запуске ярлыка выполняется стартовая конфигурация, которая добавляет в Платформу nanoCAD новые пункты меню (рис. 1).
Шаг 1. Ручной перенос приложения и его загрузка в Linux nanoCAD (только в режиме приложения, ярлык).
Приведенный ниже пример описывает портирование Windows-приложений в среду Astra Linux 1.7 с установленной Платформой nanoCAD 23.1; перенос приложений, входящих в MSI-установщик, и создание ярлыка для запуска.
1️⃣ Подготовить в среде Linux место для хранения файлов. Например:
$ sudo mkdir /opt/nanosoft/ncad23-sdk-samples/
2️⃣ Любым доступным способом (flash-накопитель, сетевая папка, облако, shared-папка) скопировать все файлы приложения с Windows-платформы на Linux в созданную на предыдущем шаге папку.
Откуда:
C:\Program Files\Nanosoft\Примеры SDK для nanoCAD 23.1\
Куда:
/opt/nanosoft/ncad23-sdk-samples/
Результат должен выглядеть так:
/opt/nanosoft/ncad23-sdk-samples/HelloHost.dll
/opt/nanosoft/ncad23-sdk-samples/HelloNRX.nrx
/opt/nanosoft/ncad23-sdk-samples/NCADSDK.cfg
/opt/nanosoft/ncad23-sdk-samples/NCADx64.package
и другие файлы.
3️⃣ Скопировать файл-ярлык C:\SDK\samples\Installer\Linux\SamplesApp.desktop в /opt/nanosoft/ncad23-sdk-samples/.
Далее все операции выполняются на Linux-платформе.
4️⃣ Подготовить универсальный файл-ярлык. Ярлык для Linux расположен в C:\SDK\samples\Installer\Linux\SamplesApp.desktop. Он содержит следующую строку запуска:
Exec=/usr/bin/ncad -r SamplesApp -g "/opt/nanosoft/ncad23-sdk-samples/NCADx64.package" %F
Аналогичный Windows-ярлык содержит следующую строку запуска:
"C:\Program Files\Nanosoft\nanoCAD x64 23.1\nCad.exe" -r SamplesApp -g "C:\Program Files\Nanosoft\Примеры SDK для nanoCAD 23.1\NCADx64.package"
В общем случае нужно указать портируемое приложение вместо пакетного файла NCADx64.package. Могут использоваться .package, .dll, .nrx и другие виды приложений.
5️⃣ Чтобы добавить ярлык на рабочий стол, нужно файл SamplesApp.desktop разместить в /usr/share/applications/flydesktop.
6️⃣ Чтобы добавить ярлык в меню Пуск, нужно файл SamplesApp.desktop разместить по пути /usr/share/applications/flystartmenu/.
В общем случае для других Linux ОС нужно разместить ярлык по пути /usr/share/applications.
7️⃣ Запустить Платформу через созданный ярлык; убедиться, что меню и команды добавились и работают.
Шаги 2 (создание deb-пакета с дистрибутивом приложения) и 3 (создание rpm-пакета с дистрибутивом приложения) описывают процесс создания дистрибутивов в виде deb- и rpm-пакетов. Они подробно представлены в документации к SDK (см. SDK\docs). Загрузить комплект SDK можно по ссылке https://developer.nanocad.ru/redmine/projects/ncadsdk/files.
Сергей Евсеев,
специалист группы поддержки API
"Нанософт"
Комментарии (3)
red_cell
05.05.2024 07:11+1Судя по тому как подается информация, выпускать нативный Nanocad в планах нет.
aax
05.05.2024 07:11Судя по такому подходу Nanocad врядли завоюет популярность под Linux, куда проще и рациональнее применять ЕСКД-шаблоны во FreeCAD.
"Эффективные манагеры" изначально "оптимизировали на авось" кросс-платформенность, а теперь предлагают жуткие кривые костыли.
Качели "глобализация/деглобализация", присущи мировой экономике достаточно давно, как и всевозможные торговые войны.
CrookedArms
А если не дистрибутив, а просто dll. Appload сработает? Windows forms будет работать? Wpf?