案子

我正在尝试将Indy更新为我的Delphi Xe(更新1)的最新版本,因此我从 indy.fulgan.com/zip.

这些软件包成功地编译了,我现在甚至可以在“大约框”对话框上看到新版本10.5.8.0,但是在IDE重新启动后,我收到一条消息说:

no se Encuentra el Punto de Entrada del Processimiento@idhttp@tidcustomhttp@getrequestheaders $ qqrv en la la la bibliotecadeVínculosDinámicosIndyprotocols150.bpl。

我的免费翻译到英语:

未找到程序@IDHTTP@tidcustomhttp@getRequestheaders $ qqrv在动态链接库IndyProtocols150.bpl上找到。

经过快速比较旧和新的IDHTTP.PAS之后,我在TidcustomHTTP类上发现了很多更改,包括某些方法的重命名

  • getResponseheaders to getResponse
  • GetRequestheaders要getRequest
  • setRequestheaders to setRequest

以及在此以及其他类和类界面中更改的公共/发布方法公司。

更新后,我有很多软件包未能加载,包括dclcxpivotgridolapd15.bpl,依次取决于dcldatasnapserver150.bpl,它遇到了bpl上缺少方法。

afaik我无法重新编译dcldatasnapserver150.bpl(也许还有其他失败的软件包,我只是在这里停下来)。

DatasNap和DeveXpress在IDE上的支持是我日常的必要

问题

  1. 是否有安全的预先建立的途径来更新Delphi XE的最新Indy?
  2. 如果没有,我是否只要通过创建旧的公共方法来烧烤源代码并在实现部件上调用新的方法来放在安全方面?
  3. 我是否错过了其他东西,还是我真的遇到了Indy 10.5.7,直到下一个Delphi Minor/主要版本?
有帮助吗?

解决方案 3

从他人的答案,主要是雷米的评论:

不可能在不破坏Delphi XE更新1中破坏数据纳普的情况下安装Indy 10.5.8.0。

其他提示

为Delphi XE安装Indy

是的,安装过程很乏味,但是值得做到正确。

这是针对除SSL以外的所有Indy组件。 (我还没有尝试过任何SSL的东西。)

一个。) 寻找并销毁Delphi随附的所有Indy文件。这些不好,因为Indy项目已更新 每天 使用新的错误修复。如果Delphi拾取了任何旧文件而不是您的新Fresh Indy库,那么您将在各个不同时间都会从IDE遇到疯狂的错误,这些错误很难追踪。

一世。转到组件 - >安装软件包,然后完全删除以“ Indy”开头的所有软件包。

ii。关闭Delphi。

iii。删除与Delphi的bin文件夹中“ dclindy*.bpl”和“ indy*.bpl”匹配的所有文件。
(C: Program Files Embarcadero Rad Studio 8.0 bin)

iv。删除与“ Indy*.dcu”和“ id*.dcu”匹配的所有文件,在Delphi的Lib子文件夹中。
(C: Program Files Embarcadero Rad Studio 8.0 lib win32 debug)
(C: Program Files Embarcadero Rad Studio 8.0 Lib Win32 Release)
^^^警告:注意恰好以“ id”为“ idispids.dcu”和“ idoc.dcu”字母“ id”开始的非印度dcus

v。删除整个Indy10源文件夹:
(C: Program Files Embarcadero Rad Studio 8.0 Source Indy10)

B.) 从中下载最新的indy10_xxxx.zip http://indy.fulgan.com/zip/(如果您使用此zip文件在以下任何步骤中获得编译错误或运行时错误,请不要灰心!第二天重新下载zip文件,然后重试。该zip文件每天更新任何一天都有可能存在一些错误/错误。)

C。) 仅将系统,核心和协议文件夹提取到您自己的Indy Library文件夹中。前任。
(c: mydelphicomponents indy core)
(c: mydelphicomponents indy system)
(c: mydelphicomponents indy 协议)

D.) 启动Delphi。忽略所有失败的软件包对话框:这些是依靠Indy的Embarcadero软件包! (只需单击所有错误上的确定,并指出任何失败的软件包都不应再次加载即可。)

E.) 转到选项 - >环境选项 - > delphi选项 - >浏览路径 - 删除以$(bds) lib indy10开头的路径

F。) 转到选项 - >环境选项 - > delphi选项 - >库路径 - 从步骤C到Delphi的库路径添加新系统,核心和协议文件夹。

G。) 按顺序执行以下5个操作:(只需对有关升级项目的任何对话框说明。)


重要的:

加载每个DPK和每个构建之前,请转到:

项目 - >选项 - >描述 - >构建控制

将广播按钮设置为“显式重建”。

(实际上,这是可选的,但是我总是对包裹进行明确的重建,因为它们看起来更容易处理,但是我想听听别人对此的看法...)


  1. 构建 - 系统 indysystem150.dpk
  2. build -core indycore150.dpk
  3. 首先构建,然后安装 - core dclindycore150.dpk
  4. 构建 - 协议 IndyProtocols150.dpk
  5. 首先构建,然后安装 - 协议 dclindyProtocols150.dpk

**仔细检查您在所有软件包上设置了“明确重建”! **

H。) 最后,转到组件 - >安装软件包,并找到所有依赖于步骤D中关闭的Indy的软件包。重新激活它们,然后重新启动Delphi。 (如果您的新Indy与Delphi发布的版本没有太大变化,那么这些软件包将使用新的Indy!)

++注意,在重新激活这些Embarcadero软件包时,您可能不会立即收到任何错误,但是它们可能会在以后随机弹出。例如,我刚刚安装了Indy10_4548.zip,所有重新激活的软件包似乎都很好。然后一天后,伊德(Ide)向我扔了一条消息,说它找不到tidcustomhttp中的getrequestheaders,而dclwindowsazuremanagement150.bpl因此遇到了麻烦。因此,我不得不返回并禁用IDE中的Windows Azure软件包。

AFAIK您将丢失一些很大程度上取决于Delphi部署的Indy版本的软件包,最著名的是新的DataSnap。

您可以尝试构建用于使用的ONWN软件包,而不是无法重新编译的标准包装,只要所有所需的单元可用即可。

根据Indy这样的“不稳定”库,IMHO Embarcadero应该找到有关其自己代码的解决方案。在专业环境中,这是不可接受的,尤其是因为它们无法发布官方更新,包括从发布后几个月内的Indy的错误修复。例如,我最近发现Indy 10.5.5邮件解析截断邮件地址,这在10.5.8中不会发生。当然,10.5.5行为是不可接受的,我被迫升级...

尽管我不使用Delphi Xe,而是2010年的版本。在此堆栈溢出帖子的帮助下,我能够将Indy组件升级到最新版本: 逐步升级2009年Delphi的Indy 10

我知道这个问题是2009年(但答案也涵盖了2010年),但是它在2010年版中对我有用,所以我的猜测是它也会为您提供帮助。我建议您阅读评论,因为那里也有一些很好的提示。希望这可以帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top