Linux下.NET开发环境构建
.net,C#,Asp.Net VisualStudio跟着微软一步步走来,有成功,有喜悦,有收获,但也有一种莫名的危机感,整理思路,规划下未来的道路:花四层左右的时间继续跟着微软的步伐,在比尔教主的大旗下继续开拓疆土,同时花六成左右的时间将重心转移到Linux,Php ,C/C++,分布式文件系统于存储,高并发、大数据量互联网架构上,看上去很多,当然梦想总是有的,只有一步一步往前走了!
因此这两天转移到linux上折腾一番,把Linux上开发环境搭建起来了,首先是.NET开发环境。mono这个东西早就听说了,引用网上的介绍: Mono是一个由Novell公司(由Ximian发起,并由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程。它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库,并实现了 ADO NET和ASP NET,能够使得开发人员在Linux用C#开发程序。一句话mono就是Linux上的.netframework。下面介绍mono的安装:
在下机器的环境ubuntu10.04。
1、首先到官网下载mono,版本是:mono-2.6.7.tar.bz2
2、解压、编译、安装
root@localhost:/home/guoyuanwei/下载 # tar -jxvf mono-2.6.7.tar.bz2
将解压后的文件夹放到常用的放软件的地方,我的是/usr/mysoft/目录下:root@localhost:/home/guoyuanwei/下载# mv mono-2.6.7 /usr/mysoft/
root@localhost:/usr/mysoft/mono-2.6.7# ./configure --prefix=/opt/mono这个是配置安装目录,准备将软件安装在/opt/mono下。(特别注意:在configure 编译过程中需要用到g++和其它一些相关的编译工具,在编译过程中可看报错信息,按照报错信息中提示安装所需要的工具。像我这里就有一个错误:configure: error: You need to install bison,意思所缺少bison这个东西,只有先安装在配置了。下载bison-2.5.tar.gz 进行安装。)
# make
# make install
完成mono的安装。运行命令
root@localhost:/opt/mono/bin# mono 初步测试下看安装是否成功。为了在任何地方都可以运行mono命令,下面修改下环境变量:
#vim /etc/profile
在文件末尾加上以下配置:
MONO_HOME=/opt/mono
PATH=$MONO_HOME/bin:$PATH
CLASSPATH=.:$MONO_HOME/lib/
export MONO_HOME
export PATH
export CLASSPATH
让/etc/profile文件修改后立即生效 ,可以使用如下命令:
# source /etc/profile
完成后重新登录,即可在任意位置运行momo命令
下面通过几个简单程序测试下mono环境安装所否正确
(1)创建一个hello.cs文件,敲入如下代码:如果熟悉windows下C#开发的话,一看就知道这就windows 下的控制台程序哦!
using System; public class HelloWorld { static public void Main () { Console.WriteLine ("Hello Mono World"); } }
编译文件: root@localhost:/home/guoyuanwei/GYWStudy# gmcs hello.cs(注意:如果这个时候没有安装gmcs编译器,会提示出错程序“gmcs”尚未安装。 您可以使用以下命令安装:
apt-get install mono-gmcs,gmcs是C#的编译器,支持2.0的运行时,现在最新的好像是4.0的运行时里,命令所dmcs,可以查看官方文档看看2.0的运行时支持哪些C#特性)
编译成功后会生存一个hello.exe的文件,运行下面命令,得到结果。
# mono hello.exe
Hello Mono World
(2)接下来在做个Windows窗体程序的实验。
using System; using System.Windows.Forms; public class HelloWorld : Form { static public void Main () { Application.Run (new HelloWorld ()); } public HelloWorld () { Text = "Hello Mono World"; } }
Windows窗体程序开发,你必须在linux下面安装 System.Windows.Forms这个程序集所在的包,实际上就是一个GUI开发的工具包。不过在Linux下作windows窗体程序的开发,感觉没多大必要。选择mono的原因就所为了利用C#强大的语法特性在linux上开发高效的软件。
编译:# gmcs hello.cs -pkg:dotnet(注意:这里有一个编译选项-pkg:dotnet,这个是添加程序集的应用,因为我们在程序里面用到了标准的windows窗体程序的命名空间,如果编译出现找不到到包的错误,可能是环境变量的问题,添加一个环境变量PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig,这个是我的mono安装路径,具体情况看你的路径)
运行:# mono hello.exe
结果弹出一个窗体程序出来。
(3)Linux上图形界面软件开发GTK#
using Gtk; using System; class Hello { static void Main() { Application.Init (); Window window = new Window ("helloworld"); window.Show(); Application.Run (); } }
上面的程序用到了gtk库,所以要安装GTK#才能编译通过,按照配置-》编译-》安装进行。
root@localhost:/usr/mysoft/gtk-sharp-2.12.11# ./configure --prefix=/opt/gtk-sharp
配置的过此中我遇到了次错误:
checking for csc.exe... no
configure: error: You need to install either mono or .Net
这个错误害人不浅,搞了我好几个小时,表面上说是找不到csc.exe程序,实际上不是,是因为在配置的过程中找不到mono.pc这个文件所造成的,而这个mono.pc在安装后的mono下面。
所以需修改环境变量,增加一个PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig在文件etc/profile中。
# make
# make install 安转完毕。
有了此利器,linux下面的图形界面软件开发不再是难事。
(4)上面的编码,编译,运行都所通过命令行完成,想想强大VisualStudio开发工具,在linux上自然也有,那就是monodevelop