在Linux上运行C#和.NET

Ubuntu22.04 Mono C# gtk 编程习练笔记(一) 另外,Mono相对于DOTNET来说要轻量许多,它们有着不同的定位,未来C# xamarin.forms定位在移动设备,现在Mono的CLR已经在AndroidIOS上支撑C#程序运行了。如果让三个widget占满各自的空间,则在相应widget的属性中去掉autosize的勾,改勾选expand让它变宽,改fill让它变胖,控件就随vbox满空间变化了。类似Visual Studio,源代码设计器在底部上方可选,右边的工具箱点击打开,gtk的插件就都出来了,设计器看上去很精巧。 阅读详情

众所周知,C#是Microsoft推出的.NET语言,只能在.NET平台上运行,例如Windows 9x/Me/NT/2000/XP和Windows CE之类的操作系统。但是,现在却有了一个叫做Mono的项目,它的目标就是把.NET及其编程语言移植到非Windows的平台上。目前,C#是惟一被移植到非Windows平台的.NET语言。

在任何一个平台(操作系统+硬件体系)上,编写和运行程序的三个最根本的需求是库、编译器/解释器、运行环境。库以类和方法(函数)的形式提供常用的例程,简化大型程序的编写。.NET框架也不例外,包含了许多类库。另外,把程序转换成可执行形式,并且运行执行文件时,编译器和运行环境是必不可少的。Mono软件包包含了.NET类库的一部分、一个C#编译器和.NET运行环境CLR(Common Language Runtime,公共语言运行时环境)。

Mono声称支持Linux、Solaris、FreeBSD和Windows。除了Intel x86系列的CPU(486及各类Pentium等)之外,它还要支持Sparc、PowerPC和StrongArm处理器。

下面就来看看如何在Linux上运行Mono。

 

命令行应用

首先从Mono主页http://www.go-mono.com/下载软件。然后,执行下面的命令,安装所有RPM:

     # rpm -ivh *.rpm

安装完成后,所有基本的动态执行库,包括System.Data.dll、System.dll、System.Drawing.dll、System.Web.dll和System.Xml.dll都被复制到/usr/lib下。接下来,在Linux文本编辑器中输入下面的内容,把文件保存为HelloMono.cs:

     class HelloMono{public static void Main(string[ ] args){ System.Console.WriteLine(“Hello Mono”);}}

执行下面的命令编译C#文件:

     # mcs HelloMono.cs

mcs是Mono的C#命令行编译器。与MS .NET SDK的csc编译器相似,mcs也有很多命令行选项。上面的命令将生成可执行文件HelloMono.exe。注意,这个执行文件不是Linux执行文件,而是一个.NET执行文件,或者说这个文件的可执行代码形式是中间语言(IL,Intermediate Language)。要运行这个执行文件,必须执行如下命令:

     # mono HelloMono.exe

Linux控制台上将显示出“Hello Mono”。关于mcs和Mono的更多说明,请执行man mcs或man mono参考其man文档。

 

GUI应用

Mono不支持Windows Forms,但在C#编程中可用GTK #编写GUI。GTK #是GTK+图形库的C#支持工具,可从http://gtk-sharp.sourceforge.Net/下载。下载完成后,先要安装RPM:

     # rpm -Uvh *.rpm --nodeps

解开gtk-sharp-0.2.1.tar.gz:

     # tar zxvf gtk-sharp-0.2.1.tar.gz

进入子目录gtk-sharp-0.2.1,执行:

     # ./configure --prefix=/usr# make?# make install

完成这一步骤之后,重新启动一次。与GTK#有关的所有动态代码模块(gtk-sharp.dll、atk-sharp.dll、gdk-sharp.dll、glib-sharp.dll以及pango-sharp.dll)都会被复制到/usr/lib目录。编译用GTK#制作GUI的C#程序时,必须通过-r参数引用它们。GTK#下载包中包含了几个示例程序,如HelloWorld.cs、Menu.cs、ButtonApp.cs等。编译这些文件的命令如下:

     # mcs -r gtk-sharp -r glib-sharp HelloWorld.cs# mcs -r gtk-sharp -r glib-sharp -r System.Drawing Menu.cs# mcs -r gtk-sharp -r glib-sharp -r System.Drawing ButtonApp.cs

下面来看看如何通过-r选项引用前面各个.dll动态模块。执行startx命令启动X-Window,进入终端窗口,再进入示例程序所在目录,执行下面的命令分别运行各个程序:

     # mono HelloWorld.exe# mono Menu.exe# mono ButtonApp.exe

Mono项目还在完善和发展之中,目前还没有移植好全部.NET类。但不管怎样,它对许多人来说将是一个好消息。有关Mono C#类库移植进展的信息,请访问www.go-mono.com/class-status.html。

考虑一个典型的服务器/客户机式.NET应用:最终用户只与客户端打交道,客户端最好是方便的GUI应用,许多人还会希望使用熟悉的Windows平台。但是,对于用户来说,服务器端使用Windows还是Linux完全无关。所以,服务器端可以用带有Mono的Linux构造,节省了配备专用Windows服务器的投资。Mono也将为应用迁移带来方便。如果Mono能够顺利发展,Windows开发者也将能够为Linux或其它非Windows平台开发应用。如果这样的话,不久之后出现一个类似Visual Studio .NET但免费或廉价的Linux开发IDE也说不定。

然而,所有这一切是否能够成为现实依赖于Mono是否能够茁壮发展,也依赖于Mono与Windows平台上的.NET框架兼容或相似程度。另外一些因素也很关键,例如Mono的性能、GUI的友好程度等。 

Linux系统下用.net core编写c#程序 听说微软新出的 .net core 是全平台支持,手上刚好只有个Ubuntu系统的电脑,就试了一下。 1.安装 .net core 下面网站有完整的安装过程,就是网速有点慢。 https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-package-manager-ubuntu-1910 我对. net 协议不太了解大概说一下 .net ... 阅读详情

相关推荐

Linux运行 C#

        C#是Microsoft推出的.NET语言,只能在.NET平台上运行,例如Win 9x、ME、NT、2000、XPWin CE之类的操作系统。但是,现在却有了一个叫做Mono的项目,它的目标就是把.NET及其编程语言移植到非Windows的平台上。现在,C#是唯一被移植到非Windows平台的.NET语言。          在任何一个平台(操作系统+硬件体系)上,编写运行程序

ZCatLinux --资讯与技术社区--Open Source World----Linux/Shell/DevOPS-- 1573

c#使用gtk编写图形界面

c#使用gtk编写图形界面

C# .NET Core发布linux64位系统

(1)创建一个.NET Core工程 (2)创建成功后,右键解决方案,选择发布,会看到如下图: 选择发布到文件夹 (3)选择完成 (4)选择编辑release,将部署模式改为独立,目标运行改为Linux-x64 (5)选择发布,在发布路径中看到publish文件,将此文件拷贝到linux64系统中,root权限./工程名即可运行 ...

wang_h_b的博客 1429

C# WinForm软件在Linux上的移植秘籍:使用GTK开发System.Windows.Forms .NET

要成功移植应用程序,我们需要设置合适的开发环境,替换System.Windows.Forms .NET的控件功能,重新设计用户界面,调整事件处理程序,并根据需要修改其他代码。而System.Windows.Forms .NET是微软提供的用于Windows应用程序开发的框架,它提供了一套丰富的GUI控件事件模型,简化了Windows应用程序的开发过程。安装完成后,我们可以在项目中引用gtk-sharp库,并使用GTK#的控件功能来替换System.Windows.Forms .NET的控件功能。

CodeBandit的博客 4047

.NET Core 跨平台 GUI 开发】第一篇:编写你的第一个 Gtk# 应用

本文是【.NET Core 跨平台 GUI 开发】系列博文的第一篇。该系列博文是一个关于 Gtk# 跨平台应用开发的初级随笔集合。该随笔集合介绍了 GTK Gtk# 的基本信息以及开发方法,并展示了如何使用 .NET Core 技术栈开发基于 Gtk# 的跨平台 GUI 程序。 博文假设你已经对 C# 有一定的了解且熟悉事件驱动,所使用的电脑中已经安装好了 Visual Studio 以及 .NET Core 开发环境。如果你熟悉 WinForm 应用程序的开发,那么你将轻松不少。 1、GTK

精通电脑科技的博客 5054

Ubuntu22.04 Mono C# gtk 编程习练笔记(三)

Mono对gtk做了很努力的封装,即便如此仍然与System.Windows.Form中的控件操作方法有许多差异,这是gtk本身特性或称为特色决定的。下面是gtk常用控件在Mono C#中的一些用法。

weixin_45707491的博客 1629

c# 基于.net core 跨平台(linux运行)

1、linux下安装 dotnetlinux终端输入: sudo apt-get install dotnet-sdk-8.0。VisualStudio 新建c#项目,选择控制台应用,可在windowslinux 运行。终端中输入 dotnet xxx.dll。将工程移动到linux中,内容如下。3、.dll在linux运行

zhaopan0304的博客 972

c# 写的程序可以在linux运行

dll.exe总之,虽然有一些额外的步骤注意事项,但 C# 程序确实可以在 Linux运行

xie__jin__cheng的博客 4650

winform在linux运行,c# – 在CentOS或Linux上使用Mono执行.Net应用程序

我在Visual Studio 2010上使用C#.Net中的WinForm开发了一个测试应用程序.现在,我想在Linux下使用Mono在CentOS上运行.所以我尝试了下面的命令序列 –[root@localhost TestLinux]# /usr/bin/mono ./Test.exe我遇到了一个例外Unhandled Exception: System.TypeInitializatio...

weixin_42659252的博客 2707

.net只能在linux运行吗,[转]在Linux运行C#.NET

命令行应用 # rpm -ivh *.rpm class HelloMono { public static void Main(string[ ] args) { System.Console.WriteLine(“Hello Mono”); } } # mcs HelloMono.cs # mono HelloMono.exeGUI应用Mono不支持Windows Forms,但在C#编程中可...

weixin_31864641的博客 125

Linux中安装C#.net,创建运行后端或控制台项目

Linux中安装C#.net,创建运行后端或控制台项目

花开莫与流年错_的博客 692

c#如何在linux运行程序,在Linux运行C#

众所周知,C#是Microsoft推出的.NET语言,只能在.NET平台上运行,例如Win 9x、ME、NT、2000、XPWin CE之类的操作系统。但是,现在却有了一个叫做Mono的项目,它的目标就是把.NET及其编程语言移植到非Windows的平台上。现在,C#是唯一被移植到非Windows平台的.NET语言。在任何一个平台(操作系统+硬件体系)上,编写运行程序的三个最根本的需求是库、编...

weixin_33298963的博客 3325

linux 运行.net dll文件,C#:在Linux上的.NET Core中引用或使用.so文件

我们在.NET框架上有一个项目引用了Fico Xpress解算器dll。所需的dll是-Xprb.dllXprbdn.dllXprsdn.dll由于没有可用于使用Fico Xpress解算器的nuget包,我们安装了Fico Xpress解算器,并将这些dll从安装目录复制到项目文件夹中名为lib的本地文件夹中,并在lib文件夹中添加了对这些dll的路径引用。因此,在编译时,项目使用这些dll(位...

weixin_30915399的博客 2980

.net程序如何打开 linux,如何在c# .NET中編寫程序,在Linux/Wine/Mono上運行它們?

In this particular case I need to run .complicated NET application for Linux. By complicated i mean - that project was developed for 3 years and i don't want to write it again in java or something els...

weixin_33736386的博客 304

linux 运行c# 环境搭建

linux平台上搭建C#开发环境

feichangyanse的博客 984

C#快入教程:Linux安装.NET

本文介绍在Ubuntu系统中安装.NET8 SDK的步骤:首先通过命令行更新包列表并安装dotnet-sdk-8.0;安装完成后输入dotnet --version验证版本号;随后演示如何在VSCode中创建C#控制台项目(MyApp),包括项目编译运行,最终输出"Hello, World!"。该教程提供了从环境搭建到项目运行的完整流程,但注明内容仅供参考,不保证完全正确。

weixin_47378963的博客 682
上一篇: 最快获取 Mono
下一篇: Mono 1.1.5发布
wwsh
博客等级 码龄23年 2粉丝 2原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值