Ubuntu下升级Mono-3.4.0

来源:互联网 发布:002174游族网络雪球 编辑:程序博客网 时间:2024/05/19 22:50

1) Ubuntu上升级 Mono的原因

  • Mono被Novell开发和支持。但是因为Novell被 openSuse收购,所以目前openSuse可以支持最新的 Mono 版本
    但是其他Linux 发行版,例如 Ubuntu到目前为止,默认安装只能支持到 Mono-2.10.0版本。
  • 为了支持 .NET Framework 4.5 版本, 需要升级到 Mono-3.4.0。
  • 是否较低版本的Mono 也可以支持.Net Framework, 需要查看相关Mono release document。

 

2)Mono下载地址

  • http://origin-download.mono-project.com/sources/mono/

 

3)验证当前版本的方式

  • 执行命令 mono -V
Mono JIT compiler version 2.10.8 (tarball Sat Apr 19 04:07:17 PDT 2014)Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.comTLS:           __threadSIGSEGV:       altstackNotifications: epollArchitecture:  amd64Disabled:      noneMisc:          softdebug LLVM:          supported, not enabled.GC:            Included Boehm (with typed GC and Parallel Mark)

 

  • 编辑下列源代码为 ClrInfo.cs
using System;using System.Text;namespace Skyiv{    class ClrInfo    {       public static void Main(string[] args)       {         Console.WriteLine("OS Version: "+ Environment.OSVersion);         Console.WriteLine("CLR Version: "+ Environment.Version);       }    }}
  • 编译 gmcs ClrInfo.cs, 产生 ClrInfo.exe
  • Ubuntu下执行 mono ClrInfo.exe
    OS Version: Unix 3.5.0.49CLR Version: 2.0.50727.1433

  • Windows7下Console方式执行 ClrInfo.exe
    OS Version: Microsoft Windows NT 6.1.7601 Service Pack 1CLR Version: 2.0.50727.5472

3) 安装 Mono-3.4.0

  • wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2
  • wget http://download.mono-project.com/sources/mono/mono-3.2.5.tar.bz2
  • tar jvxf  mono-3.4.0.tar.bz2
  • cd mono-3.4.0
  • ./configure --prefix=/usr
  • sudo make
  • sudo make install 

    在Ubuntu 12.10 版本安装时,会产生安装错误。这些兼容性问题也许就是高版本的 Mono 没有被集成进 Ubuntu的原因。
mkdir -p -- /usr/lib/mono/xbuild-frameworks/.NETFramework/v4.0/Profile/Client/RedistList/usr/bin/install -c -c -m 644 frameworks/net_4.0_client.xml /usr/lib/mono/xbuild-frameworks/.NETFramework/v4.0/Profile/Client/RedistList/FrameworkList.xml/bin/sh ./../../mkinstalldirs /usr/lib/mono/xbuild/Microsoft/Portable/v4.0mkdir -p -- /usr/lib/mono/xbuild/Microsoft/Portable/v4.0/usr/bin/install -c -c -m 644 targets/Microsoft.Portable.Common.targets /usr/lib/mono/xbuild/Microsoft/Portable/v4.0/Microsoft.Portable.Common.targets/usr/bin/install: cannot stat `targets/Microsoft.Portable.Common.targets': No such file or directorymake[7]: *** [install-pcl-targets] Error 1make[7]: Leaving directory `/usr/local/src/mono-3.4.0/mcs/tools/xbuild'make[6]: *** [do-install] Error 2make[6]: Leaving directory `/usr/local/src/mono-3.4.0/mcs/tools/xbuild'make[5]: *** [install-recursive] Error 1make[5]: Leaving directory `/usr/local/src/mono-3.4.0/mcs/tools'make[4]: *** [install-recursive] Error 1make[4]: Leaving directory `/usr/local/src/mono-3.4.0/mcs'make[3]: *** [profile-do--net_2_0--install] Error 2make[3]: Leaving directory `/usr/local/src/mono-3.4.0/mcs'make[2]: *** [profiles-do--install] Error 2make[2]: Leaving directory `/usr/local/src/mono-3.4.0/mcs'make[1]: *** [install-exec] Error 2make[1]: Leaving directory `/usr/local/src/mono-3.4.0/runtime'make: *** [install-recursive] Error 1

 

为了正确运行某些需要 .Net Framework 4.5 支持的文件,会报如下错误:

sounion@ubuntu:/usr/local/src/Doudizhu/release$ mono DoudizhuHostServer.exeThe assembly mscorlib.dll was not found or could not be loaded.It should have been installed in the `/usr/lib/mono/4.5/mscorlib.dll' directory.


临时解决办法:手动复制相关库文件到指定安装目录路径中。

sudo mkdir /usr/lib/mono/4.5sudo cp -rf /usr/local/src/mono-3.4.0/mcs/class/lib/net_4_5/* /usr/lib/mono/4.5/


然后检查 /usr/lib/mono/4.5/mscorlib.dll 是否存在。如果存在即可。 

然后再运行mono DoudizhuHostServer.exe 即可。

0 0