ここで簡単なハウツーを見つけましたが、自分でテストしていないため、結果を保証することはできません. いつものYMMV。
元の記事からの引用 (元の記事のスレッドも参照してください):
Mkbundle: Mono をアプリケーションにバンドル
プログラムを実行するために、なぜ .NET Framework や Mono をインストールする必要があるのか疑問に思ったことはありませんか? クライアントに追加のフレームワークをインストールするようにせがむことなくアプリケーションを配布できれば、はるかに便利ですよね? ここにいます。.NET ベースのアプリケーションを Mono にバンドルできるので、実行するために Mono や .NET をインストールする必要はありません。
環境を準備する
まず、最新の Mono と Cygwin をインストールする必要があります。Mono のインストールは非常に簡単なので、失敗することはありません。Cygwin のインストールを開始したら、フル ビューに進み、4 つの追加パッケージを含めてください。これらは、gcc、mingw、mingw-zlib、および zlib です。
次に、コマンド プロンプトが必要です。Mono と Cygwin はどちらもデスクトップにコマンド プロンプトのショートカットを作成しますが、それらを 1 つにまとめる必要があります。ここに私のためにそれを行うバッチがあります。たとえば、他の Mono バージョンがある場合は、変更する必要があるかもしれません。
コード:
echo Mono version 2.4 Build 6
echo Prepending 'C:\PROGRA~1\Mono-2.4\bin' to PATH
PATH=C:\PROGRA~1\Mono-2.4\bin;%PATH%
chdir C:\cygwin\bin
bash --login -i
アプリケーションを Mono にバンドルする
これで、コマンド プロンプトが表示され、この Cygwin モードが実行されます。これはもはや DOS プロンプトではなく、"dir" はもはや機能しないことに注意してください。ファイルを一覧表示するには、Linux コマンド「ls」を使用します。現在閲覧しているフォルダは以下のようなものです。Arek はユーザー名です。コード:
C:\cygwin\home\Arek
エクスプローラーでこのフォルダーを参照します。ここで、2 つのファイルをこのフォルダーにコピーします。1 番目はアプリケーションの exe で、2 番目は Mono フォルダーにあるファイル Mono.dll (2MB) です。コード:
C:\Program Files\Mono-2.4\bin
何らかの理由で、手順全体が長いファイル名では機能しないため、アプリケーションの名前を exe に変更してください。この古い DOS 8.3 の命名に準拠する必要があります。
コマンドプロンプトに戻りましょう。アプリケーションをバンドルするために必要なコマンドは 1 つだけです。ここにいくつかの説明があります。
mkbundle は Mono パッケージ内のプログラムです | -o Bundled1.exe は、Mono-bundled exe の命名方法を指定します。Winform1.exe は何が含まれるかを示していますが、Mono ライブラリはとにかく含まれます | --deps は必要ですが、それが何をするのかはわかりません | -z は、出力 exe を大幅に圧縮します
コード:
mkbundle -o Bundled1.exe Winform1.exe --deps -z
これで、独自のアプリと Mono 自体を含む Bundled1.exe を取得できました。実行するのに Mono も .NET も必要ありません。サイズが 4MB 以上になることに注意してください。これらのバンドルされた exe は軽量ではありません。