Wix注册表项更改

时间:2014-04-28 18:40:54

标签: wix

我使用WiX安装程序文件来编辑注册表项,但是当它被卸载时我希望它被设置为默认值0。

以下是我用来将其设置为1的代码。

  <DirectoryRef Id="TARGETDIR">
<Component Id="RegistryEntries" Guid="PUT-GUID-HERE">
  <RegistryKey Root="HKCU"
               Key="Software\Microsoft\Windows\CurrentVersion\Policies\System"
        Action="createAndRemoveOnUninstall">
    <RegistryValue Type="integer" Name="DisableTaskMgr" Value="1" KeyPath="yes"/>
  </RegistryKey>
</Component>

我想要它,以便卸载时它不会删除密钥,只是将其设置为0,因为我不确定如果密钥被删除,taskmanager的行为是什么。

我还假设Action =&#34; createAndRemoveOnUninstall&#34;应该是别的吗?

1 个答案:

答案 0 :(得分:3)

“操作”已被弃用,而应使用“ForceCreateOnInstall”和/或“ForceDeleteOnUninstall”代替。

您还可以在组件上使用“NeverOverwrite”以确保不删除注册表值。

要设置该值,您可以使用计划仅在卸载期间运行的自定义操作。使用NOT UPGRADINGPRODUCTCODE作为自定义操作的条件,以确保它仅在卸载期间执行。

对于产品和包装下的自定义操作,添加

<InstallExecuteSequence>
  <Custom Action="YourCustomAction" After="InstallInitialize"><![CDATA[(NOT UPGRADINGPRODUCTCODE)]]></Custom>
</InstallExecuteSequence>
相关问题