繁体   English   中英

如何在Linux下运行C#项目

[英]How to run C# project under Linux

你知道在Linux下运行C#项目的任何方法吗? 是否有任何framewoks或库?

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

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

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

绝大多数BCL(基类库)都可以在Mono上使用,但一些.NET 3.0 / 3.5的东西除外,例如WPF(目前支持最少)和WCF(几乎不存在支持)。 然而,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)

对于那些在2016年之后遇到这个问题的人 ,可以使用.NET Core - 一个由Microsoft和.NET社区在GitHub上维护的开源,通用开发平台。 它是跨平台的(支持Windows,macOS和Linux),可用于构建设备,云和物联网应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM