当前位置: 首页 > 编程笔记 >

在Linux上运行C#的方法

齐奕
2023-03-14
本文向大家介绍在Linux上运行C#的方法,包括了在Linux上运行C#的方法的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了在Linux上运行C#的方法。分享给大家供大家参考。具体方法如下:

在任何一个平台(操作系统+硬件体系)上,编写和运行程序的三个最根本的需求是库、编译器/解释器、运行环境。库以类和方法(函数)的形式提供常用的例程,简化大型程序的编写。.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的友好程度等。

希望本文所述对大家的C#程序设计有所帮助。

 类似资料:
  • 问题内容: 我如何在Linux终端上执行C#代码作为Shell脚本。 我有以下示例代码: 当我运行shell bash时,我使用。使用C#怎么做? 问题答案: 该(hashbang)标签是用来告诉使用哪种解释让你的Perl,PHP,庆典,SH等脚本将正确运行shell。 但是C#不是脚本语言,它旨在被编译成可执行格式。如果要使用C#,则至少需要安装编译器和运行时,最好是安装IDE(集成开发环境)来

  • 问题内容: 我有一个正在Linux上运行的C ++应用程序,我正在对其进行优化。如何确定我的代码哪些区域运行缓慢? 问题答案: 如果您的目标是使用探查器,请使用建议的探查器之一。 但是,如果您急于在主观上很慢的情况下在调试器下手动中断程序,则有一种简单的方法可以查找性能问题。 暂停几次,每次查看调用堆栈。如果有一些代码浪费了一定百分比的时间(20%或50%或其他),那么这就是您在每次采样时都将其捕

  • 问题内容: 在ServiceStack网站上列出,它表明ServiceStack可以在Mono上运行,并且可以: XSP mod_mono FastCgi 安慰 这些不同的配置是什么?Mono上的Web Services首选哪种配置? 问题答案: Linux更新 从v4.5.2版本开始, ServiceStack现在支持.NET Core,它比Mono有了显着的性能和稳定性改进,Mono是从共享的

  • 如何在linux命令行中从maven命令运行文件?

  • 问题内容: 您知道在Linux下运行C#项目的任何方法吗?是否有任何框架或库? 问题答案: 您正在寻找Mono项目 -.NET Framework和CLR的跨平台(但主要针对Linux)实现。它能够运行为CLR(MS .NET)编译的二进制文件,或创建自己的本机Linux二进制文件。 该项目已经进行了一段时间,即使是用于生产目的,它的当前版本(2.4)也非常有用。有关当前和将来版本的主要功能和里程

  • 问题内容: 我正在尝试运行从未知来源的C代码编译的程序。我想确保该程序无论如何都不会损害我的系统。例如,该程序可能在源代码中有类似东西,除非对代码进行彻底检查,否则无法检测到。 我想到了以下两种方法 在VMWare之类的VM中运行它 在Linux上构建Windows exe并在wine上运行 两者都不是很好的解决方案,我无法实现它们的自动化。并且在1的情况下可能会损坏VM。 任何帮助,将不胜感激。

  • 本文向大家介绍在Windows 10上原生运行Linux,包括了在Windows 10上原生运行Linux的使用技巧和注意事项,需要的朋友参考一下 微软已经推出了适用于Linux的WSL子系统,它使用户可以直接从Windows 10运行自己喜欢的Linux发行版,而无需双启动或使用虚拟机。 适用于Linux的Windows子系统的局限性 尽管这是朝Microsoft正确方向迈出的一步,但就完整功能

  • 我刚刚下载了用于Linux的nifi-0.5.1。 我很感激你的帮助,