对于我们使用 WIX 3.6 的安装程序项目,我有这样一个场景:我们想在安装中创建一个注册表项(如果该注册表项尚不存在),写入一个带有版本号的字符串值。在卸载过程中,我们希望保留这个注册表项,但是将这个字符串值擦除为空字符串。我知道我可以通过将其设置为“永久”来实现“保留注册表项”部分,但我不知道如何使卸载删除该值。提前感谢您的帮助!
问问题
2777 次
2 回答
1
不是 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>
然后应该在卸载时撤消写入。
于 2012-06-27T17:22:00.433 回答
0
就像我在 Caveman_dick 回答的评论中提到的那样,我必须添加一个自定义操作来完成这项工作。找不到配置 WIX 的方法。
于 2012-08-01T12:54:03.750 回答