68 votes

Incapable de courir .net app avec des Mono - mscorlib.dll pas trouvé (incompatibilité de version?)

J'ai une simple .net outil de ligne de commande écrit et compilé sous Windows, à l'aide de .net 3.5SP1. Je voudrais le faire fonctionner sur Linux avec Mono.

J'utilise Ubuntu 12.04, et installé Mono d'Exécution à l'aide de l'Ubuntu software center. Si j'essaye de lancer mon application dans le terminal en faisant:

mono MyApp.exe

J'obtiens l'erreur: L'assemblée mscorlib.dll n'a pas été trouvé ou n'a pas pu être chargé. Il doit avoir été installé dans le 'usr/lib/mono/2.0/mscorlib.dll'. Si je navigue à cet endroit, je vois que ça n'existe pas. Cependant, il ya usr/lib/mono/4.0/mscorlib.dll' (et un peu plus de Dll dans le même dossier).

Donc apparemment il y a une incompatibilité de version.

[en cas de questions, "mono -V" montre "Mono compilateur JIT version 2.10.8.1 (Debia 2.10.8.1-1ubuntu2) ]

93voto

Warpin Points 2577

Je l'ai eu pour des travaux en installation de mono-complete: - sudo apt-get install mono-complet

Après, j'ai eu des dossiers 2.0, 3.5, 4.0 et plus en vertu de l'usr/lib/mono

28voto

gfxmonk Points 2981

Si vous voulez juste pour l'exécuter, sudo apt-get install libmono2.0-cil mono-runtime peut suffire.

4voto

Thomas Haller Points 64

j'ai eu le même problème, pour ma distrib (ubuntu 12. 32 Bits ), mono-complet n'a pas été disponible. alors j'ai juste installé les paquets suivants, et mono avec le plus important dll est disponible:

sudo apt-get install mono-dmcs
sudo apt-get install mono-gmcs
sudo apt-get install mono-devel

1voto

Komak57 Points 40

le package que vous cherchez est "libmono-system.données2.0-cil", qui est installé avec des Mono-complet

1voto

Himeshi Points 248

J'ai couru sudo apt-get purge mono-* puis sudo apt-get install mono-complete. Cela a créé les fichiers dans /usr/lib/mono, cependant l'erreur est toujours produite là où elle était à la recherche pour le fichier dans /usr/local/lib/mono qui n'existait pas.

Essayé de changer MONO_PATH à l'emplacement correct, mais n'a pas fonctionné. Enfin fini la copie de la totalité du répertoire /usr/local/lib, qui a finalement réussi à le faire fonctionner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X