【问题标题】:Dll not appearing in references for VBA after installing using install shield使用 install shield 安装后,DLL 没有出现在 VBA 的参考资料中
【发布时间】:2015-05-06 19:56:36
【问题描述】:

我为 Excel 加载项创建了一个安装屏蔽项目。

我选择.dll 文件和.tlb 文件移动到GAC(在目标文件夹中)和程序文件文件夹

这些文件存在于程序文件文件夹中

但是当我转到 Excel 时,单击工具-> 参考,它们并没有出现在该列表中!

我必须手动浏览到该.tlb 文件的位置并选择它

我应该进行哪些更改以使其自动出现在参考列表中

【问题讨论】:

  • 你在安装程序中注册了.dll和.tlb吗?
  • 不,我只选择并添加了 .dll 和 .tlb 文件如何注册?
  • 您的安装程序是否为 dll 运行 RegAsm
  • @dePatinkin 不可以让它在安装后注册dll和tlb文件吗?
  • Register a COM object using InstallShield 可能是相关的。基本上是 regasm 和 regsvr32,但我已经好几年没用过 Installshield 了。

标签: vba excel installshield


【解决方案1】:

本文向您介绍了使用 Installshield 进行注册的两种方法:Installshield Register.Net DLLs

我绝对推荐方法 2 - 运行 .bat 文件来注册文件。此方法使用批处理文件为安装和卸载过程运行 RegAsm。这将使您能够控制注册过程,您可以确切地知道完成了什么,并且您可以处理所有位场景 32/64/Wow64。如文章所述,在方法 1 中,您不需要:

由于某种原因,也许我在 64 位机器上安装了 32 位组件,这没有按预期工作。 [...] 一些 DLL 在您运行 RegAsm.exe VirtualCam.dll /nologo /codebase 时执行注册后操作,但在您运行 RegAsm.exe VirtualCam.dll /nologo /codebase /regfile 时不会被捕获

如果可能的话,我会建议切换到其他安装包创建器,它支持运行操作并且比使用批处理提供更好的过程控制。

*由于它不是原生 COM dll,而是暴露给 COM 的 dotNet dll,因此无需注册 regsvr32。

【讨论】:

猜你喜欢
  • 2015-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多