任何c#应用程序都可以在linux上运行吗[重复]

Posted

技术标签:

【中文标题】任何c#应用程序都可以在linux上运行吗[重复]【英文标题】:Can any c# application be run on linux [duplicate] 【发布时间】:2015-11-23 16:41:05 【问题描述】:

我正在用 C# 开发游戏服务器。服务器通过套接字与客户端对话,并使用自定义数据包协议发送 byte[]。 问题是,这个软件是特定于 Windows 操作系统的,还是能够在 linux 服务器上运行。我在不同的论坛上读过不同的帖子,其中开发人员说他们的服务器只有 Windows 操作系统,有人说它可以在 linux 上运行。

有什么具体的因素吗? 是否必须专门编写应用程序才能在 linux 上运行?

【问题讨论】:

取决于你是在 Mono 还是 .NET Core 上运行它。有些事情没有实现,但大多数是 假设您已经搜索过bing.com/search?q=c%23+run+on+linux 之类的内容,目前尚不清楚您的帖子与该主题的一些现有问题有何不同。有了更多细节,这个问题很可能不再重复。 【参考方案1】:

2020 年更新

.NET Core 和 .NET Framework 正在合并到“.NET 5”中。出于所有意图和目的,这只是 .NET Core 的下一个版本(并且 .NET Framework 即将消失)。

WPF 仍然只能在 Windows 上运行(尽管基于 XAML 的通用 UI 系统正在开发中),即使它在 .NET Core/5 上运行,您仍然必须专门为 Linux 构建支持的项目类型,但是交叉平台支持比我最初写这篇文章的时候好多了。

原创

要使 .NET 代码能够在 Linux 上运行,您需要一个与该平台兼容的 .NET 版本。

完整的 .NET 仅适用于 Windows,但有在 Linux 上运行的 Mono 框架。 .NET Core 也正在移植到 linux。

Mono 或 .NET Core 都不支持完整的标准 .NET。例如,两者都不会让您运行 WPF 应用程序。只要您的代码与上述框架之一兼容;是的,你可以在 Linux 上运行它。

对于您的具体示例,应该支持您提到的类,我认为您在 Mono 或 .NET Core 下运行不会有任何问题。

【讨论】:

Mono 已经支持近 99.9% 的 .net 框架,通常任何 c# 服务或控制台应用程序都可以工作,即使针对 .net 而不是针对 mono 进行编译。 @Gusman 没错,不起作用最简单的例子是 WPF(有一些 .NET 4.5 类的 IIRC 不太好)。跨度> 因为我说的是控制台或服务 :D,接口只是缺乏,因为它非常特定于操作系统。是的,我喜欢 Mono XD @PhilippeHaussmann 我很清楚这些差异。正如你所说,风景已经改变。我已经为这个答案的未来观众写了一个更新。 @mLstudent33 更新就在这里。我在发表评论时编辑了这篇文章

以上是关于任何c#应用程序都可以在linux上运行吗[重复]的主要内容,如果未能解决你的问题,请参考以下文章

我可以从 c# 表单运行 windows 命令吗? [复制]

任何人都可以为Windows推荐磁盘I / O基准测试软件吗?

C#,Winform - 创建 PDF [重复]

C# 重复文本到语音合成

C# 新手,任何人都可以向我解释枚举和设置变量的工作原理吗? [关闭]

Linux-我可以在aarch64体系结构上运行arm64二进制文件吗?