在Delphi 2009上安装最新版本的Indy 10构建。

5

是否有逐步更新Delphi 2009中的Indy 10组件的指南?

我已阅读卸载线程并拥有最新构建(IndyTiburon.zip)。但是似乎没有安装说明。

如果您已经完成此操作,请分享细节。

编辑:我通过在dclIndyProtocols120和dclIndyCore120中操纵“requires”部分来成功安装了软件包。

从“requires”部分中删除了所有Indy软件包依赖项,只使用库路径解决问题。将..\Lib\Core、..\Lib\System和..\Lib\Protocols添加到Lib路径。必须在dclIndyCore120中保留dclIndyProtocols120的要求,因为没有它无法安装。

所有3个软件包都编译(包括IndySystem120),现在似乎正常工作。

对于D2009用户来说,这应该更容易了。我不得不更新Indy以解决SMTP错误(参见链接)。


2
发现我的问题在于卸载默认的Indy 10文件。这需要非常彻底。完成后,通过编译System120、Core120和Protocols120并安装Core和Protocols,更新的组件可以无问题地安装。然而,这真的不应该这么困难。D2009需要一个更好的流程来更新默认组件;特别是当在交付的代码中发现错误时。 - user34411
4个回答

1

0

也许对于任何想要在10年后使用的人来说,这是一个简单的方法...(在Delphi XE5下测试):

  1. https://indy.fulgan.com/ZIP/下载最新版本。

  2. 将ZIP存档文件解压缩到您选择的文件夹中(我在我的“文档”下创建了一个名为“Delphi Lib”的文件夹)。

  3. 从您的Delphi安装中删除所有Indy .dcu文件(例如:C:\Program Files (x86)\Embarcadero\RAD Studio\12.0(最后一个文件夹的名称可能因您的安装而异))。
  4. 打开Delphi并转到工具->选项。进入“库”列表,并添加您新下载的Indy的以下文件夹:/lib/Core//lib/System/lib/Protocols

一如既往:在删除任何内容之前,请自行备份。您不希望因为丢掉了应该保留的文件而重新安装整个Delphi...


0

对于D2009之前的所有版本,您可以使用Fulldx.bat脚本重新编译包,然后在Delphi 2009 IDE包对话框中打开BPL文件(例如Indy-10.5.5\D6\dclIndyCore60.bpl和Indy-10.5.5\D6\dclIndyProtocols60.bpl)。现在,虽然FullD12.bat存在,但它没有任何作用。

我的简单解决方案是仅在运行时创建Indy组件。我将Indy Tiburon Core、System和Protocols添加到项目搜索路径中,并使用Apache Ant和构建脚本运行编译器进行最终构建。


是的,FullD12.bat 没有任何作用。我已经打开并编译了 IndySystem120.dpk,但这是我的极限。IndyCore120 无法编译,并抱怨找不到 IndySystem120。 - user34411
Lib目录下的makeD12.proj看起来很有趣,但是如果我在RAD命令行窗口中运行它,就会收到错误消息。然而,它包含对必要软件包的引用 - 您可以尝试按照相同的顺序构建这些软件包:System\IndySystem120、Core\IndyCore120、Core\dclIndyCore120、Protocols\IndyProtocols120、Protocols\dclIndyProtocols120。 - mjn
@Gerard,在IndyCore120文件中查找required,并将所需的IndySystem120的路径更改为其所在位置。 - Brad

0

据我所知,需要按照系统核心和协议的顺序进行编译。此外,一个软件包是 .BPL 和 .DCP 文件。因此,在正常情况下,您可能需要将 .bpl 和 .dcp 复制到该目录中。.BPL 是程序运行所需的内容,但要编译使用 .BPL(静态)的东西,还需要 .dcp。

但对于 Indy 问题,这并不起作用,因为它还需要包含文件,因此您需要将它们所有路径添加到库路径中。

据我所知,Delphi(至少是我所知道的版本)在安装时不会添加目录到路径中,因此您必须手动添加带有 .dcp 或 .dcu 的目录路径。

(与构建已安装的软件包列表的 Lazarus 相反。但部分原因可能也是没有类似 .dcp 的东西,总体上更加源代码导向)

请注意,我没有 D2009,这仅是从通用手动 Indy 编译中获得的经验。


Indy在Delphi 2009中只需将dcu路径(<myIndyTiburon>\D12)添加到库路径即可正常工作。如果使用构建脚本进行构建,则仅将Indy添加到源路径,以避免过时的dcu的风险。 - mjn
给所有的包指定相同的 DCU 目标目录,以避免冲突。 - Marco van de Voort

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