在过去的几周里,我努力让Mono安装工作没有成功。
我在Debian6_x64
,Debian7_x64
和Ubuntu_12.04_x64
上尝试过。
我使用apt-get
使用默认的mono-complete安装它,尝试从GitHub和其他存储库编译它。无论是使用Mono 2.x还是3.x,我都遵循了几个教程,似乎没有任何工作。
不幸的是,我没有过去安装的错误日志,但目前我的情况是:
Ubuntu 12.04 x64
Mono JIT compiler version 3.4.0 (master/250756b Sun Mar 2 15:02:07 EST 2014)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: x86
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen
我正在尝试运行我在windows下编译的c#程序,我目前得到的错误是:
user@host:/home/pck# mono Program.exe
The assembly mscorlib.dll was not found or could not be loaded.
It should have been installed in the `/usr/local/lib/mono/4.5/mscorlib.dll' directory.
我一直在谷歌搜索,似乎没有任何工作。我非常感谢任何有用的建议。
谢谢!
答案 0 :(得分:2)
现在最好的办法是安装Ubuntu Trusty 14.04(LTS),其默认存储库中包含mono 3.2.8(通过apt-get轻松安装)。
答案 1 :(得分:1)
使用Mono库,在Windows下开发的C#应用程序无法自动授权。 这取决于:
关于您的问题,您的应用程序似乎希望找到与.NET Framework 4.5相关的库,但它们并未安装。安装支持它们的正确版本。确保您的应用程序不使用Windows平台的特定功能。在这种情况下,您将不得不删除它们。
答案 2 :(得分:1)
单声道3.4 tarball中缺少一个文件,导致make install
在安装2.0二进制文件后立即失败。其他版本永远不会被破坏,这就是为什么你缺少4.5
cd到解压缩的tarball并自己创建文件:
cd */path/to/unpacked*
echo -e '<Project xmlns=<a class="moz-txt-link-rfc2396E" href="http://schemas.microsoft.com/developer/msbuild/2003">"http://schemas.microsoft.com/developer/msbuild/2003">\n <Import Project="..\Microsoft.Portable.Core.props" />\n <Import Project="..\Microsoft.Portable.Core.targets" />\n</Project>' > mcs/tools/xbuild/targets/Microsoft.Portable.Common.targets
然后照常继续(不确定是否必须配置并再次制作)
./configure --prefix=/opt/mono-3.4
make
make install
答案 3 :(得分:0)
您为实现可移植代码做了什么?您确定没有平台依赖吗?实施一行:
System.Console.WriteLine("OK!");
删除所有不必要的依赖项并使用framework 2.0(最稳定)。
如果可行,问题不在于Linux上的Mono安装,而是代码中的内容。
答案 4 :(得分:0)
问题是您的单声道文件是安装在/usr/lib/mono
中的,但它正在/usr/local/lib/mono
中找不到它们。
将整个目录/usr/lib/mono
复制到/usr/local/lib
让它对我有用。
答案 5 :(得分:0)
This set指令(不是Ubuntu指令)在Ubuntu 12.04中为我工作。
我还从github克隆并遵循他们的./autogen.sh; make; make install; make check
指示以防万一。