【发布时间】:2017-11-09 07:07:07
【问题描述】:
我有一个 wix 安装项目,它创建了一个 ProgramMenu 快捷方式和一个桌面快捷方式。我可以使用 RemoveFolder 删除这些快捷方式。
<!-- To remove Desktop shortcut -->
<RemoveFolder Id="RemoveDesktopFolder" Directory="DesktopFolder" On="uninstall"/>
<!-- To remove ProgramMenu shortcut-->
<RemoveFolder Id="CleanUpShortCut" Directory="ApplicationProgramsFolder" On="uninstall" />
但是,在卸载时,我还希望能够清除当前用户的LocalAppData。更具体地说,Users\CurrentUser\AppData\Local\my_application
到目前为止,我发现 RemoveFolder 不会递归删除文件,我必须使用 util:RemoveFolderEx。我就是这样做的:
<Directory Id="LocalAppDataFolder" Name="Local">
<Directory Id="RemoveLocalData" Name="my_application">
<Component Id="RemoveLocalAppData" Guid="PUT-GUID-HERE">
<util:RemoveFolderEx On="uninstall" Property="RemoveLocalData"/>
<RemoveFolder Id="RemoveLocalData" On="uninstall"/>
</Component>
</Directory>
</Directory>
我得到这个错误:
冰38: 组件 RemoveLocalAppData 安装到用户配置文件。它必须使用一个 HKCU 下的注册表项作为其 KeyPath,而不是文件。
我认为我没有正确使用 RemoveFolderEx,但我不知道在这种情况下清除我的 LocalAppData 的正确方法。
注意,我在安装过程中不创建文件夹。相反,此 [LocalAppData]\my_application 是由应用程序在运行时在安装后创建的。
【问题讨论】:
-
我找到了一个可能对这个问题有用的链接。如果它解决了我的问题,将更新帖子。 pkisensee.wordpress.com/2015/10/06/…
标签: wix local uninstallation appdata