Поскольку я не могу наложить условия на элементы в компоненте, я должен разделить элементы на два отдельных условных компонента. Вот как это сделать из каждого примера:
<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 проверяет существование каждого пользователя (игнорируя условие), прежде чем приступить к созданию каталогов. Есть ли способ пропустить эту проверку? Я уже знаю, что одного из этих пользователей не будет.