Wix Windows Server 2012 R2上的IIS8.5先决条件检查失败

时间:2014-09-22 04:54:10

标签: wix wix3.8

即使我已使用服务器管理器删除了Windows Server 2012 R2上的Web服务器(IIS)角色和功能,但我的Wix安装程序先决条件检查表明已安装IIS。

我使用以下注册表项进行先决条件检查

<Property Id="P_IISVERSIONMAJOR">
  <RegistrySearch Id="SearchIISMajor" Type="raw"
      Root="HKLM" Key="SOFTWARE\Microsoft\InetStp" Name="MajorVersion"  Win64="yes" />
</Property>

<Property Id="P_IISVERSIONMINOR">
  <RegistrySearch Id="SearchIISMinor" Type="raw"
      Root="HKLM" Key="SOFTWARE\Microsoft\InetStp" Name="MinorVersion"  Win64="yes" />
</Property>

是否有任何密钥或某些东西表明需要使用服务器管理器将IIS添加为角色(已启用/已注册)?

任何帮助都会受到高度赞赏,因为我正在处理发布错误。

由于

编辑:

我的要求是检测是否安装了IIS。但是在Windows Server 2012 R2上默认情况下IIS可用,并且始终存在以下密钥。 HKEY_LOCAL_MACHINE \ SOFTWARE \微软\ InetStp 当目标计算机上发现缺少所有或部分先决条件时,安装程​​序将显示先决条件对话框。 因此,当用户从服务器管理器中删除Web服务器(IIS)角色/功能时,我需要显示在先决条件对话框中未安装IIS。对于相同的我需要某种方式来指示未安装IIS。

可能我的第一个问题不明确,所以现在试图详细说明我的要求并希望它不要混淆。请随时澄清。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

根据Discover Installed Components,您应该检查HKEY_LOCAL_MACHINE\Software\Microsoft\InetStp\Components\并查找:

Display Name            Registry Key
====================================
Web Server              W3SVC 

从页面:

  

...我们正在发布一个显示是否存在的注册表项列表   给定IIS模块已安装。使用这些注册表项   以编程方式检查IIS组件。如果有一个组件   安装后,注册表项的DWORD值为00000001.如果是   组件从未安装或已卸载,   注册表项不存在。

IIS.net页面上可能列出了20或30个组件。