Как потребовать / добавить зависимость к Mono с PackageMaker или MonoMac?

Я создаю приложение, которое состоит из четырех пакетов.app: средство запуска, клиент, менеджер сервера и среда выполнения.

.App модуля запуска распространяется в файл.pkg, сгенерированный опцией упаковки MonoMac. Другие файлы.app загружаются / автоматически обновляются в виде ZIP программой запуска.

Объединение копии Mono в каждый из этих файлов.app будет пустой тратой пропускной способности / дискового пространства, но даже более того, у меня есть файл.exe Mono server, который является кросс-платформенным и поэтому не входит Пакет.app также не должен упаковывать какие-либо специфичные для платформы DLL. Так что комплектация частной копии Mono не вариант.

Есть ли способ для меня, чтобы создать файл.pkg, который имеет зависимость / требование на глобально установленном Mono?

Я вижу, что PackageMaker имеет панель требований, которая может запускать сценарии, но я не знаю, как правильно проверить, установлен ли Mono, не полагаясь на некоторые жестко заданные пути и тому подобное.

Я бы хотел, чтобы установщик проверил, установлен ли Mono, а если нет, установите его (или, в случае сбоя, отобразите сообщение со ссылкой, например, на веб-сайт Mono).

1 ответ

Решение

Я закончил тем, что переключился на Пакеты, которые являются довольно аккуратным инструментом.

Я добавил предустановочное требование типа "Shell script возвращает true". Мой сценарий оболочки просто проверяет наличие исполняемого файла "mono" с помощью команды which:

#!/bin/bash
which mono
$(exit $?)

Когда скрипт возвращает false, я настроил Packages на вывод информативного сообщения об ошибке со ссылкой для загрузки Mono (из-за отсутствия способа запуска загрузки / установки Mono).

Другие вопросы по тегам