3
由于我无法对组件中的元素施加条件,因此必须将条目分成两个单独的条件组件。从每一个例子,这是如何做到这一点:有条件组件
<Component Id="IIS7Webhost" Guid="482EC8D7-2DA2-48e6-A11D-6CAB3C5973E8">
<Condition><![CDATA[IIS_MAJOR_VERSION >= "#7"]]></Condition>
<CreateFolder>
<Permission User="IUSR" GenericAll="yes"/>
</CreateFolder>
</Component>
<Component Id="IIS6Webhost" Guid="51C65FAC-84B7-43d1-A230-DD9AE66B5D99">
<Condition><![CDATA[IIS_MAJOR_VERSION <= "#6"]]></Condition>
<CreateFolder>
<Permission User="IUSR_[ComputerName]" GenericAll="yes"/>
</CreateFolder>
</Component>
但是这两个部件的各个系统上安装和失败,因为只有这些用户的一个存在。我在这里做错了什么?
IIS_MAJOR_VERSION
已正确设置为#6
或#7
。此外,我相信我有语法正确的,因为启动条件正常工作:
<Condition Message="Internet Information Services 5, 6, or 7 must be installed.">
<![CDATA[Installed OR (IIS_MAJOR_VERSION >= "#5" AND IIS_MAJOR_VERSION <= "#7")]]>
</Condition>
编辑:看起来既不要安装,但Windows安装程序会检查每个用户的存在(而忽略了条件)才去创建目录。有没有办法跳过这个检查?我已经知道其中一个用户将不存在。
令人敬畏的+1。感谢您的发现 - 这为我解决了一个重大问题。 – 2011-01-26 11:22:51