升级到Delphi 10.2.3后,“服务器执行失败”和“不允许重复”消息

问题描述

我只需要将 RAD Studio 10.2.0 Tokyo 安装更新为 10.2.3 ,以便可以将TRESTClient.SecureProtocols属性设置为[THTTPSecureProtocol.TLS12]为第三方Web API强制使用TLS 1.2,但是我的其他10.2应用程序遇到了问题。

在运行良好的IDE中运行其他程序,存在一个启动过程,需要使用CreateComObject从COM库dll中实例化对象。这会引发“服务器执行失败” 错误。

在新的 10.2.3 中重建该COM库,然后使用Regsvr32重新注册它,此问题得以解决,但是随后的启动过程的下一部分将使用{{1 }},并引发了“不允许重复” 错误。

再次,在 10.2.3 中重建该非COM库可以解决此问题,但是当我尝试执行相同的“服务器执行失败”错误时,在COM服务器exe而不是库上实例化一个对象。重建该EXE即可解决问题。

使用Winapi.Windows.CreateProcess启动使用 10.2.0 构建的EXE时,我还看到“运行时错误217” 。在 10.2.3 中重建该EXE可以修复该错误。

10.2.0 10.2.3 之间的LoadLibrarySystem.Win.ComObj.pas似乎没有什么区别,那么到底是怎么回事?为什么我需要重建所有其他项目?

更重要的是,如果我需要使用非我的COM库/服务器或动态链接库会发生什么?其他在自己的程序中使用我们的库的第三方开发人员呢?难道这一切都会突然停止吗?

编辑:

这必须与 RAD Studio 安装有关,因为我现在对于每个 10.2.0 都收到“运行时错误217” 消息我拥有的程序,在升级之前一切正常,并且其中一些程序使用Winapi.Windows.pas立即写入调试器,并且在 DebugView 中什么也看不到

编辑:

重新安装 10.2.0 后,所有“运行时错误217” 消息均消失。

解决方法

结果证明这是 10.2.3 的填充安装。重新启动计算机并重新安装 10.2.3 后,即使没有重建任何其他程序, 217 错误也消失了。

我真正不喜欢的是,无论是使用ISO还是Web安装程序,我都必须卸载 10.2.0 版本,从而丢失所有软件包信息。我花了3个小时来重建并重新安装我们产品套件所需的所有软件包。

我想这只是课程的一部分,因为 Update 3 中可能发生了重大更改,导致这些程序包无法正常工作。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...