WiX RemoveFolderEx不工作?

时间:2014-07-29 08:24:21

标签: wix installer windows-installer

我希望WiX在卸载时删除AppData文件夹,所以我查看了RemoveFolderEx,并按照一些帖子/指南来了解如何使其正常工作。据我所知,我的实现应该有效,但事实并非如此。我使用以下内容:

<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="AppDataFolder">
        <Directory Id="PRIVATEDATAFOLDER" Name="MyApp"/>
    </Directory>
</Directory>
<Property Id="PRIVATEDATAFOLDER">
    <RegistrySearch Root="HKCU" Key="Software\AppCo\MyApp" Type="raw" 
                    Id="APPLICATIONFOLDER_REGSEARCH" Name="PrivateDir" />
</Property>
<DirectoryRef Id='PRIVATEDATAFOLDER'>
    <Component Id="PrivateData" Guid="myGuid">
        <CreateFolder Directory="PRIVATEDATAFOLDER"/>
        <util:RemoveFolderEx Property="PRIVATEDATAFOLDER" On="uninstall"/>
        <RemoveFolder Id="PRIVATEDATAFOLDER" On="uninstall"/>
        <RegistryValue Root="HKCU" Key="Software\AppCo\MyApp" Name="PrivateDir" 
                       Type="string" Value="[PRIVATEDATAFOLDER]" KeyPath="yes"/>
    </Component>
</DirectoryRef>

我在这里做错了吗?

编辑: 检查详细日志后,我收到错误:

WixRemoveFoldersEx:错误0x80070057 :缺少文件夹属性:PRIVATEDATAFOLDER

2 个答案:

答案 0 :(得分:7)

在您的日志中,在“错误0x80070057 :缺少文件夹属性:PRIVATEDATAFOLDER”上方有一条日志行,例如“忽略不允许的属性PRIVATEDATAFOLDER”,如果有,是否尝试添加 'secure =“是”到您的PRIVATEDATAFOLDER财产?

答案 1 :(得分:1)

为属性使用与目录不同的Id。它们发生冲突,导致该属性在RemovedFoldersEx尝试处理时为空。