Pytanie w sprawie ubuntu, mono – Nie można uruchomić aplikacji .net z Mono - nie znaleziono mscorlib.dll (niezgodność wersji?)

67

Mam proste narzędzie wiersza poleceń .net napisane i skompilowane w systemie Windows przy użyciu .net 3.5SP1. Chciałbym uruchomić go na Linuksie za pomocą Mono.

Używam Ubuntu 12.04 i zainstalowałem Mono Runtime za pomocą centrum oprogramowania Ubuntu. Jeśli spróbuję uruchomić aplikację w terminalu, wykonując:

<code>mono MyApp.exe
</code>

Dostaję błąd:

Zespół mscorlib.dll nie został znaleziony lub nie można go załadować. Powinien zostać zainstalowany w usr / lib / mono / 2.0 / mscorlib.dll.

Jeśli przejdę do tej lokalizacji, widzę, że nie istnieje. Jest jednakusr/lib/mono/4.0/mscorlib.dll (i kilka innych bibliotek DLL w tym samym folderze).

Wydaje się, że istnieje niedopasowanie wersji.

[na wypadek, gdyby to miało znaczenie,mono -V przedstawiaMono JIT compiler version 2.10.8.1 (Debia 2.10.8.1-1ubuntu2) ]

Twoja odpowiedź

5   odpowiedzi
1

którego szukasz, to „libmono-system.data2.0-cil”, który jest instalowany wraz z Mono-complete

92

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

Potem miałem foldery 2.0, 3.5, 4.0 i inne w usr / lib / mono

Mam ten sam problem z NOOB v1.2. Po tym jak zacząłem od Raspbian "Wheezy" os, jak zauważył Lex, posiadanie <supportedRuntime version = "v4.0" /> w app.config sprawiło, że moja aplikacja używała poprawnej wersji (4.0) i nie musiałem instalować mono-kompletny. bob
Czy próbowałeś najpierw użyć app.config, aby ustawić supportedRuntime na .NET 4 w systemie Windows? Następnie powinieneś móc używać Mono do uruchamiania go jako .NET 4, ponieważ plik wykonywalny mono powinien go odbierać jako aplikację .NET 4. Lex Li
To działało dla mnie. Dzięki! TravisWhidden
Dla tych, którzy doświadczają tego problemu w wersji 3.4, zobaczstackoverflow.com/questions/22285830/… natli
28

sudo apt-get install libmono2.0-cil libmono-system-net2.0-cil mono-runtime może wystarczyć.

Ta odpowiedź jest dokładniejsza niż „zainstaluj pełne mono”. Pełna potrzeba mono ~ 170Mb, podczas gdy biblioteki NET 2.0 mają około ~ 45Mb. erm3nda
Niestety to nie zadziałało dla mnie (pastebin.com/XduV6vPd). Zainstalowanie mono-complete zajęło trochę więcej czasu, ale rozwiązało problem. Tagc
@Tagc Dla mnie wiadomość zniknęła po tym, jak to zrobiłemsudo apt-get install libmono-system-net2.0-cil NIA
4

dla mojej dystrybucji (ubuntu 12. 32 Bit), mono-complete nie jest dostępny. Właśnie zainstalowałem następujące pakiety i dostępne są mono z najważniejszymi bibliotekami DLL:

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

sudo apt-get purge mono-* i wtedysudo apt-get install mono-complete. Stworzyło to pliki w / usr / lib / mono, jednak błąd nadal był generowany tam, gdzie szukał pliku w / usr / local / lib / mono, który nie istniał.

Próbowałem zmienić MONO_PATH na poprawną lokalizację, ale nie działa. Ostatecznie skończyło się na skopiowaniu całego katalogu do / usr / local / lib, który ostatecznie zadziałał.

Powiązane pytania