我可以在 Inno Setup 中一次注册多个 *.tlb 文件吗?

Can I register multiple *.tlb files at once in Inno Setup?

当我尝试使用通配符注册所有 *.tlb 文件时:

RegisterTypeLibrary(Is64BitInstallMode, ExpandConstant('{app}') + '\TLB\*.tlb');

我收到运行时错误 0x80029C4A。

是不是说我必须一个一个地注册所有的文件?有没有办法注册文件夹?

您不能使用通配符注册 .tlb 文件。见 documentation:

Prototype: procedure RegisterTypeLibrary(const Is64Bit: Boolean; const Filename: String);

例如RegisterTypeLibrary(Is64BitInstallMode, ExpandConstant('{sys}\stdole2.tlb'));

同时检查正确的平台:Is64BitInstallMode() 与 .tlb 位数无关(您可以在 64 位系统上注册 32 位 .tlb 没有任何问题。

如果您尝试为不正确的平台注册库,则会显示异常,这可能是您的问题。

  • 额外提示:尝试运行安装程序为管理员,通常库必须以管理员模式注册。