2013-06-20 47 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属性来实现它。