2009-04-15 14 views
13

私は、WindowsとOSXの両方で動作する必要のあるアプリケーションで作業することを検討しています。私はすでにC#/ .NETに精通しているので、Monoの使い方を見ていきたいと思っていました。しかし、インストールが非常に簡単で、ユーザーがMonoパッケージを個別にインストールする必要がないようにしたいと考えています。単にすべてを含むOS Xの.appバンドルを作成することは可能ですか?つまり、私のアプリ、リソース、完全なMonoランタイムですか?OSXの.appバンドルにMonoランタイムを含めることは可能ですか?

答えて

11

はい、これを行うことができます。アプリ、すべてのアプリ、および[パッケージの内容を表示]を選択します。少し調べてみると、内部にContents/MacOSディレクトリがあることがわかります。これには、実行ビットが設定されたファイルが含まれます。これは、機械コードまたは古いスクリプトで、先頭に#!行を付けることができます。スケルトンアプリケーションでディレクトリ構造を複製し、MonoランタイムをどこかのResourcesディレクトリに移動し、すべてを初期化するbashスクリプトを作成するだけです。これをどこかで浮動させる自動化されたユーティリティがあるかもしれませんが、これを手動で行うのはかなり簡単です。

お気に入りのビルドツールを使用してこのプロセスを自動化することをおすすめします。

+0

素晴らしい答えに#monoチャネルです。私はそれが推奨されていないと確信しています... –

+0

ありがとう。いずれにせよ、それは本当にあなたが「推奨しない」という意味に依存します。あなたが手動で100%それをした場合、ええ、絶対に、それは悪い考えです。そこに深刻な展開の問題がありますか?しかし、何かを自動化するための第一歩は、手動で行う方法を知っていることです。明確にするために、Monoランタイムにこれを行うための事前構築されたパッケージングツールがない場合は、これを自動化するためのクイックスクリプトを作成し、それをビルドプロセスに挿入します。 –

+0

「すべてを初期化する」とはどういう意味ですか? "mono hello.exe"のようなコマンドライン機能を呼び出すことを意味しますか?私たちにリンクを教えてもらえますか?ありがとう。 –

2

Mac OSプラットフォームを静的にターゲットとした.NETアプリケーションをコンパイルするには、かなりのハッキングやツールチェインの楽しみがあり、モノラルを展開する必要はありません。 MonoがいくつかのiPhoneアプリで静的に使用されている方法についてこのWebサイトをチェックしてください。

http://arstechnica.com/open-source/news/2009/01/open-source-mono-framework-brings-c-to-iphone-and-wii.ars

もう一つの大きなリソースがirc.gnome.orgまたはirc.gimp.net(http://mono-project.com/IRC

+0

これは本当にmac上では必要ありません。 IOSは厳格な静的リンクのみのポリシーのためにこれを行う必要があります。 Macにはそのような制約はありません。 – Shayne

関連する問題