Первый таймер WiX здесь.
Я создаю установщик для моего продукта с использованием WiX, и я пытаюсь проверить, что MSMQ установлен перед продолжением установки, следуя этому SO-ответу ,Я использую элемент Condition, определенный следующим образом:
<Condition Message="MSMQ must be installed in order to proceed.">
<![CDATA[MSMQ_INSTALLED<>"false"]]>
</Condition>
Мои свойства и RegistrySearch выглядят так:
<Property Id="MSMQ_INSTALLED" Value="false" Secure="yes">
<RegistrySearch Id="Msmq.RS"
Root="HKLM"
Key="SOFTWARE\Microsoft\MSMQ"
Name="Values"
Type="raw"/>
</Property>
Но он никогда не оценивается должным образом.Установка останавливается с сообщением, независимо от того, существует ли раздел реестра.Итак, мои вопросы:
- Правильно ли я использую элемент Condition?
- Что я неправильно определил в оценке?
При дальнейшем тестировании я обнаружил, что свойство MSMQ_INSTALLED содержит значение "1: 0 2:", независимо от реестраКлюч, который я ищу, либо существующий, либо поддельный.
EDIT : Элемент Condition существует внутри элемента Product;это важное различие , поскольку перегружен элемент Condition .
EDIT : измененное условие для использования директивы CDATA и инвертирования логики внутреннего условия для более точного отражения проблемы.