搜档网
当前位置:搜档网 › Linux C#

Linux C#

//---
让.net程序脱离.NET Framework在Linux下运行
https://www.sodocs.net/doc/024373263.html,/course/4_webprogram/https://www.sodocs.net/doc/024373263.html,/netjs/2008410/109017.html
//---

在Linux下运行,Mono project
https://www.sodocs.net/doc/024373263.html,/
//--
Linux下MONO执行C#程序
作者:chuncn | 出处:博客园 | 2011/11/20 1:35:57 | 阅读1次
第一步 环境(UBUNTU系统下)

sudo apt-get install mono-gmcs mono
第二步 建立example.cs

class X {
static void Main () {
System.Console.Write("My first mono app worked!\n");
}
}

第三步 编译

gmcs example.cs

第四步 执行

./example.exe

//
前位置: 好工具 >> 网络编程 >> .Net
Linux操作系统下 MONO执行C#程序的方法
作者:姗姗的部落 | 出处:博客园 | 2011/11/23 3:47:30 | 阅读7次
第一步 环境(UBUNTU系统下)
sudo apt-get install mono-gmcs mono
第二步建立example.cs
class X {
static void Main () {
System.Console.Write("My first mono app worked!"n");
}
}

第三步 编译
gmcs example.cs

第四步执行
./example.exe
在Linux中使用C#(Fedora系统下)

当微软启动它的.NET战略时,其中的一个目标就是让所制作的软件运行在多种不同的平台上。

Mono,一个开源项目,能使.NET能在您的Linux操作系统上运行。

如果你和我一样,既用Microsoft的技术工作,也喜欢用Linux工作,那么这个Mono就能帮助你我,你可以在这两个平台上都可以写C#程序。

到https://www.sodocs.net/doc/024373263.html, 下载Mono的最新安装包。我看了一下,在我写这篇文章时,该官方网上最新的Stable版本时Mono 1.1.13.8 。

在安装Mono前,你必须确定你是否有GIMP Toolkit,Drawing Kit和pkg-config。你可以在https://www.sodocs.net/doc/024373263.html,上下载它们。建议下载最新的版本,如果你的Linux上原有了这些软件,你也可能需要升级它们。

下面安装这些软件:

# rpm -Uvh glib2-2.0.0-1.i386.rpm
# rpm -Uvh glib2-devel-2.0.0-1.i386.rpm
# rpm -Uvh pkgconfig-0.12.0-1.i386.rpm

接下来就是解压Mono:

# tar -zxvf mono-1.1.13.8.tar.gz

接下来:

# ./configure
# make
# make install

当上面的都完成后,你的Linux系统就有了一个可以工作的Mono,它包括了Mono的C#编译器,Mono的即时编译器和mint(The Mono interpreter)。下面就可以写C#程序了。比如,嘿嘿,写个最有名的Hellow World程序:

class Hello {
static void Main() {
System.Console.WriteLine("Hello World");
}
}

呵呵,果然是经典。C#程序必须以.cs做后缀名。输入程序并保存它,比如保存为HelloWorld.cs然后编译它:

# mcs Hello.cs

如果你写的程序都正确,那么这个命令会生成一个名叫HelloWorld.exe的MSIL文件,然后你就可以使用这个文件:

# mint HelloWorld.exe
Hello World

mint interprter有很多可以选择的命令包括 --trace 和 --debug,这些对调试很有作用。当你的程序已经完成了,你可以在JIT编译器上编译了:


# mono HelloWorld.exe
Hello World

公共语言运行库提供了跨平台的能力。.NET程序可以在任何安装了CLR的系统上运行。实际上,Mono的C#编译器是在Windows平台上用 Microsoft .NET Framework SDK编译后再移到Linux平台上的。你可以把在Windows平台上编译好的程序转到Linux上并运行它。

Mono还没有完全实现.NET Framework,但已经足够让你运行你想写的程序了。开源的东西一般进化速度很快,也许很快就能完全满足你的需求。

顺便提一下,在https://www.sodocs.net/doc/024373263.html,上有个Gtk# 项目,它致力于给C#语言绑定gtk+ toolkit。它同时也致力于在Mono下提供和Windows.Forms兼容的库。当然,从Windows迁移到Linux毕竟是有困难的,让我们关注它的进展吧。

//---
可能是编码的问题吧
win用GB2312汉子编码
linux用utf-8

赞同
0
| 评论(2)
2011-12-5 14:41 yeboymct | 二级

vi进入/etc/sysconfig/i18n
添加一条LANG=“zh_CN.GB-18030”

赞同
0
| 评论(1)
2011-12-5 17:46 yaoxing25 | 二级

可以通过设置语言环境变更实现中文显示
export LANG=zh_CN.GBK
这个是显示中文的设置。

//---
https://www.sodocs.net/doc/024373263.html,/articles/116249.htm
图解Linux下如何搭建C#开发环境

ugmbbc发布于 2010-07-13


//---
https://www.sodocs.net/doc/024373263.html,/f?kw=%C1%F5%C8%F1%BA%C6
OPENGL
//
https://www.sodocs.net/doc/024373263.html,/linux/system/31326.html
解决Linux下 Wine 中文对话框字体乱码的问题
时间:2010-11-10 16:08 来源:https://www.sodocs.net/doc/024373263.html, 作者: 点击:8次
Wine中中文存在很多的乱码,显示成 ??等,这是对对话框中"确定"等的解决: Wine中对话框默认的字体是Tahoma,在我们的LINUX上,Tahoma字体是无法正常显示中文的。比如Wine configuration中的"确定""取消"等就变成了"<<"">>"的字样。 解决方法很简单:

Wine中中文存在很多的乱码,显示成<< >> ??等,这是对对话框中"确定"等的解决:

Wine中对话框默认的字体是Tahoma,在我们的LINUX上,Tahoma字体是无法正常显示中文的。比如Wine configuration中的"确定""取消"等就变成了"<<"">>"的字样。

解决方法很简单:

在wine的regedit中,找到:

\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes

方法1:直接地将这个键设为空,问题就解决了。

方法2:将MS Shell Dlg设置为一种自己字库中已有的中文字体即可,如果已经将windows中宋体取来使用了,字库中SimSun对应宋体(这是Windows的,LINUX下默认是没有的),在这里设置为 SimSun即可。


本文地址:https://www.sodocs.net/doc/024373263.html,/linux/system/31326.html
//---
https://www.sodocs.net/doc/024373263.html,/f?kz=591742454
★Linux下Wine使用心得
120.34.131.*

1楼

刚刚接触Linux,总会对Linux不熟悉,特别是在Linux下无法运行Windows下的exe文件最为烦恼。

许多人因为Linux不能运行 Windows软件而对Linux望而却步。这几天突发其想,寻找一个Linux软件能使Linux下运行exe文件,自然而然地找到了这个大名鼎鼎的 Wine。有了这个软件,你就可以在Linux下运行Windows大部分软件,甚至是游戏!

一. Wine简介

Wine解为 "Wine Is Not an Emulator",即Wine不是模拟器。虽然Wine有另一个非官方名称,"Windows Emulator",即窗口模拟器。Wine的正确名称是"Wine",不是全大写、全小写或大小写混合。Wine是一个在X和 UNIX之上的,Windows 3.x 和 Windows APIs的实现.它是一个Windows兼容层,用通俗的话说,就是一个Windows模拟器,这个层即提供了一个用来从Windows源进出到UNIX的开发工具包(Winelib),也提供了一个程序加载器,该加载器允许不用任何修改 Windows 3.1/95/NT的二进制文件,就可以运行在Intel Unix及其衍生版本下。Wine可以工作在绝大多数的UNIX版本下,包括 Linux, FreeBSD, 和 Solaris. Wine不需要Microsoft Windows, 因为这是一个完全由百分之百的免费代码组成的,可以选择的实现,但是它却可以随意地使用本地系统的DLLs,如果它们是可以被利用的话.Wine的发布是完全公开源代码的,并且是免费发行的。另一方面,计算机程序设计师能经由Wine的程序库将窗口的程序转移至类Unix操作系统中运行。也有不少软件经过WINE测试后发布,比如 Picasa,uTorrent,MediaCoder

//---
https://www.sodocs.net/doc/024373263.html,/stainboy/articles/create-csharp-winform-app-for-linux.html

随笔- 8 文章- 5 评论- 68
小试Linux下C#编程

接触Linux已经有一段日子了,从Debian的Ubuntu到Redhat的Fedora,再到SUSE,桌面从GNOME到KDE。感觉Linux还真是不错,桌面挺好看的,应用软件也挺多的。终于忍不住想要自己在Linux下写个小程序看看了。OK,有想法就能付诸实现,做个简单的WinForm程序吧,功能是使用调用远程天气预报WebService(https://www.sodocs.net/doc/024373263.html,/WebServices/WeatherWS.asmx?wsdl)。

写GUI程序得有一个现成的UI Framework,那么该用哪个呢?Google了一下,有很多答案,不过引起我注意的是Linux下面可以通过Mono运行时来跑.NET Framework的程序。这让我很惊讶,也很好奇。惊讶的是.NET Framework终于可以实现“跨平台”了,好奇的是效果怎么样,真的能用吗?于是使用VS2010 C#.NET创建WinForm工程,添加Web引用,写几行调用代码,华丽丽的完工。且看一下Windows上面的运行效果。

image

接着直接复制binary到Ubuntu下面,尝试运行。没成功,出错了。。。

image

原来是.NET Framework版本问题,VS2010默认是4.0。那么我试试2.0,再copy过去,打开,还是不行。。。

image

嗯。。。这次是System.Windows.Forms.dll没有找到。查了一下Mono的GAC,确实没有这个dll。不明白为什么没

有,Google一下,发现,原来mono-winform是一个额外的包。使用Sympatic Package Manager自动下载安装了如下包,终于可以运行了。

libgluezilla (version 2.4.3-2) will be installed
libmono-accessibility2.0-cil (version 2.4.4~svn151842-1ubuntu4) will be installed
libmono-webbrowser0.5-cil (version 2.4.4~svn151842-1ubuntu4) will be installed
libmono-winforms2.0-cil (version 2.4.4~svn151842-1ubuntu4) will be installed

image

乱码。。。不对,是框框码,不是乱码。再Google一下,完了,貌似没解决方案,除非把源码挪到Linux下面用mono msc编译,还得指定编译时-codepage:utf8。

文章就先写到这里,等我找到更好的解决办法时再更新此文,也请“知情人士”给出解决方案,谢谢。下次我会写一篇用C++开发同样功能的跨平台的小程序。
分类: .NET/Mono
标签: C#, mono, ubuntu
绿色通道:好文要顶关注我收藏该文与我联系
Miles Chen
关注 - 0
粉丝 - 9
+加关注
0
0
(请您对文章做出评价)
? 博主后一篇:小工具开发笔记—IE自动填表器—第一篇:你好,世界
posted @ 2010-08-25 23:34 Miles Chen 阅读(756) 评论(5) 编辑 收藏

评论
1944425
 回复 引用 查看
#1楼2010-10-08 13:56 | ixpqq
今天也是在Ubuntu下运行了一个在VS2010写的winForm程序。也是出现你这样的状况,在Google搜索,找到了你的日志。
也是没有解决,但是又找到一篇文章
https://www.sodocs.net/doc/024373263.html,/viewtopic.php?f=88&t=201283&start=0
说是字体的原因。把windows的宋体复制到Ubuntu ~/.fonts下然后
fc-cache -f一下。再运行还是不行。
后来在VS里面把字号改了一下,再编译就可以正常显示了。或者指定一个其他的字体,总之就是默认的不行。还没解决这个,,希望这个对你有用,并且能够找到进一步的解决。
 回复 引用 查看
#2楼2010-10-08 14:30 | ixpqq
继续实验,更改一下Form的字体就可以了,整个Form里面其他的控件中文都显示正常,也就是说,在窗体设计器生成的代码里面有
this.Font = new System.Drawing.Font("宋体", 7.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));

来指定一下字体就可以了,因为VS2010默认没有为控件指定字体。
现在看Form是没问题了,字体显示正常!
但是MessageBox代码显示对话框里面还是方框。期待解决办法。

System.Windows.Forms.MessageBox.Show("汉字");
还是不行,用Mono在Linux下编译都不行。顽强的显示方框。
//
评论
1944425
 回复 引用 查看
#1楼2010-10-08 13:56 | ixpqq
今天也是在Ubuntu下运行了一个在VS2010写的winForm程序。也是出现你这样的状况,在Google搜索,找到了你的日志。
也是没有解决,但是又找到一篇文章
https://www.sodocs.net/doc/024373263.html,/viewtopic.p

hp?f=88&t=201283&start=0
说是字体的原因。把windows的宋体复制到Ubuntu ~/.fonts下然后
fc-cache -f一下。再运行还是不行。
后来在VS里面把字号改了一下,再编译就可以正常显示了。或者指定一个其他的字体,总之就是默认的不行。还没解决这个,,希望这个对你有用,并且能够找到进一步的解决。
 回复 引用 查看
#2楼2010-10-08 14:30 | ixpqq
继续实验,更改一下Form的字体就可以了,整个Form里面其他的控件中文都显示正常,也就是说,在窗体设计器生成的代码里面有
this.Font = new System.Drawing.Font("宋体", 7.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));

来指定一下字体就可以了,因为VS2010默认没有为控件指定字体。
现在看Form是没问题了,字体显示正常!
但是MessageBox代码显示对话框里面还是方框。期待解决办法。

System.Windows.Forms.MessageBox.Show("汉字");
还是不行,用Mono在Linux下编译都不行。顽强的显示方框。
 回复 引用 查看
#3楼[楼主]2010-10-08 15:52 | Miles Chen
引用ixpqq:
继续实验,更改一下Form的字体就可以了,整个Form里面其他的控件中文都显示正常,也就是说,在窗体设计器生成的代码里面有
this.Font = new System.Drawing.Font("宋体", 7.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));

来指定一下字体就可以了,因为VS2010默认没有为控件指定字体。
现在看Form是没问题了,字体显示正常!
但是MessageBox代码显示对话框里面还是方框。期待解决办法。

System.Windows.Forms.MessageBox.Show("汉字");
还是不行,用Mono在Linux下编译都不行。顽强的显示方框。

很高兴看到有人对这个领域感兴趣:)
据我所知,WinForm并不是一个理想的跨平台框架技术。事实上,Linux上开发GUI程序更多的使用GTK,wxWidget或者QT。此三者都是可以跨Windows/Linux/Mac平台的,甚至某些移动平台。
对于熟悉C#的程序员来说,GTK#也许是一个不错的选择,简单易用,所见即所得,MonoDevelop好像默认会安装这个。

相关主题