При переходе с 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
Рис. 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)


  1. CrookedArms
    05.05.2024 07:11

    А если не дистрибутив, а просто dll. Appload сработает? Windows forms будет работать? Wpf?


  1. red_cell
    05.05.2024 07:11
    +1

    Судя по тому как подается информация, выпускать нативный Nanocad в планах нет.


  1. aax
    05.05.2024 07:11

    Судя по такому подходу Nanocad врядли завоюет популярность под Linux, куда проще и рациональнее применять ЕСКД-шаблоны во FreeCAD.

    "Эффективные манагеры" изначально "оптимизировали на авось" кросс-платформенность, а теперь предлагают жуткие кривые костыли.

    Качели "глобализация/деглобализация", присущи мировой экономике достаточно давно, как и всевозможные торговые войны.