Linux:单声道安装和错误

在过去的几个星期里,我努力得到一个没有成功的单声道工作。

我已经在Debian6_x64Debian7_x64Ubuntu_12.04_x64 。 我已经使用默认的mono-complete使用apt-get来安装它,试着从GitHub和替代版本库编译它。 无论是与单声道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下编译的ac#程序,目前我得到的错误是:

 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. 

我一直在谷歌search,似乎没有任何工作。 我将不胜感激任何build议,可以帮助。

谢谢!

Solutions Collecting From Web of "Linux:单声道安装和错误"

现在最好的办法是安装Ubuntu Trusty 14.04(LTS),其默认存储库中包含单声道3.2.8(易于通过apt-get安装)。

不会自动授予在Windows下开发的C#应用​​程序在Linux下使用Mono库的功能。 这取决于:

  • 用于在Windows下开发应用程序的库。 据我所知,例如,在WPF中使用的库在Mono中没有兼容性。 看看这个页面来检查你的应用程序的兼容性。
  • 单声道的版本安装。 每个版本都引入了对新库的修复,增强和支持。 这意味着你的程序不会没有任何问题,你可能会遇到一些错误。

关于您的问题,您的应用程序似乎希望找到与.NET Framework 4.5相关的库,但它们未安装。 安装支持它们的正确版本。 确保您的应用程序不使用Windows平台的特定功能。 在这种情况下,你将不得不删除它们。

在单声道3.4 tar包中有一个丢失的文件,导致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 

你做了什么来实现可移植的代码? 你确定你没有平台依赖吗? 实施一个单线:

 System.Console.WriteLine("OK!"); 

删除所有不必要的依赖关系,并使用框架2.0(最稳定)。

如果这样的话,问题不是Linux上的Mono安装,而是代码中的一些东西。

问题是你的单声道文件安装在/usr/lib/mono但是它正在/usr/local/lib/mono中找不到它们。

将整个目录/usr/lib/mono复制到/usr/local/lib ,这个工作对我来说很有用。

我认为这套指令(不是Ubuntu的)在Ubuntu 12.04中为我工作。

我也从github克隆,并跟随他们的./autogen.sh; make; make install; make check ./autogen.sh; make; make install; make check 以防万一。