Не удалось run.net приложение с моно-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 67

5 ответов:

Я получил его для работы, установив mono-complete:

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-битный ), моно-полный не был доступен. поэтому я просто установил следующие пакеты, и mono с самыми важными DLL был доступен:

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

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

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

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