如何在Linux下运行C#项目

你知道在Linux下运行C#项目的方法吗? 有没有framewoks或图书馆呢?

您正在寻找Mono Project–一个跨平台(但主要针对Linux)的.NET Framework和CLR实现。 它能够运行为CLR(MS .NET)编译的二进制文件,或创建自己的本机Linux二进制文件。

该项目已经有一段时间了,目前的版本(2.4)是非常有用的,即使在生产目的 。 有关当前版本和未来版本的主要功能和里程碑的详细信息,请参阅项目路线图 。

有关当前状态的详细信息:

除了一些.NET 3.0 / 3.5的东西,比如WPF(目前支持的最小支持)和WCF(几乎不存在的支持)之外,绝大多数的BCL(基类库)都可以在Mono中使用。 然而,Silverlight 2.0正在通过Moonlight项目得到支持,并且进展顺利。 据我所知,WinForms功能(使用GTK#作为后端)是相当完整的。

C#3.0语言的实现已经完成,其中包括C#3.0特性,如lambda表达式LINQ自动属性 。 我相信C#编译器已经很成熟了,它的效率至少可以和MS编译器相媲美,尽管在某些方面还没有和它匹配。 Mono C#编译器相当酷(也是独一无二的)是现在提供了一个编译器服务 – 换句话说就是从代码(不使用CodeDOM)进行真正的动态编译。 这是MS可能只会在.NET 5.0中添加的东西。

像其他人已经说过的,你可以在Mono上运行.NET应用程序。 如果您的应用程序使用平台调用(P / Invoke)来调用本地代码,那么如果本地库没有Mono实现,则可能会遇到一些麻烦。 要检查您的应用程序是否执行此操作(或使用尚未在Mono中实现的API),可以使用Mono Migration Analyzer(MoMA) 。