将.net应用程序从Windows移植到linux

时间:2011-03-21 07:49:17

标签: .net vb.net mono operating-system

我在Windows操作系统上使用VB .NET开发了一个应用程序。如果我想为使用Linux的客户端启用此应用程序,我该怎么办?他们需要购买VB .NET吗?我完全迷失了它的工作方式。我从来没有在linux上工作过任何人都可以提供帮助。

5 个答案:

答案 0 :(得分:6)

Mono完全支持Windows.System.Forms,但不支持WPF。这意味着只要安装了Mono,您的应用程序很可能在Linux上运行。

但是有些事情你需要知道。例如,如果您手动创建文件路径,则需要更改它。您有Path.CombinePath.PathSeparator来构建路径。

由于windows使用\r\n而linux使用\n,因此在处理新行时也应该注意。使用Environment.NewLine代替硬编码\r\n

您在这里有一个Mono for developers页面:http://www.mono-project.com/Mono_For_.Net_Developers

最重要的是迁移分析器:http://www.mono-project.com/MoMA,用于检查所有兼容性问题。

答案 1 :(得分:2)

有两种选择:

  1. 使用Mono
  2. 运行应用程序
  3. 使用Wine
  4. 运行应用程序

    无需重新编译。我首先用两者来测试应用程序,然后决定哪一个会花更少的精力来修复产生的问题。

答案 2 :(得分:1)

在你的VB.Net应用程序中,如果你没有使用任何Windows专有的东西(Dllimport,COM组件,本机库等),那么你可以尝试将应用程序原样复制到带有Mono的linux机器并运行它。我的一些应用程序在过去就像这样工作。如果它开箱即用,那么你根本不需要在linux环境中编译应用程序。

答案 3 :(得分:0)

存在一些陷阱:打包的单开发和编译器可能是较旧的,并且第一次自己编译并不容易。通常,您至少获得.NET 2.0支持。

在ubuntu上,您可以使用以下命令安装IDE和编译器:

apt-get install monodevelop mono-vbnc

其余部分应作为依赖项。

答案 4 :(得分:0)

您不必购买VB.NET。您需要做的是确定您的.NET应用程序是否与mono兼容。您可以检查与MoMA的兼容性和/或尝试使用mono编译/运行Linux上的应用程序。