【发布时间】:2018-03-09 18:44:02
【问题描述】:
是否可以在 Linux 环境中运行 .net 应用程序?如果是,那怎么办? .net 框架的所有组件都可以在 Linux 上正常工作吗?
【问题讨论】:
-
这是 stackoverflow.com/questions/168170/… 的副本。答案通常是肯定的,但图书馆自然倾向于滞后。
-
我们如何在单声道上运行?
是否可以在 Linux 环境中运行 .net 应用程序?如果是,那怎么办? .net 框架的所有组件都可以在 Linux 上正常工作吗?
【问题讨论】:
请看Running .Net applications on Linux with Mono:
想象一下贵公司的命运 在你完成你的新 Linux 按时完成项目。你有一个优秀的团队 一流的开发人员,但他们是 所有.Net 程序员。你是做什么的 要去做?承认 Windows 是 比 Linux 更好?哭?辞职?不, 你要安装 Mono 并保存 世界!
【讨论】:
虽然有其他选择(我相信),但Mono 可能是您想要的。
它不支持 .NET 支持的所有功能,但有一个 compatibility tool 会为您检查。 (我不会盲目相信兼容性工具的结果是 100% 准确的,因为总会有一些偷偷摸摸的未知不兼容性,但这是一个非常好的开始。)
【讨论】:
随着技术的进步,旧问题的新答案。 您也可以考虑将您的应用程序作为 dotnet 核心应用程序运行。 相同的代码可以自然地与 MAC Windows 和 linX 一起使用 为您的操作系统和控制台类型下载 dotnet 运行时 .\yourapp.dll
【讨论】:
还有MainSoft 可以让您在Linux 上的J2EE 环境中运行。它基本上将 .NET 源代码编译成 Java 字节码。
【讨论】:
2018 的更新答案,Mono Project in Linux 的当前状态。
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 客户端:
【讨论】:
对于运行简单的 .net 应用程序,mono 是您选择的工具!我将它用于许多应用程序,并且没有出现重大故障。不过,我不建议开始在 Mono 上进行开发。我班上的一些人试图在 Linux 上用 mono 做 C#,但失败了。
当你做简单的事情时效果很好,但是当你去做更高级的事情时,比如使用 NHibernate 或类似的东西,它可能会让你失败。而且您会错过 .net 最好的东西 - 开发环境,因为一切都是由 Microsoft 提供的,所以一切都可以协同工作。
【讨论】: