J'essaie de lancer un fichier .NET sur une machine Ubuntu (j'ai installé le paquet mono-complete
), sans succès. L'application est compilée avec Visual C # Express 2010 sous .NET 4 (profil client).
J'essaie d'exécuter le programme avec la commande suivante:
mono application.exe
Cependant, j'obtiens l'erreur suivante:
AVERTISSEMENT: la version d'exécution prise en charge par cette application n'est pas disponible. Utilisation de l'environnement d'exécution par défaut: v1.1.4322
** (application.exe: 5586): AVERTISSEMENT **: Méthode manquante. System.Windows.Forms.Application :: SetCompatibleTextRenderingDefault (bool) dans Assembly /usr/lib/mono/gac/System.Windows.Forms/1.0.5000.0__b25a5c561934e089 /System.Windows.Forms.dll, référencé dans Assembly /media/disk/application.exe
Exception non gérée: System.MissingMethodException: méthode introuvable: 'System.Windows.Forms.Application.SetCompatibleTextRenderingDefault'.
Il est supposé utiliser .NET 4, pas 1, mais je ne sais pas comment le configurer. j'ai essayé
mono --runtime=4.0.30319.1 application.exe
Mais cela n'a pas fonctionné non plus.
Toute aide serait appréciée.
On dirait que vous rencontrez ce bogue:
Mes documents n'ont pas de nœuds: .net 4 profil client sur Mono 2.8
En supposant que vous ayez installé> Mono 2.8 (la première version prenant en charge .NET 4.0). Sinon, vous devriez installer un paquet Mono plus récent.
Une autre chose à garder à l'esprit est que Mono ne supporte pas l'intégralité de WinForm. Sauf si vous développez votre application avec Mono à l'esprit, il est fort probable que quelque chose que vous avez utilisé ne soit pas pris en charge.
Je soupçonne que l'exception est due au fait que la méthode System.Windows.Forms.Application.SetCompatibleTextRenderingDefault n'a pas été implémentée. Avez-vous exécuté l'outil avec le Mono Migration Analyzer (MoMA) , devrait vous aider à savoir si votre application est compatible avec mono. À partir de ce moment, vous pouvez éventuellement contourner le problème, en intégrant peut-être même la méthode manquante dans votre code.
Le package mono-complet actuel (même sur Ubuntu Natty) utilise mono 2.6.7 qui ne prend pas en charge .NET 4.0 API. Vous devrez créer la dernière version de mono, qui constitue le meilleur moyen d’utiliser l’API 4.0. Le support " Complete " de .NET 4.0 est toutefois prévu en mono 3.0.
Installez Monodevelop et faites un clic droit sur le fichier example.csprj qui est un projet C # .NET sous Linux et cliquez sur Monodevelop.