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

标签 c# .net linux mono wine

在这种特殊情况下,我需要为 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、Threading 和其他复杂的功能。另外现在帮助看起来真的很认真。我还没有接受答案,因为我看到人们仍在发布非常有用的链接。如果这个问题得到很多+1,我会重写它,也许这会对其他人有所帮助。

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

最佳答案

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

它允许您为 Linux 编写 .NET 应用程序,与 Microsoft 的实现略有不同。 我认为 wine 无法处理任何 .NET 组件。

只需阅读之前的文档,您就可以开始了。

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

关于c# - 如何用 C# .NET 编写程序,在 Linux/Wine/Mono 上运行它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13103360/

相关文章:

c# - 如何滚动到 GridView 中的选定行

c# - 从 C# 调用 C++ .dll 会引发运行时错误

c# - 确定将要在@RenderBody() 中呈现的 View

linux - 有条件地执行 .bashrc 命令

c# - SignalR 使用 GlobalHost.ConnectionManager.GetHubContext 从外部集线器调用客户端方法不起作用。但是从集线器内部调用确实

c# - C#中的字符串结尾

c# - 我可以从 Visual Studio Code 编译并运行 .NET MVC 5 项目吗?

c# - 如何捕获进程的标准输出/错误?

linux - 提取包含两种模式的线

c - 如何在 Linux 上使用 C 和 Mingw-GCC 使用正则表达式库?