我正在尝试使用RemoveFolderEx在卸载后删除Roaming / MyApp文件夹,不过,在使用'msiexec / i / l * v'命令并检查安装程序日志后,我遇到了这个:
MSI(s)(64:40)[10:30:45:254]:调用远程自定义操作。 DLL: C:\ Windows \ Installer \ MSI860E.tmp,入口点:WixRemoveFoldersEx MSI (s)(64:74)[10:30:45:254]:生成随机cookie。 MSI(s)(64:74) [10:30:45:256]:使用PID 52380(0xCC9C)创建自定义操作服务器。 MSI(s)(64:8C)[10:30:45:657]:作为服务运行。 MSI(s)(64:8C) [10:30:45:704]:您好,我是您的32位模拟自定义操作 服务器。 WixRemoveFoldersEx:错误0x80070057:缺少文件夹 属性:APPLICATIONFOLDER行: wrf4C77709F2CC40D572056B8DB1B2D0A3E CustomAction WixRemoveFoldersEx 返回实际的错误代码1603,但将转换为成功到期 继续标记行动结束10:30:45:WixRemoveFoldersEx。返回 价值1。
我似乎无法让它发挥作用。我按照本指南实施了它:http://www.hass.de/content/wix-how-use-removefolderex-your-xml-scripts
这是我的Wix代码:
<Property Id="APPLICATIONFOLDER">
<RegistrySearch Key="Software\Wah\MyApp" Root="HKCU" Type="raw"
Id="REGSEARCH" Name="Path" />
</Property>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="AppDataFolder">
<Directory Id="PrivateData" Name="MyApp">
<Component Id="RemovePrivateData" Guid="*">
<RegistryValue Root="HKCU" Key="Software\Wah\MyApp"
Name="Path" Type="string"
Value="[AppDataFolder]" KeyPath="yes"/>
<util:RemoveFolderEx On="uninstall"
Property="APPLICATIONFOLDER"/>
<RemoveFolder Id="AppDataFolder" On="uninstall"/>
</Component>
</Directory>
</Directory>
</Directory>
在查看Regedit之后,该值确实设置为正确的路径。
任何帮助都会非常感激,因为我几乎看过RemoveFolderEx的所有问题并且没有特别的帮助。
编辑:我已经通过向我的APPLICATIONFOLDER属性添加'Secure =“yes”'属性来修复此问题,如下所示:
<Property Id="APPLICATIONFOLDER" Secure="yes">
<RegistrySearch Key="Software\Wah\MyApp" Root="HKCU" Type="raw"
Id="REGSEARCH" Name="Path" />
</Property>