我正在使用 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/