首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WIX:写入永久注册表项,但在卸载时擦除该值

WIX:写入永久注册表项,但在卸载时擦除该值
EN

Stack Overflow用户
提问于 2012-06-25 15:08:12
回答 2查看 2.8K关注 0票数 0

我使用Wix3.6为我们的安装程序项目提供了这样一个场景:我们想要在安装中创建一个注册表项(如果这个注册表项还不存在),编写一个带有版本号的字符串值。在卸载过程中,我们希望保留此注册表项,但将此字符串值删除为空字符串。我知道我可以通过将“永久”设置为“永久”来实现“保留注册表项”部分,但我不知道如何让卸载擦除该值。提前感谢大家的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-01 20:54:04

就像我在caveman_dick答案的评论中提到的那样,我必须添加一个自定义操作来完成这项工作。找不到一种方法来配置WIX来执行此操作。

票数 0
EN

Stack Overflow用户

发布于 2012-06-28 01:22:00

不是100%确定这将工作,因为我没有做它自己,但可能值得一试。

首先,使用ForceCreateOnInstall创建密钥(不需要永久的),这不会在卸载时删除密钥:

代码语言:javascript
复制
<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>

然后只有第二个组件,它只是在安装时写入版本:

代码语言:javascript
复制
<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>

然后,当您卸载时,应该只需撤消写入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11184837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档