我有一个简单的.NET命令行工具编写和Windows下的编译,使用.NET 3.5SP1。 我想使用单在Linux上运行它。
我使用Ubuntu 12.04,并使用Ubuntu软件中心安装单声道运行。 如果我尝试做开始我在终端应用程序:
mono MyApp.exe
我得到的错误:
装配mscorlib.dll中未找到或无法加载。 它应该被安装在 'usr / lib中/单声道/ 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
在那之后,我有文件夹2.0,3.5,4.0和下usr / lib目录/单更多
如果你只是想运行它, sudo apt-get install libmono2.0-cil libmono-system-net2.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
您正在寻找的包是“libmono-system.data2.0-CIL”一起安装的单完成
我跑sudo apt-get purge mono-*
,然后sudo apt-get install mono-complete
。 这所创建的文件在/ usr / lib中/单,但仍然产生错误的位置,它正在寻找在/ usr / local / lib目录/单声道的文件,该文件不存在。
试图改变MONO_PATH到正确的位置,但没有奏效。 终于结束了复制整个目录到/ usr / local / lib目录终于得到它的工作。
文章来源: Unable to run .net app with Mono - mscorlib.dll not found (version mismatch?)