回答:
このリンクは役に立ちますか?ランニングモノ
binfmtの使用に関するMonoプロジェクトから:
.exeを非ネイティブバイナリとして登録する(Linuxのみ)
これはLinux固有の機能であるため、スクリプトの移植性を制限するため、開発者がこのソリューションを展開することはお勧めしません。
また、このメカニズムは、アプリケーション展開ガイドラインで意図されたとおりに機能しません。
システム全体に変更を加えて、binfmtを使用して、exeファイルを非ネイティブバイナリとして登録することもできます。次に、exeファイルを起動しようとすると、カーネルはモノインタープリターを実行してコマンドを処理します。Binfmtは、WINEを使用したWindows実行可能ファイル、またはJVMを使用したJava .classファイルの起動にも使用できます。exeをカーネルに登録するには:
次のコマンドを使用して、rootになり、カーネルのbinfmtモジュールをオンにします。
sudo apt-get install binfmt-support
modprobe binfmt_misc
また、modprobe
コマンドを/etc/rc.local
ブートスクリプトに追加して、ブート時に実行されるようにすることもできます。
以下の行を/etc/fstab
ファイルに追加します。
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none
次に、システムでブート時に次のコマンドを実行します。
echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
.exeファイルもファイルシステムで実行可能としてマークしてください。
chmod +x myprogram.exe
これはカーネルを変更するものではなく、システムの起動時にロードされるモジュールのみを変更することに注意してください。つまり、これらの変更を失うことを心配せずにカーネルをアップグレードできます。同様に、このセクションにリストされている呼び出し方法に影響を与えることなく、Monoランタイムをアップグレードできます。
FATAL: Module binfmt not found
12.04で
起動スクリプトを作成します。
プレーンテキストエディターを開き、これを追加します。
#!/bin/bash
mono foo.exe &
設定によっては、foo.exeのフルパスを使用する必要がある場合があります。
たとえば、ファイルをとして保存しますfoo.sh
。
実行可能にする:
sudo chmod a+x foo.sh
これで、をダブルクリックしてfoo.exeを起動できるはずfoo.sh
です。
実行するNautilus上のファイル拡張子「.exe」を関連付けることができます /usr/bin/mono
これは古い質問ですが、グーグルで見つけたので、考えさせられました。これは大きなハックですが、ダウンロードできます
https://raw.githubusercontent.com/rcaloras/bash-preexec/master/bash-preexec.sh
あなたの家に以下を.bashrcに追加します
source ~/.bash-preexec.sh
preexec() {
if [[ $1 =~ [^\s]+\.exe$ ]]; then
eval "$1() { return 1; }"
export -f $1
/usr/bin/mono $1
fi
}
precmd() { [[ $1 =~ [^\s]+\.exe$ ]]; unset -f $1; }