0

对于我们使用 WIX 3.6 的安装程序项目,我有这样一个场景:我们想在安装中创建一个注册表项(如果该注册表项尚不存在),写入一个带有版本号的字符串值。在卸载过程中,我们希望保留这个注册表项,但是将这个字符串值擦除为空字符串。我知道我可以通过将其设置为“永久”来实现“保留注册表项”部分,但我不知道如何使卸载删除该值。提前感谢您的帮助!

4

2 回答 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 回答