WIX安装阅读注册表

时间:2013-06-20 07:39:22

标签: wix wix3.5 wix3 wix3.6

我可以保留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"  />

现在有人可以帮我解决如何在第二次安装时从注册表中读取值吗?

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望在产品的安装之间保留注册表值,但是在卸载时会删除添加到注册表中的内容。正确的吗?

在这种情况下,将具有RegistryKey / RegistryValue元素的组件标记为Permanent。这将在卸载后保留。

答案 1 :(得分: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 属性来实现它。