【发布时间】:2009-10-26 10:37:18
【问题描述】:
我们的产品包含一个 VC++ ATL 进程内 COM 服务器,其中包含两个 COM 公开类 - ClassA 和 ClassB。将此 COM 服务器添加到 Install Shield 2008 安装程序包中,并为组件设置“COM Extract at Build”属性。
组件以完全相同的方式公开 ClassA 和 ClassB - 每个都有一个 .rgs 文件,两个 .rgs 文件都编译到组件资源中,并且为它们调用 CAtlModule::UpdateRegistryFromResourceS()。
但是,当我们在 COM 服务器上运行 regsvr32 时,两个类都正确地暴露在注册表中,但是当我们运行包的安装时,Install Shield 只暴露了其中一个。
Install Shield 如何发现要对注册表进行哪些更改?我们应该检查什么来检测问题的根源?
【问题讨论】:
标签: visual-c++ com installation atl installshield