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

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

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

Mono声称支持Linux、Solaris、Free BSD和MS 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的友好程度等。

【无私分享:ASP.NET CORE 项目实战(第十章)】发布项目到 Linux 上运行 Core 项目

目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 ASP.Net Core 给我们带来的最大的亮点就是跨平台,我在我电脑(win7)上用虚拟机建了个 CentOS7 ,来演示下 ...

不装mono,你的.NET程序照样可以在Linux上运行!

让.NET应用程序在linux上运行,目前通用的做法就是在Linux上安装mono,然后通过”mono your.exe“命令运行这个程序. 这种运行.net程序的办法有两个弱点,一个是需要客户机安装 ...

Wine——在Linux上运行Windows软件

官网:https://www.winehq.org/ 参考: wikipedia 教你使用Wine在Linux上运行Windows软件 如何安装和使用Wine,以便在Linux上运行Windows应用 ...

发布项目到 Linux 上运行 Core 项目

发布项目到 Linux 上运行 Core 项目 目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 ASP.Net Core 给我们带来的最大的亮点就是跨平台,我在我电脑(win ...

Docker在Linux上运行NetCore系列(一)配置运行DotNetCore控制台

转发请注明此文章作者与路径,请尊重原著,违者必究. 系列文章:https://www.cnblogs.com/alunchen/p/10121379.html 本篇文章操作系统信息 Linux:ubu ...

jmeter操作数据库,分布式,在Linux上运行

jmeter操作数据库: 1.在测试计划中导入数据库jar包 2.添加链接数据库信息 3.mysql:jdc:mysql://192.168.1.116:3307/bugfree?allowMulti ...

.netcore 在linux 上运行 Helllo World 例子

要想在linux上运行netcore ,需要在linux 安装netcore SKD 下面分两步完成, 首先我的操作系统是 Ubuntu 14.04 ,不同版本可以参考 官网给出的连接 https:/ ...

开始使用 Docker (Linux 上运行 SQL Server) 上的 SQL Server 容器 - SQL Server | Microsoft Docs

原文:开始使用 Docker (Linux 上运行 SQL Server) 上的 SQL Server 容器 - SQL Server | Microsoft Docs 快速入门:使用 Docker ...

linux上运行jmeter-server失败

1. 在linux上运行jmeter-server报如下错误 处理办法: 通过如下命令运行 ./jmeter-server -Djava.rmi.server.hostname=192.168.16. ...

随机推荐

Cloud Computing Deployment Models

Cloud computing can broadly be broken down into three main categories based on the deployment model. ...

关于C51内的code,idata,xdata

从数据存储类型来说,8051系列有片内.片外程序存储器,片内.片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code.data.xdata.idata以及根据51系列特点而设定的 ...

Jquery 分页插件 Jquery Pagination

Jquery 分页插件 Jquery Pagination 分页插件来说,我觉得适用就行,尽量简单然后能够根据不同的应用场景能够换肤.展现形式等. 对于初学者想写分页插件的同学,也可以看下源码,代码也 ...

VB中的冒号——bug

关于VB中的冒号,给许多人的印象都是:“一行可书写几句语句”.这么说是对的,但是有一种情况是不对的,那就是在条件语句中.这也是做一个VB项目升级的时候遇到,因为这个问题我查了好长时间程序,一直在找VB ...

truecrype加密卷的使用

truecrype7.1 文件加密 隐藏加密 密钥加密码双重保护

三、putty工具常见设置

转载自:https://www.cnblogs.com/hdk1993/p/4769072.html Putty是一个免费小巧的Win32平台下的telnet,rlogin和ssh客户端. 它的主程序 ...

问题描述: fatal error: 'XCTest/XCTest.h' file not found

#import 解决方法:在报错的Target中的Building settings中FRAMEWORK_SEARCH_PATHS添加$(PLATFORM_DIR)/Developer/Library ...

Biology(湖南集训)

题目大意:n个字符串,m个操作,可以插入字符串,也可以询问某T个字符串的最长后缀 题解:Trie+lca Trie树的插入与查询操作.把字符串反转就相当于求公共前缀. lca的深度就是公共前缀的长度. ...

mysqli函数库的使用

综述 1.什么是mysqli PHP-MySQL 函数库是 PHP 操作 MySQL 资料库最原始的扩展库,PHP-MySQLi 的 i 代表 Improvement ,相当于前者的增强版,也包含了相 ...

CSS——盒子模型

一.盒子模型: 模型如下: 如图:盒子模型包括:margin.padding.border.content四部分. margin:外边距,透明,能够显示父级的背景颜色等.表示元素与元素之间的间隔或者说 ...

编写一个Linux桌面系统的程序 在本文中,我将为您介绍如何编写一个简单的Linux桌面系统程序。我们将使用C语言和GTK+库来创建一个基本的图形用户界面(GUI)应用程序。以下是一个示例程序,它创建一个窗口,并在窗口中显示一个标签和一个按钮。这只是一个简单的例子,您可以根据需要扩展和修改它。GTK+库提供了许多其他的控件和功能,您可以使用它们来创建更复杂的桌面应用程序。如果您对更深入的主题感兴趣,可以查阅相关文档和教程。首先,我们需要确保您的系统上已经安装了GTK+库。这将编译并运行我们的程序。您将看到一个带有标签和按钮的窗口。 阅读详情

相关推荐

Linux系统上使用C#编程的方法

Linux运行C#代码并不困难,只需要安装Mono框架并使用相应的命令进行编译和运行即可。在Linux系统上运行C#程序与在Windows系统上运行有所不同,因为C#主要是为Windows平台开发的。然而,通过使用适当的工具和技术,我们仍然可以在Linux上编写和运行C#代码。Mono是一个开源的、跨平台的.NET实现,它允许我们在Linux系统上运行C#代码。通过以上步骤,我们成功地在Linux系统上运行C#代码。当然,这只是一个简单的示例,你可以根据自己的需求编写更复杂的程序

. 3112

linux下安装运行C#程序环境】linux下安装运行C#(dotnet)程序环境

linux下安装完dotnet-sdk后打包好程序,可直接在liunx上运行C#程序。查找需要安装的dotnet-sdk版本。可点击链接找到自己需要的系统及版本。

Little_Matches的博客 5800

Linux平台上运行C#程序的方法

当然,这只是一个简单的示例。您可以使用.NET Core SDK开发更复杂的C#应用程序,并在Linux运行它们。请记住,有些Windows特定的功能可能无法在Linux上正常工作,因此在编写跨平台应用程序时要谨慎处理。首先,我们需要安装.NET Core SDK,这是一个跨平台的开发框架,用于在多个操作系统上运行C#程序。然而,在Linux运行C#程序也是完全可能的。本文将介绍如何在Linux操作系统上运行C#代码,并附上相应的源代码和描述。接下来,我们将创建一个简单的C#程序并在Linux运行

XisVisual_Basic的博客 2857

c#开发在linux环境下运行程序

c#开发在linux环境下运行程序

xie__jin__cheng的博客 1万+

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

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

xie__jin__cheng的博客 4650

Linux运行C#程序

在学习.NET框架中,发现是专用于Windows平台的框架,对于其他平台Microsoft提供了.NET。也就是说我们编写的C#程序可以在Linux运行,于是我就尝试在Linux中编写一个HelloWorld程序

weixin_52213705的博客 362

c#如何在linux运行程序,在Linux运行C#的方法是什么

Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。有时我们需要在Linux上编写程序,那么c#Linux中想要运行需要什么呢?这篇文章主要介绍了在Linux运行C#的方法,下面就来看看如何在Linux运行Mono。命令行应用先从Mono主页(http://www.go-mono.com/)下载软件,执行下面的命令安装所有RPM:复制代码 代码如下:rpm -...

weixin_33977645的博客 5696

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

易采站长站为您分析在Linux运行C#的方法,实例分析了Linux平台下Mono软件包的应用技巧,以及在此基础之上的C#运行方法,具有一定的参考借鉴价值,需要的朋友可以参考下本文实例讲述了在Linux运行C#的方法。。具体方法如下:在任何一个平台(操作系统+硬件体系)上,编写和运行程序的三个最根本的需求是库、编译器/解释器、运行环境。库以类和方法(函数)的形式提供常用的例程,简化大型程序的编写...

weixin_39933484的博客 2832

C#学习】在linux运行c#服务器程序

linux运行c#程序 linux 上没有 .net环境,无法直接运行c#程序,但可通过 anyexec 来执行c#程序。步骤如下: 注意:准备一台64位Linux服务器(目前只有64位的AnyExec) 1、下载 anyexec anyexec-1.2-linux_x64.tar,直接下载tar包,或者通过执行命令 wget http://linuxdot.net/down/anyexec-1.2-linux_x64.tar.gz 进行下载。 2、解压工具包:进入到工具包的位置,执行 tar -zx

weixin_35957645的博客 5569

C#程序linux环境运行

今晚花一些时间,总结net程序如何在linux环境运行的一些技术路线。NET Core 使用了 .NET Core Runtime,它可以在 Windows、Linux 和 macOS 等多个操作系统上运行。可以采用Visual Studio生成Linux版本的dll。在Linux系统中,需要安装dotnet的运行环境(sudo yum install dotnet-sdk-2.1)。最后通过dotnet xx.dll即可运行程序

htsitr2的专栏 5451

c# linux环境配置

C# 本质上是面向对象的语言。C# 程序在 .NET 上运行,而 .NET 是名为公共语言运行时 (CLR) 的虚执行系统和一组类库。如果要安装该运行时,建议安装 ASP.NET Core 运行时,因为它同时包括 .NET 和 ASP.NET Core 运行时。C# 设计中受版本控制加强直接影响的方面包括:单独的 virtual 和 override 修饰符,关于方法重载决策的规则,以及对显式接口成员声明的支持。通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。

The research on computer technolog 3055

C# Net6开发Linux守护进程(后台服务程序,类似Windows服务)案例

在使用net6开发Linux程序时,除了AspNet Core项目外,如果是开发的一个不带Web界面,只是后台运行的控制台程序的话,默认发布到Linux系统时,如果是以start-stop-daemon方式(守护进行方式)启动运行的话,默认是不行的,程序会自动终止,因为在Linux下dotnet程序运行是以会话的方式。那么要如何实现类似Windows服务的方式在后台运行。下面就介绍一下要点吧。1、在VS2022中新建控制台项目。 2、在项目的NuGet程序包中安装Microsoft.Extensions.H

分享技术,传播知识! 4386

C#Linux上的开发指南

本人才疏学浅,在此记录自己用C#Linux上开发的一点经验,写下这篇指南。(给想要在Linux上开发C#程序的朋友提供建议) 目前在Linux上跑的网站:http://douxiubar.com | http://douxiubar.com/AdminLogin/Index(MVC4+Dapper+Autofac)的一个作品 在Linux上开发建议上http://www.linux...

weixin_30954607的博客 1030

图解Linux下如何搭建C#开发环境

图解Linux下如何搭建C#开发环境,http://developer.51cto.com/art/201007/210577.htm

WYZSC的专栏 2855

C# 实现 Linux 视频聊天、远程桌面(源码)

前言之前文章有朋友在下载并了解了《C# 实现 Linux 视频会议(源码,支持信创环境,银河麒麟,统信UOS)》中提供的源码后,留言给我说,这个视频会议有点复杂了,代码比较多,看得有些费劲。问我能不能整个简单点的Demo,只要有视频聊天和远程桌面的功能就可以。于是,我就又写了一个Demo来供大家参考,它可以在Windows和Linux(包括国产OS,如银河麒麟、统信UOS、深度Deepin等)上运...

weixin_68436326的博客 1414

Linux上执行C#代码

Linux操作系统上,您可以使用Mono来执行C#代码。Mono是一个跨平台的开源实现,允许您在Linux上编写和运行C#应用程序。本文将介绍如何在Linux环境中执行C#代码,并提供一个简单的示例。在大多数Linux发行版上,可以使用包管理器来安装Mono。的命令行工具,用于编译C#代码。在Linux上,您需要使用C#编译器来编译C#代码。在Linux上执行C#代码需要安装Mono运行时环境,并使用。安装完成后,您就可以在Linux上执行C#代码了。您已经成功在Linux上执行了C#代码。

2301_78484069的博客 1817

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
上一篇: linux exec创建进程,LinuxC创建回收进程fork、exec、wait、waitpid函数的理解
下一篇: 惠普Linux系统启动光驱,HP ProLiant MicroServer Gen8使用Super GRUB2 Disk从TF卡启动光驱位安装的Debian 8.3...
曼谷二小姐
博客等级 码龄8年 22粉丝 80原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值