Mono跨平台体验

最近遇到一个特殊需求,客户要求做一个运行在Linux上的软件,并且要有软件界面。考虑到不会GTK#,QT也不熟悉,所以想到还是用mono Windows Form(.net跨平台项目)比较好,这里记录一下做法。

1.首先得准备一些东西:

  • 一台Windows电脑
  • visual studio 2015 (其它版本也可以)
  • 一个虚拟机软件VisualBox(其它虚拟机软件也可以,这里以VisualBox为例)
  • 一个Linux系统镜像(这里以Ubuntu 16.04为例)
2.准备好这些之后,安装好VisualBox,新建Linux系统,加载Ubuntu镜像,注意设置网络连接为【桥接网卡】,否则外机ping不同内机;

3.安装过程中根据提示,选择时区,语言等,等待Ubuntu安装完成,安装完成后会提示重启,最后再安装VisualBox扩展,以及共享粘贴板-双向(方便从外机复制Linux命令进内机终端),记住还要重启一次才生效;

4.接下来安装mono, 去mono官网,会有不同操作系统安装mono的方法:
  • Windows下最简单,下载好之后,双击进行安装即可;
  • Ubuntu下只要键入mono官网提示的命令即可:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/ubuntu xenial main" | sudo tee /etc/apt/sources.list.d/mono-official.list
sudo apt-get update

等待update完成(可能要等几分钟),执行安装命令:
sudo apt-get install mono-devel

5.接下来打开visual studio,打开【工具】-【扩展和更新】,安装Mono Tools (国内可能被墙,自己想办法),安装好之后重启VS:


6.打开【工具】-【选项】-【Mono Tools】,填入mono安装路径:


7.新建一个传统Windows Form项目,拖几个控件,然后工具栏【Mono】-【XBuild Solution】,看看【输出】窗口有没有错误提示,因为有些控件,mono目前是不支持的。点击【Mono】-【Start Without Debugging】:


8.如果编译没有报错,那表示程序暂时没有问题,可以运行,但是运行之后有没有问题,还得去Ubuntu上测试才知道;

9.在visualbox上设置【共享文件夹】,记住设置成“自动挂载”+“固定分配”,路径指向刚刚编译的debug文件夹。重启Linux,就能在Linux的文件管理器看到了:


10.在Linux上运行刚刚生成的exe文件(记住要以root运行):
cd /media/sf_Debug/
mono TestMono.exe


11.一般只有界面,运行是没有问题的,如果有后台代码,比如一些特殊功能,如日志记录,就要考虑linux下的文件路径符是正斜杠而不是反斜杠,还有要考虑某些代码mono支不支持,虽然mono提供了一些检测工具,如MoMa,但是具体问题还是要具体分析,总的来说是一个细腻的工程;






猜你喜欢

转载自blog.csdn.net/sudazf/article/details/78222127
今日推荐