Saat menjalankan program .net di Ubuntu saya harus mengetikkan "mono foo.exe", bukan hanya foo.exe atau mengklik dua kali ikonnya. Apakah ada cara untuk menjalankan foo.exe?
Saat menjalankan program .net di Ubuntu saya harus mengetikkan "mono foo.exe", bukan hanya foo.exe atau mengklik dua kali ikonnya. Apakah ada cara untuk menjalankan foo.exe?
Jawaban:
Apakah tautan ini membantu? Running Mono
Dari Proyek Mono tentang penggunaan binfmt:
Mendaftarkan .exe sebagai binari non-asli (hanya Linux)
Karena ini adalah fitur khusus Linux, kami tidak menyarankan pengembang untuk menggunakan solusi ini, karena akan membatasi portabilitas skrip mereka.
Selain itu, mekanisme ini tidak berfungsi sebagaimana dimaksud oleh Pedoman Penerapan Aplikasi .
Anda juga dapat membuat perubahan di seluruh sistem, dan menggunakan binfmt untuk mendaftarkan file exe sebagai biner non-asli. Kemudian, ketika mencoba meluncurkan file exe, kernel akan menjalankan penerjemah tunggal untuk menangani perintah. Binfmt juga dapat digunakan untuk meluncurkan file executable Windows menggunakan WINE, atau file Java .class menggunakan JVM. Untuk mendaftarkan exe dengan kernel:
Menjadi root dan nyalakan modul binfmt di kernel Anda dengan perintah ini:
sudo apt-get install binfmt-support
modprobe binfmt_misc
Selain itu, Anda mungkin ingin menambahkan modprobe
perintah ke /etc/rc.local
skrip boot Anda , sehingga akan dieksekusi saat boot.
Tambahkan baris di bawah ini ke /etc/fstab
file Anda :
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none
Kemudian, minta sistem Anda menjalankan perintah berikut saat boot:
echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
Pastikan untuk menandai file .exe Anda sebagai executable dalam sistem file juga:
chmod +x myprogram.exe
Perhatikan bahwa ini tidak mengubah kernel Anda, hanya modul-modul yang dimuat ketika Anda mem-boot sistem Anda. Dengan kata lain, Anda masih dapat memutakhirkan kernel Anda tanpa khawatir kehilangan perubahan ini. Demikian pula, Anda dapat memutakhirkan runtime Mono Anda tanpa memengaruhi metode doa apa pun yang tercantum di bagian ini.
FATAL: Module binfmt not found
12,04
Buat skrip startup.
Buka editor teks biasa, tambahkan ini:
#!/bin/bash
mono foo.exe &
Bergantung pada pengaturan Anda, Anda mungkin perlu menggunakan path lengkap untuk foo.exe.
Simpan file misalnya sebagai foo.sh
.
Jadikan itu dapat dieksekusi:
sudo chmod a+x foo.sh
Anda sekarang dapat memulai foo.exe dengan mengklik dua kali foo.sh
.
Anda dapat mengaitkan ekstensi file '.exe' di Nautilus untuk dieksekusi /usr/bin/mono
Saya tahu ini adalah pertanyaan lama tetapi saya menemukannya melalui google dan itu membuat saya berpikir. Ini adalah retasan besar tetapi Anda dapat mengunduh
https://raw.githubusercontent.com/rcaloras/bash-preexec/master/bash-preexec.sh
ke rumah Anda dan tambahkan yang berikut ini ke .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; }