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
Windows 未删除WIX/MSI值_Windows_Wix_Installation_Windows Installer - Fatal编程技术网

Windows 未删除WIX/MSI值

Windows 未删除WIX/MSI值,windows,wix,installation,windows-installer,Windows,Wix,Installation,Windows Installer,我正在使用WIX3.8构建一个安装程序。我有这样一个自定义属性: <Property Id="FOO" Value="1234" /> 我正在使用它设置自定义注册表值: <RegistryKey Id='ID1' Root='HKLM' Key='Software\ACME\Bar' Action='create'> ... <RegistryValue Type='binary' Name='FooBinary' Value='[FOO]'/> .

我正在使用WIX3.8构建一个安装程序。我有这样一个自定义属性:

<Property Id="FOO" Value="1234" />

我正在使用它设置自定义注册表值:

<RegistryKey Id='ID1' Root='HKLM' Key='Software\ACME\Bar' Action='create'>
...
  <RegistryValue Type='binary' Name='FooBinary' Value='[FOO]'/>
...

...
...
这一切都很好,但当我卸载包时,FooBinary会留在注册表中。只有在使用自定义属性时才会发生这种情况。我做错了什么?

您可以向RegistryKey元素添加值为yes的ForceDeleteOnInstall属性

将此属性设置为“是”,以删除键及其所有值和 卸载父组件时的子键。请注意,此值 仅当程序创建附加值或子键时才有用 在该键下,您需要卸载以删除它们。MSI已经 删除它创建的所有值和子键,因此此选项 增加卸载的额外开销。默认值为“否”


只有那个来源,很难说。组件guid可能曾经(或现在)被永久化;可能guid不是唯一的,而是与其他东西共享的。@PhilDW:它是唯一的。我没有时间把问题归结到最小的错误+Buzka91的答案为我做的可能不是一个理想的解决方案,但符合我的需要。谢谢