0

動的リンクを使用して mono ( http://www.mono-project.com/Embedding_Monoで説明) を埋め込み、スクリプトに C# を使用するサンプル C++ アプリを作成しました。mono がグローバル アセンブリ キャッシュ (GAC) にインストールされている限り、問題なく動作します。

mono を c++ 実行可能ファイルにバンドルして、c++ 実行可能ファイルと一緒にインストールできるようにする方法はありますか?

私は mkbundle を見てきましたが、C# アプリで mono をパッケージ化しているようです。

編集:以下の回答は再フォーマットされています

#include <cstdlib>
_putenv("MONO_GAC_PREFIX=C:\\cygwin\\usr\\local\\bin\\");
mono_set_dirs("C:\\cygwin\\usr\\local\\lib","C:\\cygwin\\usr\\local\\etc");

編集: 修正: 実行可能ファイルのフォルダーに mono-2.0.dll をコピーして貼り付け mono_set_dirs("C:\\cygwin\\usr\\local\\lib","C:\\cygwin\\usr\\local\\etc");、特定のフレームワークの使用を強制するために使用するだけです。

4

1 に答える 1

1

Mono は 2 つの異なる部分で構成されています。

  • OQ に記載されているように、組み込み可能な C で記述されたベース ランタイム
  • 多くのクラス ライブラリは、ほとんどが C# で記述されています。これらはランタイムと一緒に組み込まれるのではなく、GAC に存在します。

基本的に、独自の GAC を提供する必要があります。これは、それをアプリのフォルダー構造に取り込み、MONO_GAC_PREFIXインストールされている場所に環境変数を設定することで簡単に実行できます。

于 2013-05-13T23:09:56.207 に答える