当前位置: 首页 > 面试题库 >

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

柳钟展
2023-03-14
问题内容

在这种情况下,我需要为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有一些实践经验…


问题答案:

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

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

之前只需阅读文档即可。

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



 类似资料:
  • 问题内容: 是否可以在Linux环境上运行.net应用程序?如果是,那怎么办?.net框架的所有组件都可以在Linux上正常工作吗? 问题答案: 请参阅使用Mono在Linux上运行.Net应用程序: 想象一下,您公司的命运取决于您按时完成新的Linux项目。您拥有一流的开发人员团队,但他们都是.Net程序员。你会怎样做?承认Windows比Linux更好?哭?辞职?不,您将安装Mono并拯救世界

  • 问题内容: 我正在尝试为Linux编写Mono C#守护程序。 我想在它完成处理时开始和停止它,而不只是取消该过程。 有人有这个例子吗? 编辑:我想出了如何在debian中使用start-stop-daemon –background,所以我想现在就使用它。 编辑:我也在Java中实现这一点,他们有这个不错的addShutdownHook可以捕获终止应用程序。我需要花更多时间来整理单声道服务的依赖

  • 我有一个C++程序,我想编译成汇编,然后汇编器会把它编译成机器代码。 现在,据我所知,为了将汇编代码转换为机器代码,汇编程序需要某种表来映射汇编指令到实际的机器指令。 汇编程序将使用哪个表?我的C++程序是否有可能不能在所有CPU上运行,因为CPU使用不同的表,这意味着相同的机器代码在不同的CPU上会做不同的事情?

  • 问题内容: 我有一个在Linux上运行的Python(3)脚本,称为主脚本,该脚本必须从专有DLL调用例程。到目前为止,我已经使用Wine使用以下结构解决了这个问题: 脚本 dll_call.py 由Wine下安装的Windows Python(3)解释器执行。它将返回值转储到一个文件中,然后由等待的主脚本拾取该文件。如果我必须连续执行几次,它不是完全可靠且令人痛苦的缓慢。 我想一次启动脚本 dl

  • 问题内容: 有什么方法可以在Linux中运行(winform应用程序的).NET exe, 而无需 在Linux中 构建代码? 实际上,我没有我先前开发的某些实用程序的代码,而是想在Linux中运行它们。 问题答案: 单核细胞增多症 !http://mono-project.com/Main_Page 也很棒。越来越多的社区中有越来越多的工具支持,C#编译器等。

  • 问题内容: 为了运行MIPS汇编程序,x86 linux周围是否有任何命令行解释器或任何其他程序集? 我希望能够编写简单的MIPS汇编程序并从本地计算机上的控制台运行它们。 我知道SPIM,但是它 需要X Windows ,我很好奇是否有更好的选择。 编辑:事实证明它不需要X Windows。我仍然对SPIM有问题。我的拙见不是最好的。Qemu / Cross编译的工具链需要更多工作,但我的怪癖却