嘿,我有一个使用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>