2013-06-20 152 views
1

我可以保留WIX安裝的寄存器值並顯示在文本框內。因爲我在註冊表中存儲了一些值,並且我卸載了該產品。如果我安裝了WIX安裝程序如何檢查註冊表值是否存在我想從註冊表中取回值並將其顯示到WIX文本框中。 寫入註冊表我在做什麼,如: -WIX安裝閱讀註冊表

<Property Id="COUNTRIES"> 
<RegistrySearch Id="RegistryWrite" Type="raw" Root="HKLM" Key="SOFTWARE\MYTest\Test" Name="COUNTRIES" /> 
</Property> 

    <RegistryKey Root="HKLM" Key="SOFTWARE\MYTest\Test" > 
    <RegistryValue Name="COUNTRIES" Value="[COUNTRIES]" Type="string" /> 

誰能幫我現在該怎麼做,而安裝第二次讀取註冊表值?

+0

代碼**的前三行是**從註冊表讀取值並將其存儲在'COUNTRIES'屬性中。什麼不起作用? – BBR

回答

1

如果我的理解正確,您希望在產品安裝之間保留註冊表值,但添加到註冊表的內容在卸載時會被刪除。正確?

在這種情況下,將RegistryKey/RegistryValue元素標記爲永久的組件。這將在卸載後保留它。

+0

雖然卸載註冊表值不是刪除它永久only.I要保留和回讀註冊表中的值,並需要顯示在文本框中說。 – reapen

0

您可以使用RegistrySearch獲取註冊表的值(如果存在)。 例如:

<Property Id="SQLCLRTYPES"> 
<RegistrySearch Id="SqlClrTypesSearch" Root="HKLM" Type="raw" 
       Key="SOFTWARE\Microsoft\Microsoft SQL Server 2012 Redist\SQL Server System CLR Types\1033\CurrentVersion" 
       Name="Version"/> 

此外,如果你想保留現有的註冊表值,您可以使用組件的NeverOverwrite屬性來實現它。