在Linux上运行Net程序

最近突然想把一个在windows下的用c#写winform程序放到 Linux下运行,于是就是看了2天大名鼎鼎的Mono

至于Mono是什么,大家去百度,Google一下就明白了,他就是Novell公司赞助的一个开源项目,把net程序移植到Linux系统上去,包括unix系统,比如opensuse,redhat,macOS之类的。

先说安装吧。Linux安装软件真的很复杂了,累死了。其实也不复杂了,主要是对Linux不熟悉

1.现在Linux系统,我是在本机安装了一个虚拟机,然后安装了红帽企业版本的Linux5.0也技术RHEL5.

然后去http://www.go-mono.com/mono-downloads/下载适合红帽的mono2.2.经过我2天试验,虽然mono推荐使用yum来安装mono但是在红帽上面使用mono是要注册收费才能使用了,唉,红帽已经变质了。于是我就下载rpm文件去安装,运行rpm命令安装。但是只能运行控制台程序,现在大家都是推荐下载源代码文件,然后重新编辑和安装,因为Linux下的安装rpm也不好

我们下载Linux的源文件,都是压缩文件,*。tar。bz2.

  • mono-2.2.tar.bz2
  • mono-basic-2.2.tar.bz2
  • libgdiplus-2.2.tar.bz2
  • gluezilla-2.2.tar.bz2

    使用tar xvfj example.tar.bz2解压缩。

    然后cd进入解压后的目录运行 ./configure这是配置文件的,然后运行make编译,编译那个mono2.2比较慢的,花了不少时间,然后就是运行make install这个是安装。这样才算安装成功。 

    默认mono是安装在usr/loacl/lib下面的

    2.移植

    mono提供了一个迁移分析工具Moma,分析你的net程序是否可以直接迁移到Linux。地址是这个:http://mono-project.com/MoMA下载以后加载exe和dll文件可以分析一下

    这里有一个迁移的具体例子:http://mono-project.com/Guide:_Porting_Winforms_Applications

    在windows系统上找一个winform程序。直接搞到Linux下面去。运行mono *。exe命令。就可以启动你的winform界面

    3问题

    正常是这样的。但是我一直有一个问题。报错缺少一个dll。gdiplus。dll。这个问题比较普通,官网也有解决方案。是这个地址:http://www.mono-project.com/DllNotFoundException

    我参照运行了一下,还是不行。

    于是我把我的exe程序copy到gdiplus。dll文件的同目录下,运行一下,可以了。或者把gdiplus。dll放到exe那里,呵呵,也可以。真是郁闷。这个应该是mono设置环境变量路径的问题吧。这个还要继续研究一下。

  • Mono连接数据库的测试

  • 经过测试mono可以连接windows下的sqlserver2000和2005,还有mysql。

  • 备注:本机的虚拟机连接本机的设置:红帽下面,好:位置--连接到服务器,打开这个,选择windows共享,设置一下就可以共享本机的资源了,方便copy东西

本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。

原文地址:https://www.cnblogs.com/zjypp/p/2319393.html