Вопрос по ubuntu, mono – Невозможно запустить приложение .net с Mono - mscorlib.dll не найден (несовпадение версий?)

67

У меня есть простой инструмент командной строки .net, написанный и скомпилированный под Windows, используя .net 3.5SP1. Я хотел бы запустить его на Linux с помощью Mono.

Я использую Ubuntu 12.04 и установил Mono Runtime с помощью программного центра Ubuntu. Если я попытаюсь запустить мое приложение в терминале, выполнив:

<code>mono MyApp.exe
</code>

Я получаю ошибку:

The assembly mscorlib.dll was not found or could not be loaded. It should have been installed in the 'usr/lib/mono/2.0/mscorlib.dll'.

Если я перейду к этому месту, то увижу, что оно не существует. Тем не менее, естьusr/lib/mono/4.0/mscorlib.dll (и еще несколько DLL в той же папке).

Так что, похоже, существует несоответствие версий.

[в случае, если это имеет значение,mono -V шоуMono JIT compiler version 2.10.8.1 (Debia 2.10.8.1-1ubuntu2) ]

Ваш Ответ

5   ответов
1

который вы ищете, был "libmono-system.data2.0-cil" который устанавливается с Mono-complete

4

), моно-полный не был доступен. поэтому я только что установил следующие пакеты, и моно с наиболее важными dll было доступно:

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

sudo apt-get install mono-complete

После этого у меня были папки 2.0, 3.5, 4.0 и более в каталоге usr / lib / mono

Это сработало для меня. Спасибо!
Я получил ту же проблему с NOOB v1.2. После того, как я снова начал с Raspbian "Wheezy" ОС, как указал Лекс, имея ; supportRuntime version = & quot; v4.0 & quot; / & GT; в app.config мое приложение использовало правильную версию (4.0), и мне не нужно было устанавливать моно-полную версию.
Вы пытались использовать app.config, чтобы сначала установить для SupportRuntime значение .NET 4 в Windows? Тогда вы сможете использовать Mono для запуска его как .NET 4, так как исполняемый файл mono должен выбрать его как приложение .NET 4.
Для тех, кто испытывает эту проблему с выпуском 3.4, см.stackoverflow.com/questions/22285830/…
28

sudo apt-get install libmono2.0-cil libmono-system-net2.0-cil mono-runtime может хватить.

К сожалению, это не сработало для меня (pastebin.com/XduV6vPd). Установка mono-complete заняла немного больше времени, но это решило проблему.
@Tagc Для меня сообщение исчезло после того, как я сделал дополнительноsudo apt-get install libmono-system-net2.0-cil
Этот ответ является более точным, чем "установить полный моно". Полное моно требует ~ 170Mb, в то время как библиотеки NET 2.0 - около 45Mb.
1

sudo apt-get purge mono-* а потомsudo apt-get install mono-complete, Это создало файлы в / usr / lib / mono, однако ошибка все еще генерировалась, когда он искал файл в / usr / local / lib / mono, которого не было.

Попытка изменить MONO_PATH на правильное местоположение, но не сработала. Наконец, закончилась копирование всего каталога в / usr / local / lib, который, наконец, заставил его работать.

Похожие вопросы