Debian: Mono kann nicht verwendet werden (fehlt mscorlib.dll)

5580
Sharp

Ich habe im Laufe der Monate versucht, Mono unter Debian 7 x64 zu verwenden, aber nach dem Versuch funktioniert es nie. Ich habe es auf mehreren verschiedenen Computern installiert, nur um das gleiche Ende zu erreichen:

mono program.exe The assembly mscorlib.dll was not found or could not be loaded. It should have been installed in the `/usr/local/lib/mono/4.5/mscorlib.dll' directory. 

Ich habe versucht, es auf allen möglichen Wegen zu installieren. Tatsächlich war das einzige Mal, dass ich Mono-Arbeiten auf einem Ubuntu-Host sehen konnte, aber das Wechseln der Distribution ist jetzt keine Option. Ich glaube nicht, dass dies ein Problem mit meinem Programm ist, weil es auf Ubuntu funktionierte.

So fahre ich mit der Installation fort (funktionierte auf Ubuntu, auf Debian niemals)

sudo apt-get update sudo apt-get install libpng3 libpng3-dev libtool libtiff4 libtiff4-dev libexif12 libexif-dev libgif4 libgif-dev libpango1.0-dev libatk1.0-dev bison automake autoconf make gcc gtk-sharp2 build-essential xorg-dev libfreetype6 libfontconfig libfontconfig-dev gettext libglib2.0-dev git mono-complete libjpeg-dev git clone git://github.com/mono/mono.git cd mono ./autogen.sh --prefix=/usr/local make sudo make install 

Mono -V

Mono JIT compiler version 3.4.1 (master/683527c Sun Apr 20 04:18:47 CEST 2014) Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com TLS: __thread SIGSEGV: altstack Notifications: epoll Architecture: amd64 Disabled: none Misc: softdebug LLVM: supported, not enabled. GC: sgen 

Ich habe dieses Problem ausgiebig gesucht und kein Lösungsvorschlag funktioniert. Ich frage mich, wie jemand Mono dazu bringen kann, an Debian zu arbeiten.

Vielen Dank.

4
Kleine Dump-Frage: Sind Sie sicher, dass es sich bei der Anwendung, die Sie ausführen möchten, um eine CLI-Anwendung handelt? ju.kreber vor 10 Jahren 0
Ja, so ist es. Ich konnte es auf Ubuntu laufen lassen, und einige andere Leute scheinen es gut zu laufen. Es ist nur diese "Sache" mit Debian, die keinen Sinn macht. Sharp vor 10 Jahren 0
Okay. Haben Sie die "fehlende" DLL überprüft? ist es da und kann aus irgendeinem Grund nicht geladen werden oder fehlt es wirklich? In diesem Fall würde ich versuchen, es manuell herunterzuladen. ju.kreber vor 10 Jahren 0
/ usr / local / lib / mono ist nicht vorhanden. Ich denke, dass es wahrscheinlich irgendwo anders ist und auf den falschen Pfad zeigt. Und ich bin nicht sicher, wo ich es herunterladen soll Sharp vor 10 Jahren 0
Mhm das ist natürlich möglich. Können Sie keine Mono-Lib-Ordner finden? Für mich ist es unter / usr / lib /. Was ist mit dem Überprüfen der Skripte? Was macht diese autogen.sh? Ich nehme an, es richtet Sie ein Makefile ein. Was steht dann in diesem Makefile? Sind die Ordner dort richtig? Vergleichen Sie die Pfade dort und prüfen Sie, ob die Dateien korrekt kopiert wurden. ju.kreber vor 10 Jahren 0
Es fand mein unter / usr / lib / ebenso, aber kein 4.5-Unterverzeichnis, nur für 2.0, 3.5 und 4.0. Ich habe / usr / lib / nach / usr / local / lib / mono kopiert. Nach dem Versuch zu laufen, bekomme ich jetzt "Native Stacktrace (...) Got SIGSEGV beim Ausführen von nativem Code (...)". Ich hatte den Verdacht, dass das Curlpit "--prefix = / usr / local" ist. Ich habe mit "--prefix = / usr" neu installiert. Gleiches Ergebnis Sharp vor 10 Jahren 0
Okay. Komisch ist, ich habe gestern den gleichen Fehler bekommen. Nur eine Frage: Ist das Programm, mit dem Sie eine .NET-Windows-Anwendung ausführen möchten? Das war bei mir der Fall. Meine fehlende mscorlib.dll sollte im 2.0-Ordner sein, ich hatte nur eine 4.0. Symlinked dieses zu 2.0 (nur um zu versuchen: D) - eine Reihe von Fehlern. Ich musste die Anwendung durch Wine laufen lassen, mit der Dotnet-Erweiterung. Vielleicht könnte dies auch das Problem für Sie sein? ju.kreber vor 10 Jahren 0

1 Antwort auf die Frage

2
András Korn

Das libmono-corlib4.5-cilPaket enthält /usr/lib/mono/4.5/mscorlib.dll.

Ich denke, Sie sollten einfach alles aus Paketen installieren können. Es ist nicht nötig, Mono aus dem Quelltext zu kompilieren und manuell unter / usr / local zu installieren:

sudo apt-get install mono-complete libmono-corlib4.5-cil

Stellen Sie sicher, dass Sie Ihr manuell installiertes Mono aus / usr / local entfernen.

Nicht nützlich, wenn Sie sich auf einer Plattform befinden, auf der Sie keine Quellpakete verwenden können. Debian PowerPC hat gerade Monopakete gebrochen. Wyatt8740 vor 6 Jahren 0