Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linux:Mono安装和错误_C#_Linux_Mono - Fatal编程技术网

C# Linux:Mono安装和错误

C# Linux:Mono安装和错误,c#,linux,mono,C#,Linux,Mono,在过去的几周里,我一直在努力安装Mono,但没有成功 我在Debian6\ux64、Debian7\ux64和Ubuntu\u12.04\ux64上试用过。 我已经使用默认的mono complete安装了它,使用apt-get,并尝试从GitHub和其他存储库编译它。无论是Mono 2.x还是3.x,我都遵循了一些教程,但似乎没有任何效果 不幸的是,我没有过去安装的错误日志,但目前我的情况是: Ubuntu 12.04 x64 Mono JIT compiler version 3.4.0

在过去的几周里,我一直在努力安装Mono,但没有成功

我在
Debian6\ux64
Debian7\ux64
Ubuntu\u12.04\ux64
上试用过。 我已经使用默认的mono complete安装了它,使用
apt-get
,并尝试从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.
我一直在谷歌上搜索,似乎什么都没用。我将非常感谢任何有帮助的建议


谢谢

在Windows下开发的C#应用程序不能自动在Linux下使用Mono库工作。 这取决于:

  • 用于在Windows下开发应用程序的库。例如,据我所知,WPF中使用的库在Mono中没有兼容性。查看以检查应用程序的兼容性
  • 安装了Mono的版本。每个版本都引入了对新库的修复、增强和支持。这意味着您的程序将无法正常工作,并且可能会遇到一些错误

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

在Windows下开发的C#应用程序不能自动在Linux下使用Mono库工作。 这取决于:

  • 用于在Windows下开发应用程序的库。例如,据我所知,WPF中使用的库在Mono中没有兼容性。查看以检查应用程序的兼容性
  • 安装了Mono的版本。每个版本都引入了对新库的修复、增强和支持。这意味着您的程序将无法正常工作,并且可能会遇到一些错误

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

为了实现可移植代码,您做了哪些工作?您确定没有平台依赖项吗?实施一个线性系统:

System.Console.WriteLine("OK!");
删除所有不必要的依赖项并使用framework 2.0(最稳定)


如果这样做有效,问题不在于Linux上的Mono安装,而在于代码中的某些内容。

您在实现可移植代码方面做了哪些工作?您确定没有平台依赖项吗?实施一个线性系统:

System.Console.WriteLine("OK!");
删除所有不必要的依赖项并使用framework 2.0(最稳定)


如果这样做有效,问题不在于Linux上的Mono安装,而在于代码中的某些内容。

现在最好的做法是安装UbuntuTrusty 14.04(LTS),其中包括默认存储库中的Mono 3.2.8(易于通过apt get安装)。

现在最好的做法是安装UbuntuTrusty 14.04(LTS),它在默认存储库中包含mono 3.2.8(通过apt get易于安装)。

mono 3.4 tarball中缺少一个文件,导致安装2.0二进制文件后,make install立即失败。其他版本从未被插入,这就是为什么您缺少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

mono 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

问题是您的mono文件安装在
/usr/lib/mono
中,但它正在
/usr/local/lib/mono
中查找它们,而该文件不存在


将整个目录
/usr/lib/mono
复制到
/usr/local/lib
对我起到了作用。

问题是您的mono文件安装在
/usr/lib/mono
中,但它正在
/usr/local/lib/mono
中查找它们,而该目录不存在

将整个目录
/usr/lib/mono
复制到
/usr/local/lib
对我来说是可行的。

我认为在Ubuntu 12.04中,指令(不是Ubuntu的指令)对我来说是可行的

我还从github克隆了它,并遵循它们的
/autogen.sh;制作制作安装;检查一下
指令,以防万一。

我想,在Ubuntu 12.04中,有很多指令(不是Ubuntu的)对我有用


我还从github克隆了它,并遵循它们的
/autogen.sh;制作制作安装;检查
说明,以防万一。

。您的应用程序实际上是针对.NET Framework 4.5吗?。你的应用程序真的是针对.NET Framework 4.5的吗?你的回音字符串有些奇怪(
@Cocowalla感谢你的检查,但没有奇怪之处。这只是文件内容;)没有。。。绝对奇怪,这甚至不是有效的XML!看看实际内容应该是什么,beI认为标记看起来很奇怪,这就是为什么我在粘贴它时非常小心的原因。事实证明,我复制它的网站(codeproject)是错误的。谢谢你的再次检查!不确定我是否应该编辑我的答案,因为我无法使用github atm+1@natli的内容进行测试-这对我帮助很大!我不知道他们为什么还没有修好柏油球。你的回音字符串有些奇怪(
@Cocowalla谢谢你的检查,但没有奇怪。这只是文件内容;)不。。。判定元件