Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WIX安装读取注册表_Wix_Wix3.5_Wix3_Wix3.6 - Fatal编程技术网

WIX安装读取注册表

WIX安装读取注册表,wix,wix3.5,wix3,wix3.6,Wix,Wix3.5,Wix3,Wix3.6,我是否可以保留WIX安装的注册表值并在文本框内显示。因为我在注册表中存储了一些值,并且我卸载了该产品。如果我安装了WIX安装程序,如何检查注册表值是否存在如果存在,那么我想从注册表中获取该值并显示到WIX文本框。 在注册表中写入内容时,我的做法如下:- <Property Id="COUNTRIES"> <RegistrySearch Id="RegistryWrite" Type="raw" Root="HKLM" Key="SOFTWARE\MYTest\Test" Na

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


现在有人能帮我在第二次安装时如何从注册表读取值吗?

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


在这种情况下,将包含RegistryKey/RegistryValue元素的组件标记为永久组件。这将在卸载后保留它。

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


在这种情况下,将包含RegistryKey/RegistryValue元素的组件标记为永久组件。这将在卸载后保留它。

您可以使用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属性来实现它。

如果注册表存在,可以使用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属性来实现它。

卸载注册表值时,不会删除它的永久值。我想保留并从注册表中读取值,需要在文本框中显示say。卸载注册表值时,不会删除它的永久值。我想保留并从注册表中读回值,并需要在文本框中显示say。代码的前三行是从注册表中读取值,并将其存储在
国家
属性中。什么不起作用?代码的前三行是从注册表读取值,并将其存储在
国家/地区
属性中。什么不起作用?