WiX:删除appdata文件夹中的文件和子文件夹

时间:2014-07-16 13:51:10

标签: wix

我已经广泛搜索了如何做到这一点的答案,虽然我遇到了一些答案,但他们要么不够具体,要么对我的WiX知识来说太高级了。

如何在使用WiX卸载程序时删除应用程序(而非安装程序)创建的appdata文件夹中的文件夹,文件和子文件夹(以及父文件夹)。

使用控制面板卸载应用程序将删除AppData中的文件夹,但是,当使用安装程序卸载应用程序时,情况并非如此。

非常感谢任何帮助。

我目前有:

<Property Id="APPLICATIONFOLDER">
    <RegistrySearch Root="HKCU" Key="Software\AppCo\AppName" Type="raw" Id="APPLICATIONFOLDER_REGSEARCH" Name="PrivateDir" />
</Property>

<DirectoryRef Id='PrivateDataFolder'>
    <Component Id="PrivateData" Guid="*">
        <CreateFolder Directory="PrivateDataFolder"/>

        <util:RemoveFolderEx On="uninstall" Property="APPLICATIONFOLDER" />

        <RemoveFolder Id="PrivateDataFolder" On="uninstall"/>
        <RegistryValue Root="HKCU" Key="Software\AppCo\AppName" Name="PrivateDir" Type="string" Value="[PrivateDataFolder]" KeyPath="yes"/>
    </Component>
</DirectoryRef>

但是,这似乎不起作用。

Edit2:文件夹中将删除某些文件,但不会删除整个文件夹和子文件夹。

1 个答案:

答案 0 :(得分:0)

RemoveFolderEx与分配给AppData中父文件夹的组件一起使用。 Bob Arnson进一步讨论here。请注意,您不能使用已分配的目录,因此创建注册表项以获取要删除的AppData文件夹的路径将是谨慎的。确保在项目中包含UtilExtension。