Wix 注册表项更改

标签 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>

我希望它在卸载时不会删除该 key ,而只是将其设置为 0,因为我不确定如果删除该 key ,任务管理器会发生什么行为。

我还假设 Action="createAndRemoveOnUninstall"应该是其他内容?

最佳答案

“Action”已被弃用,您应该使用“ForceCreateOnInstall”和/或“ForceDeleteOnUninstall”。

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

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

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

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

关于Wix 注册表项更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23348803/

相关文章:

wix - 将环境变量获取到WIX属性中

xml - 如何使用wix项目部署app.config

wix - 如何比较两个(或多个)MSI文件的内容?

wix - 我可以在我的 wix Bootstrapper 项目中引用 WiX 安装项目的 MSI 输出吗?

wix - 使用WiX安装后是否可以提示重新启动计算机?

wix - 部署工具基础的源代码是否可用?

wix - 有没有办法从 CMD 卸载 Wix 包

wix:INSTALLDIR是否总是以斜杠结尾?

wix - 托管 Bootstrap : Failed while prompting for source

windows-services - 如何创建简单的 Wix 安装项目