我使用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;应该是别的吗?
答案 0 :(得分:3)
“操作”已被弃用,而应使用“ForceCreateOnInstall”和/或“ForceDeleteOnUninstall”代替。
您还可以在组件上使用“NeverOverwrite”以确保不删除注册表值。
要设置该值,您可以使用计划仅在卸载期间运行的自定义操作。使用NOT UPGRADINGPRODUCTCODE作为自定义操作的条件,以确保它仅在卸载期间执行。
对于产品和包装下的自定义操作,添加
<InstallExecuteSequence>
<Custom Action="YourCustomAction" After="InstallInitialize"><![CDATA[(NOT UPGRADINGPRODUCTCODE)]]></Custom>
</InstallExecuteSequence>