10
 <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" 必须这样做。

4

1 回答 1

21

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

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

Permanent YesNoType

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

于 2010-06-27T02:09:33.283 回答