0

我正在构建一个由四个 .app 包组成的应用程序:一个启动器、一个客户端、一个服务器管理器和一个运行时。

启动器的 .app 分布在 MonoMac 打包选项生成的 .pkg 文件中。其他 .app 文件由启动器下载/自动更新为 ZIP。

在每个 .app 文件中捆绑 Mono 的副本会浪费带宽/磁盘空间,但更重要的是,我有一个 Mono 服务器 .exe 文件,它是跨平台的,因此不会进来.app 包也不应该打包任何特定于平台的 DLL。因此,捆绑 Mono 的私有副本不是一种选择。

有没有办法让我创建一个对全局安装的 Mono 有依赖/要求的 .pkg 文件?

我看到 PackageMaker 有一个可以运行脚本的需求窗格,但我不知道如何正确检查 Mono 是否已安装,而不依赖于一些硬编码路径和类似的东西。

我想让安装程序检查是否安装了 Mono,如果没有安装,请安装它(或者,如果失败,则显示一条消息,其中包含指向 Mono 网站的链接)。

4

1 回答 1

0

我最终切换到Packages,这是一个非常简洁的工具。

我添加了“Shell 脚本返回 true”类型的预安装要求。我的 shell 脚本只是使用“which”命令检查“mono”可执行文件:

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

当脚本返回 false 时,我将 Packages 配置为输出一条信息性错误消息,其中包含下载 Mono 的链接(因为缺少触发下载/安装 Mono 的方法)。

于 2012-11-14T03:32:57.240 回答