一尘不染

如何在C#.NET中编写程序,以在Linux / Wine / Mono上运行它们?

linux

在这种情况下,我需要为Linux运行.complicated NET应用程序。 我的意思很复杂-
该项目开发了3年,我不想再用Java或其他东西编写它,而以后再开发并支持.NET和Java版本。

应用程序正在生成鼠标和键盘事件(通过winapi / dll导入)并使用串行端口。我也有几个延迟计时器-
用于串行端口通信(10-20毫秒,这里我不需要很大的精度)。

剩下的只是很多简单的代码,没有什么特别的,没有奇怪的控件,没有DirectX等。

我应该期待什么?这样行吗?

如果代码的某些部分失败-
我可以稍作更改,请在.net应用程序与Linux上的微型应用程序之间建立网络连接,我可以编写这些网络连接来发送鼠标和键盘事件或RS232通信。

另外,我想询问有关Wine和.NET的一般信息:

如何编写应在Linux / Wine / Mono上运行的.NET应用程序?

  • 哪个版本的框架?(1.x,2.0或我可以使用3.5吗?)
  • 我应该避免什么(从Windows dll导入?计时器?)

编辑/从评论中移出:

我几年前见过单声道,但那太可怕了。现在我看到它长大了,支持LINQ,线程和其他复杂功能。此外,现在的帮助看起来真的很严肃。我尚未接受答案,因为我看到人们仍在发布非常有用的链接。如果这个问题得到很多+1,我会重写它,也许这会对其他人有所帮助。

我希望这里有人在Linux上使用.NET有一些实践经验…


阅读 571

收藏
2020-06-03

共1个答案

一尘不染

您是否已在http://www.mono-project.com上阅读了有关Mono.NET的信息

它允许您编写适用于Linux的.NET应用程序,与Microsoft实施相比略有不同。我认为wine无法解决任何.NET组件。

之前只需阅读文档即可。

PS:这也为您提供了Mono和.NET之间的兼容性列表。http://www.mono-
project.com/Compatibility和MoMA(单迁移分析器)是一种工具,可以扫描任何已创建的.NET应用程序,以查看其是否兼容在Linux上部署。

2020-06-03