installshield light ActiveX dll未注册

时间:2012-07-31 14:14:42

标签: activex installshield dllregistration

我正在使用Visual Studio 2010和免费版本的Installshield。该应用程序包含一个从Excel调用的ActiveX组件。在项目构建属性页面上选中“注册COM Interop”选项。当我在XP机器上运行安装时,dll没有注册。如果我手动运行regasm / tlb:命令,则应用程序可以运行。

问题: 1.如何通过installshield日志文件验证注册是否已运行? 2.如果注册失败,日志会显示什么样的错误消息? 2. installshield是否要求dll强名? (它不是) 3.还有其他疑难解答建议吗?

提前致谢,

居里

1 个答案:

答案 0 :(得分:0)

以下是我处理这种情况的方法:

1)建立一个干净的操作系统。

2)安装软件。

3)使用注册表比较实用程序(如InstallWatch Pro)对注册表进行快照。

4)致电Regasm。

5)再次捕获注册表并创建增量。过滤掉无关的更改。

6)将这些更改发回InstallShield项目。重建并重复该过程以验证成功。

那么为什么会这样呢?我通常会发现它是Regasm中已知行为的结果。

当您设置COM Interop = true时,您告诉InstallShield调用regasm / regfile,然后在构建期间抓取该数据并将其创建到安装程序中。但是这里有一个问题:

(强调补充)

  

您可以使用/ regfile选项生成包含的.reg文件   注册表项而不是直接更改   注册表中。您可以通过导入更新计算机上的注册表   .reg文件与注册表编辑器工具(Regedit.exe)。 请注意   .reg文件不包含任何可以由其创建的注册表更新   用户定义的寄存器功能。请注意,只有/ regfile选项   发出托管类的注册表项。此选项不会发出   TypeLibIDs或InterfaceIDs的条目。