Installation 使用TMS组件包(C&x2B;&x2B;Builder)升级Indy10

Installation 使用TMS组件包(C&x2B;&x2B;Builder)升级Indy10,installation,c++builder,indy10,tms,Installation,C++builder,Indy10,Tms,到目前为止,我一直在使用Indy 10,没有任何问题,但在最近TMS组件包安装出现问题后,我正在寻找升级Indy的替代方法。TMS使用CB2010在干净的系统上安装得很好,但是当我使用下面的过程升级Indy时,我在启动IDE时和TMS安装之后会出现错误-错误是:过程入口点@Idhttp@TidCustomHTTP@在动态链接库IndyProtocols140.bpl中找不到GetRequestHeaders$qqrv。显然,在我这方面存在一些问题,因为TMS确实是在干净的安装环境下安装的,没有I

到目前为止,我一直在使用Indy 10,没有任何问题,但在最近TMS组件包安装出现问题后,我正在寻找升级Indy的替代方法。TMS使用CB2010在干净的系统上安装得很好,但是当我使用下面的过程升级Indy时,我在启动IDE时和TMS安装之后会出现错误-错误是:
过程入口点@Idhttp@TidCustomHTTP@在动态链接库IndyProtocols140.bpl中找不到GetRequestHeaders$qqrv
。显然,在我这方面存在一些问题,因为TMS确实是在干净的安装环境下安装的,没有Indy升级

所以,如果我用新版本覆盖Indy文件,它可能会正确安装

以下是我现在使用的Indy升级的安装程序(在TMS安装之前一直有效):

  • 启动IDE并删除
    Indy10协议设计时
    Indy10核心设计时

  • 运行此脚本以删除旧的Indy文件:

    del /q "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\Indy10\*.*"
    del /q "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\debug\Indy10\*.*"
    del /q "c:\Program Files\Embarcadero\RAD Studio\7.0\include\Indy10\*.*"
    del /q /s "c:\Program Files\Embarcadero\RAD Studio\7.0\source\Indy\Indy10\*.*"
    
    
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\debug\IndyCore.bpi"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\debug\IndyCore.lib"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\debug\IndyProtocols.bpi"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\debug\IndyProtocols.lib"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\debug\IndySystem.bpi"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\debug\IndySystem.lib"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\release\IndyCore.bpi"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\release\IndyCore.lib"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\release\IndyProtocols.bpi"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\release\IndyProtocols.lib"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\release\IndySystem.bpi"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\lib\release\IndySystem.lib"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\bin\IndyCore140.bpl"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\bin\IndyProtocols140.bpl"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\bin\IndySystem140.bpl"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\bin\dclIndyCore140.bpl"
    del "c:\Program Files\Embarcadero\RAD Studio\7.0\bin\dclIndyProtocols140.bpl"
    
  • 在“c:\code\Indy”中打开新的Indy安装,然后依次打开
    IndySystem140.dpk
    IndyCore140.dpk
    IndyProtocols140.dpk
    dclIndyCore140.dpk
    dclIndyProtocols140.dpk

  • >编译>选项>代码> >生成上述包中的所有C++ Builder文件(包括包LIBS)< /代码>。< /P>
  • 将所有包设置为
    Release
    ,并按上述顺序构建它们

  • 最后两个也要安装

  • 将包含路径和库路径添加到“c:\code\indy\Core”(协议和系统也是如此)

  • 我还搞乱了Indy附带的FullC140.bat脚本,但没有像上面那样正确安装它

    是否有人成功地更新了Indy并在其上安装了TMS


    我的批处理脚本是否删除了一些不应该删除的文件?

    出错的TMS包被编译为与IDE预装的Indy包相链接。由于Indy的IdHTTP.pas单元中的接口更改,您的Indy升级中断了该TMS包(具体而言,
    TIdCustomHTTP
    GetRequestHeaders()
    方法被重命名为
    GetRequest()
    )。要解决此错误,必须重新编译失败的TMS包以链接升级的Indy包,或者您必须在IdHTTP.pas中恢复该更改并再次重新编译Indy。

    出错的TMS包被编译为链接与IDE预装的Indy包。由于Indy的IdHTTP.pas单元中的接口更改,您的Indy升级中断了该TMS包(具体而言,
    TIdCustomHTTP
    GetRequestHeaders()
    方法被重命名为
    GetRequest()
    )。要解决此错误,必须重新编译失败的TMS包以链接升级的Indy包,或者您必须在IdHTTP.pas中恢复该更改并重新编译Indy。

    实际上,TMS作者说他们不使用Indy。但我刚刚发现dclDataSnapIndy10包需要这个调用。当我从IDE中删除这个包时,错误就消失了。此软件包链接到以前安装的Indy,该软件包已被删除并更新。dclDataSnapIndy10的作用是什么?不知何故,TMS和DataSnapIndy10的安装是相互关联的……关于升级Indy 10时DataSnap损坏的评论已经在Indy网站的安装页面上提到:谢谢,我只是删除了DataSnap,因为我不需要它,但希望TMS不会依赖它,可能是安装包中的一个小故障。希望这有助于安装更新了Indy10的TMS。至少有一些TMS TPlanner插件确实参考了原始Indy,如果您已经构建了一个包来使用它们,它将不得不按照Remy所说的重新编译。我刚发现。事实上TMS的作者说他们不使用Indy。但我刚刚发现dclDataSnapIndy10包需要这个调用。当我从IDE中删除这个包时,错误就消失了。此软件包链接到以前安装的Indy,该软件包已被删除并更新。dclDataSnapIndy10的作用是什么?不知何故,TMS和DataSnapIndy10的安装是相互关联的……关于升级Indy 10时DataSnap损坏的评论已经在Indy网站的安装页面上提到:谢谢,我只是删除了DataSnap,因为我不需要它,但希望TMS不会依赖它,可能是安装包中的一个小故障。希望这有助于安装更新了Indy10的TMS。至少有一些TMS TPlanner插件确实参考了原始Indy,如果您已经构建了一个包来使用它们,它将不得不按照Remy所说的重新编译。我发现了这一点。对于C++ Builder,我建议使用Malcolm Smith,是的,我也考虑过了,我已经看到脚本FulcC140甚至是Malcolm Smith编写的,但是这不是我的选择,因为我需要在编译之前对Indy进行一个小的修改。(对IDAllHeaderCodes.pas的一个小改动修复了另一个问题:)此外,Malcolm没有太频繁地更新这些文件(上次更新是在2个月前,如果您真正需要的修复没有在1天前签入,那就可以了!)对于C++ Builder,我建议使用Malcolm Smith,是的,我也考虑过了,我已经看到脚本FulcC140甚至是Malcolm Smith编写的,但是这不是我的选择,因为我需要在编译之前对Indy进行一个小的修改(小改动为IdAlAdHealCoDel.Pas,它修复了另一个问题:此外,Malcolm没有太频繁地更新这些文件(上一次更新是在2个月前,如果您真正需要的修复没有在1天前签入的话,这是可以的!)。