Не удалось 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 ответов:
Я получил его для работы, установив 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, который, наконец, заставил его работать.