Frage an ubuntu, mono – .NET-App kann nicht mit Mono ausgeführt werden - mscorlib.dll nicht gefunden (Versionskonflikt?)

67

Ich habe ein einfaches .NET-Befehlszeilentool, das unter Windows mit .NET 3.5SP1 geschrieben und kompiliert wurde. Ich möchte es unter Linux mit Mono ausführen.

Ich verwende Ubuntu 12.04 und habe Mono Runtime über das Ubuntu-Software-Center installiert. Wenn ich versuche, meine App im Terminal zu starten, gehen Sie wie folgt vor:

<code>mono MyApp.exe
</code>

Ich erhalte den Fehler:

Die Assembly mscorlib.dll wurde nicht gefunden oder konnte nicht geladen werden. Es sollte in der 'usr / lib / mono / 2.0 / mscorlib.dll' installiert worden sein.

Wenn ich zu diesem Ort navigiere, sehe ich, dass er nicht existiert. Es gibt jedochusr/lib/mono/4.0/mscorlib.dll (und einige weitere DLLs im selben Ordner).

Es gibt also anscheinend eine Versionsinkongruenz.

[falls es darauf ankommt,mono -V zeigt anMono JIT compiler version 2.10.8.1 (Debia 2.10.8.1-1ubuntu2) ]

Deine Antwort

5   die antwort
92

Ich habe es zum Laufen gebracht, indem ich mono-complete installiert habe:

<code>sudo apt-get install mono-complete
</code>

Danach hatte ich Ordner 2.0, 3.5, 4.0 und mehr unter usr / lib / mono

Haben Sie versucht, app.config zu verwenden, um supportedRuntime unter Windows zuerst auf .NET 4 zu setzen? Dann sollten Sie in der Lage sein, Mono zu verwenden, um es als .NET 4 auszuführen, da die ausführbare Mono-Datei es als .NET 4-App aufnehmen sollte. Lex Li
Ich habe das gleiche Problem mit NOOB v1.2. Nachdem ich wieder mit Raspbian "Wheezy" gestartet habe, musste ich, wie Lex betonte, meine App mit <supportedRuntime version = "v4.0" /> in app.config auf die korrekte Version (4.0) umstellen, ohne sie installieren zu müssen Mono-vollständig. bob
Das hat bei mir funktioniert. Vielen Dank! TravisWhidden
Informationen zu diesem Problem mit der Version 3.4 finden Sie unterstackoverflow.com/questions/22285830/… natli
4

ich habe das gleiche problem, für meine distro (ubuntu 12. 32 bit) war mono-complete nicht verfügbar. deshalb habe ich gerade die folgenden pakete installiert und mono mit den wichtigsten dlls war verfügbar:

<code>sudo apt-get install mono-dmcs
sudo apt-get install mono-gmcs
sudo apt-get install mono-devel
</code>
28

Wenn Sie es nur ausführen möchten,sudo apt-get install libmono2.0-cil libmono-system-net2.0-cil mono-runtime kann ausreichen.

Leider hat das bei mir nicht geklappt (pastebin.com/XduV6vPd). Die Installation von mono-complete dauerte etwas länger, löste aber das Problem. Tagc
@Tagc Für mich verschwand die Nachricht, nachdem ich zusätzlich tatsudo apt-get install libmono-system-net2.0-cil NIA
Diese Antwort ist genauer als "Vollmono installieren". Vollmono benötigt ca. 170 MB, während NET 2.0-Bibliotheken ca. 45 MB groß sind. erm3nda
1

ich ranntesudo apt-get purge mono-* und dannsudo apt-get install mono-complete. Dadurch wurden die Dateien in / usr / lib / mono erstellt. Der Fehler wurde jedoch trotzdem dort generiert, wo nach der Datei in / usr / local / lib / mono gesucht wurde, die nicht vorhanden war.

Es wurde versucht, MONO_PATH an den richtigen Speicherort zu ändern, aber es hat nicht funktioniert. Schließlich wurde das gesamte Verzeichnis nach / usr / local / lib kopiert, wodurch es endlich funktionierte.

1

Das gesuchte Paket war "libmono-system.data2.0-cil", das mit Mono-complete installiert wird

Verwandte Fragen