WiX第一個計時器在這裏。WiX:有條件的內部文本沒有正確評估
我正在使用WiX構建我的產品的安裝程序,並且我正在嘗試驗證在繼續安裝之前安裝了MSMQ,並遵循this SO answer。我使用的是條件元素,這樣的定義:
<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:」,無論我搜索的註冊表項是現有的還是假的。
編輯:Condition元素存在於Product元素中;這是一個重要的區別as the Condition element is overloaded。
編輯:修改條件使用CDATA指令,並顛倒內部條件邏輯,以更準確地反映問題。
不知道爲什麼這是downvoted - 給我留言,如果我可以澄清或消歧這篇文章。 – grefly