未由Installshield 2015/2018 Express注册的COM服务器库

问题描述 投票:0回答:1

我用于Delphi应用程序的安装程序项目过去可以正常工作,因为它已在目标计算机上正确复制并注册了COM服务器DLL。这是使用Installshield 2015 Express构建的。

运行安装程序的计算机或我创建安装程序的计算机的Windows 10的最新更新似乎已经破坏了COM注册过程。

现在,当我构建时,它给了我许多警告信息:

ISEXP:警告-4354:内部版本无法提取COM信息从文件C:\ InstallShield 2018 Projects \ Current \ Server组件COMServer.dll中的Libraries \ COMServer.dll。请确保该文件正在自我注册,并验证自我注册过程不会失败。

运行安装程序后,通过检查注册表,我可以看到尚未注册COM服务器DLL,因为缺少它们的CLSID信息。如果我打开提升权限的命令提示符并使用regsvr32注册DLL,则可以。

我尝试了建议的“修复程序”,例如更改IsCmdBld.exe的兼容性,以管理员身份运行IS,打开UAC(我从未将其关闭)。

我看到的一条评论说,我们需要在安装后运行自定义操作才能运行regsvr32,但我认为那是安装程序中COM注册步骤的重点。

我也将该项目升级到了[[Installshield 2018 R2 Express,但问题完全相同。

即使是经过许可的注册用户,

Flexera

似乎也无法向我提供任何支持,只是将我引向了社区论坛。在这种情况下,我希望使用SO社区。
com installshield dllregistration
1个回答
0
投票
事实证明,安装了

InstallShield的是Windows的版本,导致了此问题。即使是最新的InstallShield 2019 Professional],COM库也存在相同的问题。在我的

Windows 10版本1903]上,我收到报告的错误,但是在Windows 7

Windows 10版本1607机器上,没有错误发生。它适用于ExpressShield]和Professional版本的InstallShield 201520182019很明显,Flexera假设他们的程序的旧版本(例如IsCmdBld.exe)可以在

Windows 10

更高版本的更严格的安全要求内正常工作,因此需要采取行动。 >

© www.soinside.com 2019 - 2024. All rights reserved.