10

我的许多用户一直告诉我,他们希望在他们的 Linux 机器上使用 Wine 运行我的软件。

但我是一名几乎没有 Linux 经验的 Windows 开发人员。

现在我可以花一两个月的时间安装 Linux,学习 Linux,安装 Wine,学习 Wine,并彻底确保我的应用程序在 Wine 下运行良好。但我仍在为 Windows 开发,所以我现在不想花太多时间进行开发。

那么我能做些什么而不费力气让我的程序在 Wine 下尽可能好地运行呢?


我确实找到了有关在 Wine 下运行应用程序的一般帮助

4

8 回答 8

11

从 VMWare 站点下载VMWareUbuntu 虚拟机(Ubuntu 是一种流行的 Linux 发行版)。这将在您的 Windows 环境中为您提供一个正常工作的 Linux O/S,而无需手动安装 Linux。

然后,您可以使用此处的说明安装 Wine,该 Wiki 页面还为您提供了一些有关如何使用它的说明。

如果您按照 Adam Rosenfield 的建议,尝试在未修改的 Wine 中运行您的应用程序,您将能够快速确定是否存在问题。我的猜测是有一些,否则您的用户不会就此与您联系:)

在 Wine 中获得调试应用程序的帮助有很多方法,请查阅网站以获取选项并选择一些适合您的方法。与往常一样,最好不要依赖单一渠道进行沟通。

此外,如果您更习惯在 Windows 中进行开发,使用虚拟机的方法将允许您像往常一样在 Windows 中编译代码并将二进制文件复制到虚拟机中进行测试(Ubuntu 支持浏览/挂载 Windows 共享)。

于 2009-01-07T09:57:59.763 回答
5

只要您没有做任何不寻常的事情,例如玩弄硬件或在未记录的 API 调用和数据结构中四处寻找,您应该能够在 Wine 下运行您的代码,而只需很少或无需修改。Wine 有一个相当完整的公共 Windows API 实现,所以如果你的程序运行良好并且不会乱七八糟,它应该可以工作。

于 2009-01-07T05:47:03.110 回答
3

不要使用太多的 Windows API!不要使用微软的任何新东西;)

于 2009-01-07T05:45:56.340 回答
3

避免使用 WPF 是#1 建议。

但是在 Wine 下测试你的应用程序真的不会杀死你。尝试并不难;当然不会需要几个月的时间。例如:

使用http://www.ubuntu.com/getubuntu/downloadmirrors#wubi将 Ubuntu 安装到 Windows 机器上的文件中,然后启动 ubuntu 并从 http://winehq.org/download/deb安装最新的 Wine 然后尝试运行您的应用程序的安装程序。如果它不起作用,请查看 Wine 常见问题解答,在其中一个 wine 论坛中寻求帮助,和/或在 wine 的错误跟踪器中提交错误。

从死机开始到试用安装程序大约需要三个小时。

于 2009-01-07T15:05:05.730 回答
3

当我的一个 Delphi5 应用程序刚刚从 zip 中运行时,我感到相当惊讶。

唯一真正可行的方法是自己动手,即按照 Sean 的建议安装 vmware 和 linux 发行版。Linux 实际上并不难,我们都在这里提供帮助。

完成快速测试后,我可以确认它在很大程度上有效。启动过程中有一个ACCVIO读取0x34,可以忽略错误对话框并运行应用程序,我打开了Steve McCarthy GEDCOM。

截屏

这是在 VMWare 下使用 MEPIS 7.9.94-rc1_32 下的 Wine 1.1.12。强烈建议将 VMWare 用于此类事情。

于 2009-01-09T06:33:40.830 回答
0

你用什么语言/平台开发?取决于它是什么,让它在本地运行应该没有问题。例如,如果您使用 Java 或 Python,它们都可以在 Linux 上运行得非常干净。同样,如果您是 .NET 开发人员,您应该能够在一定程度上让您的应用程序在 Mono 中运行。

于 2009-01-07T05:46:47.260 回答
0

查找 Linux beta 测试人员。它可以向 WINE 开发人员报告错误或在您的应用程序中查找错误。

于 2009-09-09T06:11:24.250 回答
0

Wine 比 Windows 对错误更敏感。例如,Wine 会在 NULL 窗口句柄上崩溃,并且如果类无效,则无法创建窗口,而 Windows 更健壮,只会规避错误。

这是清理代码的机会。

在我第一次尝试时,我对 Wine 运行我的应用程序的效果感到惊讶。但是,我必须摆脱基于第三方驱动程序的组件。

于 2017-12-15T16:26:41.173 回答