69

我有一个使用 .net 3.5SP1 在 Windows 下编写和编译的简单 .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)]

4

5 回答 5

93

我通过安装 mono-complete 让它工作:

sudo apt-get install mono-complete

之后,我在 usr/lib/mono 下有 2.0、3.5、4.0 等文件夹

于 2012-05-07T23:58:31.770 回答
28

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

于 2013-02-06T06:18:24.443 回答
4

我遇到了同样的问题,对于我的发行版(ubuntu 12. 32 位),单声道完全不可用。所以我刚刚安装了以下软件包,并且具有最重要的 dll 的单声道已经可用:

sudo apt-get install mono-dmcs
sudo apt-get install mono-gmcs
sudo apt-get install mono-devel
于 2014-05-02T21:49:32.793 回答
1

您要查找的软件包是“libmono-system.data2.0-cil”,它与 Mono-complete 一起安装

于 2013-09-22T02:57:46.320 回答
1

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

试图将 MONO_PATH 更改为正确的位置,但没有奏效。最后最终将整个目录复制到 /usr/local/lib 最终让它工作。

于 2014-10-06T11:18:38.813 回答