Podczas uruchamiania programu .net na Ubuntu muszę wpisać „mono foo.exe” zamiast po prostu foo.exe lub dwukrotne kliknięcie ikony. Czy jest jakiś sposób na uruchomienie foo.exe?
Czy ten link pomaga? Uruchamianie Mono
Z Mono Project na temat używania binfmt:
Rejestrowanie pliku .exe jako niepatywnych plików binarnych (tylko Linux)
Ponieważ jest to funkcja specyficzna dla systemu Linux, nie zalecamy programistom wdrażania tego rozwiązania, ponieważ ograniczyłoby to przenośność ich skryptów.
Ponadto ten mechanizm nie działa zgodnie z założeniami Wytycznych dotyczących wdrażania aplikacji .
Możesz także dokonać zmiany ogólnosystemowej i użyć binfmt do zarejestrowania plików exe jako binarnych plików binarnych. Następnie, podczas próby uruchomienia pliku exe, jądro uruchomi interpreter mono do obsługi polecenia. Binfmt może być również używany do uruchamiania plików wykonywalnych systemu Windows za pomocą WINE lub plików .class Java za pomocą JVM. Aby zarejestrować plik exe w jądrze:
Zostań rootem i włącz moduł binfmt w jądrze za pomocą tego polecenia:
sudo apt-get install binfmt-support
modprobe binfmt_misc
Ponadto możesz dodać modprobe
polecenie do /etc/rc.local
skryptu rozruchowego, aby było ono wykonywane podczas rozruchu.
Dodaj poniższy wiersz do /etc/fstab
pliku:
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none
Następnie uruchom w systemie następujące polecenie podczas uruchamiania:
echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
Pamiętaj, aby oznaczyć pliki .exe również jako pliki wykonywalne w systemie plików:
chmod +x myprogram.exe
Zauważ, że to nie zmienia twojego jądra, tylko moduły ładowane podczas uruchamiania systemu. Innymi słowy, możesz nadal aktualizować jądro, nie martwiąc się o utratę tych zmian. Podobnie możesz zaktualizować środowisko wykonawcze Mono bez wpływu na którąkolwiek z metod wywoływania wymienionych w tej sekcji.
FATAL: Module binfmt not found
w 12.04Utwórz skrypt startowy.
Otwórz zwykły edytor tekstu, dodaj to:
W zależności od konfiguracji może być konieczne użycie pełnej ścieżki do pliku foo.exe.
Zapisz plik na przykład jako
foo.sh
.Spraw, by był wykonywalny:
Powinieneś być teraz w stanie uruchomić foo.exe klikając dwukrotnie
foo.sh
.źródło
Można powiązać rozszerzenie pliku „.exe” na Nautilusie, z którym ma zostać wykonane
/usr/bin/mono
źródło
Wiem, że to stare pytanie, ale znalazłem je za pośrednictwem Google i przyszło mi to do głowy. Jest to poważny hack, ale można pobrać
https://raw.githubusercontent.com/rcaloras/bash-preexec/master/bash-preexec.sh
do swojego domu i dodaj następujące .bashrc
źródło