尽管删除了 IIS,但仍然设置了 IISMAJORVERSION 和 IISMINORVERSION

2024-03-23

我正在创建一个依赖于正在安装的 IIS 的安装程序。为了进行测试,我使用运行 Windows Server 2008 R2 的虚拟机,该虚拟机安装了 Web 服务器角色。

我的安装程序使用此条件检查是否安装了 IIS;

<PropertyRef Id="IISMAJORVERSION" />
<PropertyRef Id="IISMINORVERSION" />
<Condition Message="Install requires IIS version 7.5 or later">
  <![CDATA[Installed OR (IISMAJORVERSION AND ((IISMAJORVERSION = "#7" AND IISMINORVERSION >= "#5") OR IISMAJORVERSION > "#7"))]]>
</Condition>

安装程序按预期运行,但是,我还想通过删除 IIS 并确保安装程序显示条件消息来测试条件。

我通过进入服务器管理器控制台并删除 Web 服务器角色(全部)来删除 IIS。

当我重新运行安装程序并记录安装程序日志文件时,尽管不再安装 IIS,IISMAJORVERSION 和 IISMINORVERSION 仍分别设置为值 #7 和 #5。

AppSearch: Property: IISMAJORVERSION, Signature: IIsMajorVersionSearch
MSI (c) (88:F4) [14:25:16:687]: Note: 1: 2262 2: Signature 3: -2147287038 
MSI (c) (88:F4) [14:25:16:687]: PROPERTY CHANGE: Adding IISMAJORVERSION property. Its value is '#7'.
AppSearch: Property: IISMINORVERSION, Signature: IIsMinorVersionSearch
MSI (c) (88:F4) [14:25:16:703]: Note: 1: 2262 2: Signature 3: -2147287038 
MSI (c) (88:F4) [14:25:16:703]: PROPERTY CHANGE: Adding IISMINORVERSION property. Its value is '#5'.

安装程序是使用 WIX v3.10.3.3007 构建的。

IIS 卸载是否没有删除它应该删除的注册表项,或者这是一个 WIX 问题?


Update 1

WIX 属性 IISMAJORVERSION 和 IISMINORVERSION 是根据 HKLM\SOFTWARE\Microsoft\InetStp 文件夹中注册表项 MajorVersion 和 MinorVersion 的值填充的。删除 Web 服务器角色时,实际上仅删除了此文件夹中的两个注册表项(MetabaseSetMajorVersion 和 MetabaseSetMinorVersion)。所有其他都保留下来,包括 WIX 使用的两个。

仅当 Windows Process Activation Service 也被删除后,HKLM\SOFTWARE\Microsoft\InetStp 中的其他注册表项才会被删除。

考虑到这一点,我不确定使用 IISMAJORVERSION 和 IISMINORVERSION 是否始终可靠,因为在没有 vlaid IIS 安装时可以取回值。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尽管删除了 IIS,但仍然设置了 IISMAJORVERSION 和 IISMINORVERSION 的相关文章

随机推荐