"Server execution failed" 和 "Duplicates not allowed" 升级到 Delphi 10.2.3 后的消息

"Server execution failed" and "Duplicates not allowed" messages after upgrade to Delphi 10.2.3

我不得不将我的 RAD Studio 10.2.0 Tokyo 安装更新到 10.2.3,这样我就可以设置TRESTClient.SecureProtocols 属性 到 [THTTPSecureProtocol.TLS12] 强制第三方网站使用 TLS 1.2 API,但我 运行 遇到其他 10.2 应用程序的问题.

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

在新的 10.2.3 中重建该 COM 库并使用 Regsvr32 再次注册它解决了问题,但启动过程的下一部分加载了使用 LoadLibrary 的库,这引发了 “不允许重复” 错误。

同样,在 10.2.3 中重建那个非 COM 库解决了问题,但后来我 运行 进入相同的 " 服务器执行failed" 当我尝试在 COM 服务器 exe 而不是库上实例化对象时出错。重建该 EXE 解决了问题。

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

10.2.010.2.3 之间的 System.Win.ComObj.pasWinapi.Windows.pas 似乎没有任何区别,这到底是怎么回事?为什么我需要重建所有这些其他项目?

更重要的是,如果我需要使用不属于我的 COM library/server 或动态 link 库,会发生什么情况?在他们自己的程序中使用我们的库的其他第三方开发人员呢?难道这一切都会突然停止工作吗?

编辑:

这一定与 RAD Studio 安装有关,因为我现在收到 “运行时错误 217” 消息 [=我有 43=]10.2.0 程序,在升级之前一切正常,其中一些程序使用 OutputDebugString 立即写入调试器,但我没有看到任何东西完全在 DebugView.

编辑:

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

原来这是 10.2.3 的填充安装。重新启动我的机器并重新安装 10.2.3 后,217 错误消失了,甚至没有重建任何其他程序。

但我真正不喜欢的是,使用 ISO 或网络安装程序,我被迫卸载 10.2.0 构建,因此丢失了所有包信息.我花了 3 个小时来重建和重新安装我们产品套件所需的所有软件包。

我想那只是 par-for-the-course,因为 更新 3 中可能有破坏性更改,导致这些软件包无法正常工作。