在这种特殊的情况下,我需要在Linux上运行.complicated NET应用程序。我指的是复杂的--那个项目开发了3年,我不想再用java或其他东西写它,然后开发并支持这两个版本,.NET和Java版本。
应用程序正在生成鼠标和键盘事件(通过winapi/dll导入)并使用串行端口。我也有一些用于延迟的计时器-用于串口通信(10-20毫秒,这里我不需要很大的精度)。
剩下的只是一些简单的代码,没有什么特别的,没有奇怪的控件,没有directx等等。
我应该期待什么呢?这样行得通吗?
如果代码的某一部分会失败-我可以稍微修改一下,在.net应用程序和linux上的小应用程序之间建立网络连接,我可以编写它来发送鼠标和键盘事件,或者RS232通信。
另外,我想问一下葡萄酒和.NET的一般情况:
如何编写应该在Linux/Wine上运行的.NET应用程序?
从评论编辑/移动:
我几年前见过mono,但它太可怕了。现在我看到了它的成长,支持LINQ,线程和其他复杂的功能。此外,现在的帮助看起来真的很严重。我还没有接受答案,因为我看到人们仍然张贴非常有用的链接。如果这个问题得到了很多+1,我会重写它,也许这会对其他人有所帮助。
我希望这里的人在这里有一些在linux上使用.NET的实际经验。
发布于 2012-10-28 03:25:14
你在http://www.mono-project.com上读过关于Mono.NET的文章吗
它允许你为Linux编写.NET应用程序,与微软的实现略有不同。我不认为wine可以处理任何.NET组件。
只需阅读之前的文档,您就可以开始尝试了。
PS:这也给了你mono和.NET之间的兼容性列表。http://www.mono-project.com/Compatibility和MoMA(mono migration analyzer)是一个工具,它可以扫描任何已经创建的.NET应用程序,看看它是否兼容部署在linux上。
发布于 2012-10-28 11:43:30
在这篇文章中,我在这篇文章中缩短并组合了我从其他人那里学到的所有信息。
Mono.
libc.so
可以支持Android和iOS (它们是基于linux的,是一个用于单声道兼容性分析的工具,称为MoMA (单声道迁移分析器)Mono Migration Analyzer (MoMA)工具可以帮助您识别在将.Net应用程序移植到Mono时可能遇到的问题。它有助于精确定位特定于平台的调用(P/Invoke)和Mono项目还不支持的区域。
有用链接:
发布于 2014-04-21 22:48:29
我们有几个.net应用程序,它们运行在装有Mono的Windows或Linux上。
如果你愿意,你可以使用VisualStudio进行开发,不需要使用Mono开发环境。只有运行时mono库才能在Linux上运行.net应用程序。
我们使用NET2.0 target在VisualStudio中编译这些应用程序,因为mono几乎100%兼容.net 2.0。Mono还实现了更高版本的.net的APIS,但不是全部,也不是完整的。如果您使用的是2.0以上版本的特性,则应该检查是否支持这些特性,或者使用Mono兼容性分析工具。你也可以使用Mono develop而不是Visual Studio,我的前任也是这样做的;结果几乎是一样的,我更喜欢使用Visual Studio。
我们没有发现任何大麻烦,而且应用程序相对复杂,大量多线程,异步I/O,WinForms,套接字,串口等。
一些应用程序使用的.net库在MS .net中不可用,但所有这些库都可以安装在Windows上,因此在Windows中运行这些应用程序没有问题。
希望这能有所帮助,
https://stackoverflow.com/questions/13103360
复制相似问题