无法使用Mono运行.net应用程序 – 找不到mscorlib.dll(版本不匹配?)
我有一个简单的.net命令行工具,使用.net 3.5SP1在Windows下编写和编译。 我想用Mono在Linux上运行它。
我正在使用Ubuntu 12.04,并使用Ubuntu软件中心安装了Mono Runtime。 如果我尝试在terminal上启动我的应用程序,请执行以下操作:
mono MyApp.exe
我得到的错误:
程序集mscorlib.dll未find或无法加载。 它应该已经安装在'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)
]
我通过安装单声道完成工作:
sudo apt-get install mono-complete
之后,我有usr / lib / mono下的文件夹2.0,3.5,4.0以及更多
如果你只是想运行它, sudo apt-get install libmono2.0-cil mono-runtime
就足够了。
我得到了同样的问题,对于我的发行版(Ubuntu 12. 32位),单声道完全不可用。 所以我刚刚安装了下列软件包,并且用最重要的dll单声道可用:
sudo apt-get install mono-dmcs sudo apt-get install mono-gmcs sudo apt-get install mono-devel
你正在寻找的软件包是“Mono-complete”安装的“libmono-system.data2.0-cil”
我运行sudo apt-get purge mono-*
然后sudo apt-get install mono-complete
。 这创build了/ usr / lib / mono中的文件,但是在/ usr / local / lib / mono中找不到的文件仍然生成错误。
试图改变MONO_PATH到正确的位置,但没有奏效。 最后最终将整个目录复制到/ usr / local / lib,最终使它工作。