在这种特殊情况下,我需要为 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/Compatibility和 MoMA(mono migration analyzer)是一种工具,可以扫描任何已创建的 .NET 应用程序,以查看其是否兼容部署在 Linux 上。
关于c# - 如何用 C# .NET 编写程序,在 Linux/Wine/Mono 上运行它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13103360/