我使用的是Visual Studio2010和免费版本的Installshield。该应用程序包括一个从Excel调用的ActiveX组件。在项目生成属性页上选中“注册COM Interop”选项。当我在XP计算机上运行安装时,dll没有注册。如果我手动运行regasm /tlb:命令,应用程序将正常工作。
问题: 1.如何通过installshield日志文件验证注册已经运行? 2.如果注册失败,日志会显示什么样的错误消息? 2. installshield是否要求dll必须是强名称的?(不是) 3.是否有其他故障排除建议?
提前谢谢你,
柯里
发布于 2012-08-01 00:01:57
下面是我处理这种情况的方法:
1)建立干净的操作系统。
2)安装您的软件。
3)使用注册表比较实用程序,如InstallWatch专业版来快照注册表。
4)调用Regasm。
5)再次捕获注册表并创建增量。过滤掉不相关的更改。
6)将这些更改重新创作到InstallShield项目中。重建并重复该过程以验证是否成功。
那么为什么这个坏了呢?我通常会发现这是由于Regasm中的一个已知行为造成的。
当您设置COM = true时,您就是在告诉InstallShield调用regasm /regfile,然后在构建过程中收集数据并将其写入安装程序。但这里有个问题:
(已添加强调)
您可以使用/regfile选项生成包含注册表项的.reg文件,而不是直接对注册表进行更改。您可以通过使用注册表编辑器工具(Regedit.exe)导入.reg文件来更新计算机上的注册表。请注意,.reg文件不包含可由用户定义的寄存器函数进行的任何注册表更新。请注意,/regfile选项仅发出托管类的注册表项。此选项不发出TypeLibID或InterfaceID的条目。
https://stackoverflow.com/questions/11742185
复制相似问题