Lors de l'exécution d'un programme .net sur Ubuntu, je dois taper "mono foo.exe" au lieu de simplement foo.exe ou double-cliquer sur l'icône. Existe-t-il un moyen d'exécuter simplement foo.exe?
Ce lien est-il utile? Running Mono
Du projet Mono sur l'utilisation de binfmt:
Enregistrement de .exe en tant que fichiers binaires non natifs (Linux uniquement)
Comme il s'agit d'une fonctionnalité spécifique à Linux, nous déconseillons aux développeurs de déployer cette solution, car cela limiterait la portabilité de leurs scripts.
En outre, ce mécanisme ne fonctionne pas comme prévu par les directives de déploiement d'applications .
Vous pouvez également effectuer une modification à l'échelle du système et utiliser binfmt pour enregistrer les fichiers exe en tant que fichiers binaires non natifs. Ensuite, lors de la tentative de lancement d'un fichier exe, le noyau exécutera l'interpréteur mono pour gérer la commande. Binfmt peut également être utilisé pour lancer des exécutables Windows à l'aide de WINE ou des fichiers Java .class à l'aide d'une JVM. Pour enregistrer exe avec le noyau:
Devenez root et activez le module binfmt dans votre noyau avec cette commande:
sudo apt-get install binfmt-support
modprobe binfmt_misc
En outre, vous souhaiterez peut-être ajouter la modprobe
commande à votre /etc/rc.local
script de démarrage, afin qu'elle soit exécutée au démarrage.
Ajoutez la ligne ci-dessous à votre /etc/fstab
fichier:
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none
Ensuite, demandez à votre système d'exécuter la commande suivante au démarrage:
echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
Assurez-vous également de marquer vos fichiers .exe comme exécutables dans le système de fichiers:
chmod +x myprogram.exe
Notez que cela ne change pas votre noyau, juste les modules qu'il charge lorsque vous démarrez votre système. En d'autres termes, vous pouvez toujours mettre à jour votre noyau sans vous soucier de perdre ces modifications. De même, vous pouvez mettre à niveau votre runtime Mono sans affecter aucune des méthodes d'appel répertoriées dans cette section.
FATAL: Module binfmt not found
12.04Créez un script de démarrage.
Ouvrez un éditeur de texte brut, ajoutez ceci:
Selon votre configuration, vous devrez peut-être utiliser le chemin d'accès complet pour foo.exe.
Enregistrez le fichier par exemple sous
foo.sh
.Rendez-le exécutable:
Vous devriez maintenant pouvoir démarrer foo.exe en double-cliquant
foo.sh
.la source
Vous pouvez associer l'extension de fichier «.exe» sur Nautilus pour être exécuté avec
/usr/bin/mono
la source
Je sais que c'est une vieille question mais je l'ai trouvée sur google et ça m'a fait réfléchir. Ceci est un hack majeur mais vous pouvez télécharger
https://raw.githubusercontent.com/rcaloras/bash-preexec/master/bash-preexec.sh
à votre domicile et ajoutez ce qui suit à .bashrc
la source