我使用Wix3.6为我们的安装程序项目提供了这样一个场景:我们想要在安装中创建一个注册表项(如果这个注册表项还不存在),编写一个带有版本号的字符串值。在卸载过程中,我们希望保留此注册表项,但将此字符串值删除为空字符串。我知道我可以通过将“永久”设置为“永久”来实现“保留注册表项”部分,但我不知道如何让卸载擦除该值。提前感谢大家的帮助!
发布于 2012-08-01 20:54:04
就像我在caveman_dick答案的评论中提到的那样,我必须添加一个自定义操作来完成这项工作。找不到一种方法来配置WIX来执行此操作。
发布于 2012-06-28 01:22:00
不是100%确定这将工作,因为我没有做它自己,但可能值得一试。
首先,使用ForceCreateOnInstall创建密钥(不需要永久的),这不会在卸载时删除密钥:
<Component Id="RegistryEntryKey" Guid="PUT-GUID-HERE">
<RegistryKey Root="HKCU"
Key="Software\Microsoft\MyApplicationName"
ForceCreateOnInstall="yes">
<RegistryValue Type="integer"
Name="VersionNumber"
KeyPath="yes"/>
</RegistryKey>
</Component>然后只有第二个组件,它只是在安装时写入版本:
<Component Id="RegistryEntryValue" Guid="PUT-GUID-HERE">
<RegistryKey Root="HKCU"
Key="Software\Microsoft\MyApplicationName"
Action="write">
<RegistryValue Type="integer"
Name="VersionNumber"
Value="1.2.35"
KeyPath="yes"/>
</RegistryKey>
</Component>然后,当您卸载时,应该只需撤消写入。
https://stackoverflow.com/questions/11184837
复制相似问题