【发布时间】:2010-08-31 22:21:37
【问题描述】:
我正在安装一个包含一些 COM 服务器的 Active X 控件。我正在使用 InstallShield 的 COM Extract at Build 选项来生成注册表信息。这会导致注册表和类表中有很多条目。 (使用 Wix 提取的信息几乎相同)。
看来我的 COM Sever 已正确安装,但 InprocServer32 键中名为“InprocServer32”的附加值如下所示:
HKCR\CLSID\{MY-COM-GUID}\InprocServer32
(Default) = C:\Path-to-my\file.ocx
InprocServer32 = 8tYCAGak)9S9&~swl.$?MyFeatureName>*&N$B'fk?As1x2J653?'
我唯一能从额外值中得出的结论是 MyFeatureName,它是包含 .ocx 文件的 MSI 功能的内部名称。该键未列在 Registry 表中,因此必须由 Class 表生成。
我遇到的问题只发生在 Windows Server 2008 中。似乎尝试使用 COM 服务器的应用程序无法从(默认)值中找到 .ocx 文件的路径,而是找到了InprocServer32 值。这会导致应用启动 MSI,然后让 MSI 陷入看似无限循环的状态。
我想知道这是否是 Windows Server 2008 中的一个已知问题,或者是否有办法阻止 msiexec 生成该额外值。
【问题讨论】:
标签: com installation wix windows-installer installshield