WIX MSI具有启动条件来预先安装IIS,在WS2008上失败

嘿,我有一个使用WiX构建的MSI,试图指定只有在安装IIS时才能满足的启动条件.在WS2008 x64上,此条件无法正常工作.它适用于我的 Windows 7 x64机器.

物业:

<!-- This is used later in a Launch condition. -->
<!-- see http://learn.iis.net/page.aspx/135/discover-installed-components/ -->
<Property Id="IIS7" Value="#0">
  <RegistrySearch Id="IIS7W3SVC"
                  Type="raw"
                  Root="HKLM"
                  Key="SOFTWARE\Microsoft\InetStp\Components"
                  Name="W3SVC" />
</Property>

条件:

<Condition Message="Cannot install. You must install IIS before installing this product.">
  NOT IIS56 = "#0" OR NOT IIS7 = "#0"
</Condition>

(还有一个IIS6的属性,但这在这里应该是无关紧要的).

用户正在报告他看到这个“无法安装”消息.他还说IIS已经安装并运行.

WS2008是否具有不同的IIS存在的注册表项?
确定IIS是否存在的首选机制是什么?

这是WIX 3.5.不确定确切的WS2008版本.

这可能与the issue described here类似.这个问题还没有解决.

想法?

为什么不使用Wix IIS扩展和IISMAJORVERSION和IISMInorVERSION?

我们使用它们,我知道他们在从XP到2008R2使用的每个版本的Windows上工作

<!-- Reference WixIIsExtension in project and pull in property by ref -->
  <PropertyRef Id="IISMAJORVERSION"/>
  <Condition Message="Install requires IIS 6 or 7.">
     <![CDATA[Installed OR (IISMAJORVERSION AND (IISMAJORVERSION = "#6" OR IISMAJORVERSION = "#7"))]]>
  </Condition>

相关文章

Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...
Windows文件操作基础代码 Windows下对文件进行操作使用的一段...
Winpcap基础代码 使用Winpcap进行网络数据的截获和发送都需要...
使用vbs脚本进行批量编码转换 最近需要使用SourceInsight查看...