1

尽管我已经使用服务器管理器删除了 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\Microsoft\InetStp 安装程序会在发现目标计算机上缺少所有或部分先决条件时显示先决条件对话框。因此,当用户从服务器管理器中删除 Web 服务器 (IIS) 角色/功能时,我需要在先决条件对话框中显示 IIS 未安装。同样,我需要某种方式表明未安装 IIS。

可能我的第一个问题不清楚,所以现在尝试详细说明我的要求,希望它不会令人困惑。请随时澄清。

感谢所有的帮助!

4

1 回答 1

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 个组件。

于 2014-09-22T05:02:02.547 回答