如何在Linux环境下运行.NET应用程序?

17

是否可能在Linux环境下运行.NET应用程序? 如果是,怎么做? .NET框架的所有组件是否都能在Linux上正常工作?


3
这是 https://dev59.com/UUXRa4cB1Zd3GeqPrWef 的副本。答案通常是肯定的,但库自然倾向于滞后。 - Matthew Flaschen
http://en.wikipedia.org/wiki/DotGNU - Ilya Khaprov
我们如何在Mono上运行? - SANDEEP
6个回答

16
请看 使用Mono在Linux上运行.Net应用程序

想象一下,你的公司的命运寄托在你按时完成新的Linux项目上。你有一支出色的团队,但是他们都是.Net程序员。你该怎么办?承认Windows比Linux更好吗?哭泣?辞职?不,你将安装Mono并拯救这个世界!


1
链接似乎指向其他地方(因此,已损坏?),而评论是... - xCovelus
请您详细说明一下? - Ananthu K Kumar
1
上面的链接似乎重定向到一个名为“有关Code Red的文章正在侵入互联网”的两句话的文章,看起来相当无关紧要。我不是完全确定,但快速搜索后似乎这是更新后的链接: https://www.linux.com/news/running-net-applications-linux-mono/ - Kevin Foster

6

虽然有其他选择(我相信),但Mono可能是你想要的。

它并不支持.NET所支持的全部功能,但有一个兼容性工具可以为你检查。(我不会盲目相信兼容性工具的结果是100%准确的,因为总会有一些难以预料的不兼容性,但这是一个非常好的开始。)


2
“不要相信”是什么意思?Mono并非万能药,但在许多情况下显然很有用。 - Matthew Flaschen
@Matthew:你的评论可能更多地针对fm而非我的回答,但我的意思是我不会完全信任MoMA的结果。我会编辑回答以使其更加清晰明了。 - Jon Skeet
我的意思是,即使你认为你做得没错,它在第一次运行时注定会失败。就我个人而言,我经历过将.NET应用程序移植到Mono的痛苦,这并不是一件简单的事情,有些东西甚至不被支持或者不能按预期工作。我甚至不想谈论编译器(如果你在mono下编译它,情况会更糟)。 - dr. evil

5

随着技术的不断进步,这是一个关于旧问题的新答案。你也可以考虑将你的应用程序作为dotnet核心应用程序运行。相同的代码将在Mac、Windows和Linux上自然运行。下载适用于你的操作系统的dotnet运行时,在控制台上输入Dotnet .\yourapp.dll即可。


2

还有一个 MainSoft,它可以让你在Linux上运行J2EE环境。它基本上是将.NET源代码编译成Java字节码。


1

针对2018年,关于Linux中Mono项目的最新答案。

mono仓库存在于

Ubuntu
Debian
Raspbian
CentOS
Fedora
Docker

说明书建议安装mono-complete - 在Centos上,我还需要安装mono-basic才能让VB.NET工作。目前对于VB.NET的支持水平为:
default runtime: v4.0.30319

这已经足够好,可以运行需要 3.5 运行时的 VB.NET XML 客户端:

enter image description here


0

如果要运行简单的 .net 应用程序,mono 是您的选择工具!我已经在许多应用程序中使用过它,而且没有遇到什么大问题。不过,我不建议在 Mono 上开始开发。我的一些同学尝试在 Linux 上使用 mono 进行 C# 开发,但是失败了。

当您做简单的东西时,它表现得很好,但是当您涉及到更高级的操作,比如使用 NHibernate 或者类似的东西时,它可能会失灵。您将错过 .net 的最佳部分 - 开发环境以及因为一切都是由 Microsoft 提供的,所以一切都可以协同工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接