Создание установщика приложения Mac OS из проекта.Net Core
Я совершенно новичок в Mac OS, и у меня есть приложение, написанное на базе кода.Net Core. Теперь все, что я хочу, это установить его на компьютерах Mac OS. У меня вопрос, как я могу создать файл установщика (.DMG)? На данный момент My Visual Studio для Windows создал файл.dll со всеми другими зависимостями в папке. Также на данный момент большинство значений конфигурации я жестко запрограммировал, но в сборке релиза его должен выбрать конечный пользователь. Так как я могу запросить у них необходимые каталоги? Если вы можете предоставить мне ссылку на документацию инструмента или любого рода предложения будет принята с благодарностью. В настоящий момент, если я хочу запустить свое приложение на Mac, я должен использовать Terminal, а затем dotnet myApplication.dll для запуска приложения. Моей конечной целью было бы попросить пользователя указать все необходимые пути к файлам и в конце создать демон уровня системы (аналог службы Windows), чтобы он всегда оставался активным. Поможет ли Xcode в этой ситуации? Я уже пытался открыть свой основной проект.Net с помощью xcode, но он не смог загрузить, говоря о неподдерживаемом типе проекта.
Заранее благодарю за помощь!
1 ответ
Если вы хотите использовать стандартный установщик macOS для распространения приложения.net Core, вам нужно создать файл.pkg. Кажется, есть способы сделать это на консоли или с помощью сторонних инструментов
sudo pkgbuild -install-location / Applications -component / path / to / your / application./Desktop/YourPackage.pkg
Существует более старая man-страница для pkgbuild, или вы можете попробовать запустить man pkgbuild
на вашем Mac.
Я не пробовал этого, но создание.pkg - это нормальный способ установки чего-либо на Mac для приложений, в которых нельзя просто перетащить.app в папку "Приложение". (приложения macOS на самом деле являются каталогами со специальной структурой)
.DMG - это просто образ диска - он ничего не "делает", это просто контейнер для файлов. Вы можете создать его с помощью Дисковой утилиты.