Невозможно запустить приложение.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