如何防止Wix在卸载时删除注册表项?

时间:2010-06-27 01:45:06

标签: windows wix wix3.5

 <RegistryKey Id="MyServerRegInstallDir" Root="HKLM" Key="Software\MyApp\Server" Action="create">
     <RegistryValue Name="InstallDir" Type="string" Value="[INSTALLDIR]" />
     <RegistryValue Name="DataDirectory" Type="string" Value="[MYAPPDATADIR]" />
  </RegistryKey>

卸载时删除子项InstallDir和DataDirectory。我该如何预防?

理想情况下,Action =“create”必须这样做。

1 个答案:

答案 0 :(得分:15)

在父组件上设置Permanent =“yes”属性。

http://wix.sourceforge.net/manual-wix3/wix_xsd_component.htm

Permanent    YesNoType      

如果此属性设置为“yes”,则安装程序在卸载期间不会删除该组件。安装程序在Windows Installer注册表设置中为组件注册一个额外的系统客户端(这基本上只意味着至少有一个产品始终引用此组件)。请注意,此选项与不设置guid的行为不同,因为虽然组件是永久性的,但它仍然可以修补(因为Windows Installer仍然跟踪它),它只是不可卸载。

相关问题