我有一個用Wix創作的安裝程序。在UI嚮導中,有一個默認選中的複選框。我想保存此複選框註冊表更改,維修和升級的使用(的簡化版本)由羅布Mensching描述的價值"Remember Property" pattern。保存默認檢查到註冊表的Wix複選框值
複選框實現:
<Control Id="httpsCheckBox" Type="CheckBox" CheckBoxValue="true" X="30" Y="119" Width="139" Height="17" Text="Enable HTTPS services" Property="ENABLEHTTPS" />
的屬性定義:
<Property Id="ENABLEHTTPS" value="true">
<RegistrySearch Id="EnableHttpsRegistrySearch" Type="raw" Root="HKLM" Key="SOFTWARE\CompanyName\ProductName" Name="EnableHttps" />
</Property>
和物業被寫入到這裏註冊表:
<Component Id="RegistryEntries">
<RegistryKey Root="HKLM" Key="SOFTWARE\CompanyName\ProductName">
<RegistryValue Name="EnableHttps" Value="[ENABLEHTTPS]" Type="string" />
</RegistryKey>
</Component>
初始安裝精品工程。如果複選框處於選中狀態,則註冊表中的值爲「true」,如果未選中,則值爲空。
下一次安裝程序運行時,安裝例如一個新功能,該複選框如何,始終值在註冊表中設置檢查。
如果我從屬性定義中刪除了默認值,這樣複選框在第一次運行安裝程序時未被選中,一切正常。下次運行安裝程序時,複選框(和屬性)將具有來自注冊表的正確值。
這就像RegistrySearch不設置屬性,如果註冊表值是空的。
我做錯了什麼?或者有更好的方法來做到這一點?
謝謝拉米。這是一種享受。 – Smiffy 2012-01-03 05:57:55