web-dev-qa-db-fra.com

Impossible d'exécuter l'application .net avec Mono - mscorlib.dll introuvable (version incompatible?)

J'ai un outil de ligne de commande .net simple écrit et compilé sous Windows, en utilisant .net 3.5SP1. Je voudrais l'exécuter sur Linux en utilisant Mono.

J'utilise Ubuntu 12.04 et j'ai installé Mono Runtime à l'aide du centre logiciel Ubuntu. Si j'essaie de démarrer mon application dans le terminal en faisant:

mono MyApp.exe

Je reçois l'erreur:

L'Assembly mscorlib.dll n'a pas été trouvé ou n'a pas pu être chargé. Il aurait dû être installé dans le fichier 'usr/lib/mono/2.0/mscorlib.dll'.

Si je navigue vers cet endroit, je constate qu'il n'existe pas. Cependant, il existe usr/lib/mono/4.0/mscorlib.dll (Et quelques autres DLL dans le même dossier).

Donc, apparemment, il existe une incompatibilité de version.

[au cas où cela importerait, mono -V affiche Mono JIT compiler version 2.10.8.1 (Debia 2.10.8.1-1ubuntu2)]

67
Warpin

Je l'ai fait fonctionner en installant mono-complete:

Sudo apt-get install mono-complete

Après cela, j’ai eu les dossiers 2.0, 3.5, 4.0 et plus sous usr/lib/mono

92
Warpin

Si vous voulez juste l'exécuter, Sudo apt-get install libmono2.0-cil libmono-system-net2.0-cil mono-runtime peut suffire.

28
gfxmonk

j'ai eu le même problème, pour ma distribution (Ubuntu 12. 32 bits), mono-complète n'a pas été disponible. donc je viens d'installer les paquets suivants, et mono avec les dll les plus importantes est disponible:

Sudo apt-get install mono-dmcs
Sudo apt-get install mono-gmcs
Sudo apt-get install mono-devel
4
Thomas Haller

le paquet que vous cherchez était "libmono-system.data2.0-cil" qui est installé avec Mono-complete

1
Komak57

Iran Sudo apt-get purge mono-* et alors Sudo apt-get install mono-complete. Cela créait les fichiers dans/usr/lib/mono, mais l’erreur était toujours générée à la recherche du fichier qui n’existait pas dans/usr/local/lib/mono.

J'ai essayé de changer MONO_PATH à l'emplacement correct, mais cela n'a pas fonctionné. Finalement, j'ai fini par copier tout le répertoire dans/usr/local/lib, ce qui a finalement permis de le faire fonctionner.

1
Himeshi