无法运行带有Mono的.net应用程序 - 找不到mscorlib.dll(版本不匹配?)

时间:2012-05-07 22:44:19

标签: ubuntu mono

我在Windows下使用.net 3.5SP1编写和编译了一个简单的.net命令行工具。我想使用Mono在Linux上运行它。

我正在使用Ubuntu 12.04,并使用Ubuntu软件中心安装了Mono Runtime。如果我尝试通过以下方式在终端中启动我的应用程序:

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 个答案:

答案 0 :(得分:92)

我通过安装mono-complete来实现它:

sudo apt-get install mono-complete

之后,我在usr / lib / mono

下有文件夹2.0,3.5,4.0等

答案 1 :(得分:28)

如果您只想运行它,sudo apt-get install libmono2.0-cil libmono-system-net2.0-cil mono-runtime就足够了。

答案 2 :(得分:4)

我遇到了同样的问题,对于我的发行版(ubuntu 12. 32位 ),mono-complete尚未提供。 所以我刚刚安装了以下软件包,并且已经提供了带有最重要的dll的单声道:

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

答案 3 :(得分:1)

你正在寻找的包是“libmono-system.data2.0-cil”,它与Mono-complete一起安装

答案 4 :(得分:1)

我跑sudo apt-get purge mono-*然后sudo apt-get install mono-complete。这在/ usr / lib / mono中创建了文件,但是在/ usr / local / lib / mono中查找不存在的文件时仍然会生成错误。

尝试将MONO_PATH更改为正确的位置,但无法正常工作。最后最终将整个目录复制到/ usr / local / lib,最终使其工作。