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

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

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

mono MyApp.exe

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

Сборка mscorlib.dll не найдена или не может быть загружена. Он должен быть установлен в "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 ответов

Решение

Я получил его на работу, установив моно-полный:

sudo apt-get install mono-complete

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

Если вы просто хотите запустить его, sudo apt-get install libmono2.0-cil libmono-system-net2.0-cil mono-runtime может хватить.

У меня та же проблема, для моего дистрибутива (Ubuntu 12. 32 бит), моно-полный не был доступен. поэтому я только что установил следующие пакеты, и моно с наиболее важными библиотеками было доступно:

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

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

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

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

Другие вопросы по тегам