在同一台计算机上安装多个 Delphi 版本

16
我们想要做的是在同一台机器上安装多个Delphi版本,这些版本包括D7、D2010和DXE。
我们之前已经安装了D7和D2010,在一起使用还算正常(由于各个版本的特殊条件,必须为D7和D2010复制组件),但我不确定XE能否兼容,因此提出了这个问题。
当然,我们可以进行实验,但那意味着浪费了相当多的时间,所以如果有人已经进行过类似的设置或正在积极进行,请分享您的经验。
编辑1: D7-D2010的安装按照版本顺序进行:
- D7+更新 - D2010+更新

1
重复问题,包括此链接:https://dev59.com/R0nSa4cB1Zd3GeqPLzj9#1382458。 - Argalatyr
@Argalatyr 那个问题与XE无关,所以D2010和XE很有可能会出现问题,至少这是我看到的情况,这也是我为什么要问的原因。 - user497849
如果您查看有关Delphi的常见问题解答,就会发现顺序安装一直是可行的。根据以往版本的经验,没有理由认为2010+XE会有问题。 - Argalatyr
@Argalatyr,很抱歉,我想同意你的观点,只是新版本也可能会引入错误,虽然机率很小,但我不想花半天时间完成工作,最终出现问题。Nick的回答已经有4年了,它并没有涵盖XE,我们都知道,如果注册表没有正确保存到新版本路径或从不同版本错误读取,Delphi的新版本可能会破坏旧版本。 - user497849
4个回答

20

我在同一台机器上安装多个不同版本的 Delphi 时从未遇到过问题。这是一个被广泛支持的配置,因为例如组件供应商需要能够测试它们支持的所有版本。

您可以为每个 Delphi 使用一个虚拟机,但您也可以将所有版本的 Delphi 放置在同一台机器上。

当我将多个 Delphi 版本放置在同一台机器上时,我会确保系统 PATH 中没有任何 Delphi 版本。然后,在进行自动化命令行构建时,我会在构建脚本开头添加 PATH 。这样,我就确信始终获得所需的版本。


+1 谢谢David,我正希望得到这个答案!最终这就是我想要实现的,你能告诉我你安装在哪个Windows版本上吗?我希望得到一个W7的答案(: - user497849
我接受了David的答案,因为我觉得它更完整,再次感谢! - user497849
只是提醒一下,如果你升级到XE2,你将自动获得以前的Delphi版本(7、2007-XE)的访问权限。它们似乎可以很好地共存。甚至不要问为什么不包括2006版本。 - Dean Roberson
1
@DeanRoberson:你知道如果你告诉别人不要问,他们肯定会问。因此,在任何人问之前现在回答一下,2006年不包括在内,因为其中一些组件的许可证已经过期,因此不能再分发它们,而Embarcadero创建一个更新的ISO并将其删除需要太多的工作量。 - Remy Lebeau

7

它应该可以正常工作。我没有尝试过你的确切组合,但我在家里运行7和XE,在工作中运行2007和XE2。没有问题。

然而,您可能考虑将不同版本放在虚拟机上,这样您就可以将它们(及其所有组件)分开,而不会在更改另一个项目时冒着破坏一个项目配置的风险。

您应该小心,并始终按时间顺序安装Delphi,先安装旧版。


谢谢你的回答,目前我们有不同的虚拟机,但问题是我们已经达到了相当大的虚拟机数量,这需要更多的麻烦,因此我们正在尝试将 Delphi IDE 放在一个虚拟机中,将 Visual Studio 放在另一个虚拟机中等等。 - user497849
1
我有一个虚拟机,其中包含D7到XE2的所有版本,都可以正常工作。安装顺序(从旧到新)非常重要。 - Ondrej Kelle
1
@DavidHeffernan 是的,肯定可以,但可能需要进行一些小的调整,比如PATH环境变量中目录的顺序,一些注册表项(为JIT调试器?),我不记得详细情况了。从旧到新更容易,如果我没记错的话。 - Ondrej Kelle
2
@tondrej 最佳实践是从路径中删除所有痕迹,以便您保持控制。 - David Heffernan
这是否意味着每次我尝试编译Delphi7项目时,都应该重新设置Delphi7 PATH变量;对于XE也是如此吗? - RRN
显示剩余5条评论

5
你可以在同一台机器上同时运行Delphi 7至XE2的每个版本,没有任何问题。我在我的主开发机和干净的开发虚拟机上都这么做了。
只需确保您最后安装希望成为默认版本的Delphi版本,当shell打开Delphi项目或Pascal单元时。

顺序完全不重要。最后安装任何版本。 - David Heffernan
1
@DavidHeffernan... 安装最新版本是个好主意,这样可以确保当 shell 打开 Delphi 项目或 Pascal 源代码单元时使用的默认版本是最新的。 - LaKraven
+1 但是 David 是对的,我将从 Path 中删除一些内容,这样我们就始终可以控制从脚本中调用哪个编译器。 - user497849
@LaKraven 你可以只在你想要的关联版本中进行修复,整个排序的事情就是一种城市传说。 - David Heffernan

-1
自从我开始使用XE3以来,我一直有一个烦人的问题,就是在编译和链接时会偶尔出现错误,指出无法写入EXE,因为它已经存在(即无法覆盖现有的EXE)。我总是同时运行Delphi7和XE3,因为我有一些大型项目需要维护。有一天,我真的经常遇到这个问题,让我发疯了,所以我开始尝试一些东西。其中之一就是在运行XE3时不要运行Delphi7,结果证明这是罪魁祸首。我还在加载XE3项目时遇到了随机断点,这个问题也得到了解决。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接