簡體   English   中英

Linux:Mono安裝和錯誤

[英]Linux: Mono installation and errors

在過去的幾周里,我一直在努力獲取無法正常運行的Mono安裝。

我已經在Debian6_x64Debian7_x64Ubuntu_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下編譯的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.

我一直在谷歌搜索,似乎沒有任何工作。 我非常感謝您提供的任何建議。

謝謝!

如今最好的做法是安裝Ubuntu Trusty 14.04(LTS),它的默認存儲庫中包含mono 3.2.8(易於通過apt-get安裝)。

不能自動保證Windows下開發的C#應用​​程序可以使用Mono庫在Linux下工作。 這取決於:

  • 用於在Windows下開發應用程序的庫。 據我所知,例如,WPF中使用的庫在Mono中不兼容。 查看此頁面以檢查您的應用程序的兼容性。
  • 安裝的Mono版本。 每個版本都引入了對新庫的修復,增強和支持。 這意味着您的程序將無法正常運行,並且可能會遇到一些錯誤。

關於您的問題,您的應用程序似乎希望找到與.NET Framework 4.5相關的庫,但未安裝它們。 安裝支持它們的正確版本。 確保您的應用程序未使用Windows平台的特定功能。 在這種情況下,您將必須刪除它們。

mono 3.4壓縮文件中缺少文件,導致在安裝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

然后照常繼續操作(不確定是否必須進行配置和重新制作)

./configure --prefix=/opt/mono-3.4
make
make install

您為實現可移植代碼做了什么? 您確定沒有平台依賴性嗎? 實施單線:

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

刪除所有不必要的依賴項並使用Framework 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 ./autogen.sh; make; make install; make check ,以防萬一說明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM