0

ランチャー、クライアント、サーバーマネージャー、ランタイムの4つの.appパッケージで構成されるアプリケーションを構築しています。

ランチャーの.appは、MonoMacのパッケージオプションによって生成された.pkgファイルで配布されます。他の.appファイルは、ランチャーによってZIPとしてダウンロード/自動更新されます。

これらの.appファイルのすべてにMonoのコピーをバンドルすると、帯域幅/ディスクスペースが無駄になりますが、それ以上に、クロスプラットフォームのMonoサーバーの.exeファイルがあります。 .appバンドルも、プラットフォーム固有のDLLをパックする必要もありません。したがって、Monoのプライベートコピーをバンドルすることはできません。

グローバルにインストールされたMonoに依存/要件を持つ.pkgファイルを作成する方法はありますか?

PackageMakerにはスクリプトを実行できる要件ペインがありますが、ハードコードされたパスなどに依存せずに、Monoがインストールされているかどうかを適切に確認する方法がわかりません。

インストーラーにMonoがインストールされているかどうかを確認してもらいたいのですが、インストールされていない場合はインストールします(または、インストールされていない場合は、Mono Webサイトへのリンクを含むメッセージを表示します)。

4

1 に答える 1

0

かなりきちんとしたツールであるPackagesに切り替えることになりました。

「シェルスクリプトがtrueを返す」タイプのプレインストール要件を追加しました。私のシェルスクリプトは、「which」コマンドを使用して「mono」実行可能ファイルをチェックするだけです。

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

スクリプトがfalseを返す場合、Monoをダウンロードするためのリンクを含む有益なエラーメッセージを出力するようにPackagesを構成しました(Monoのダウンロード/インストールをトリガーする方法がないため)。

于 2012-11-14T03:32:57.240 に答える