卸载后程序文件中存在空目录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卸载后程序文件中存在空目录相关的知识,希望对你有一定的参考价值。
在卸载MSI软件包时,有一些空文件夹未从ProgramFiles中删除。有没有办法Wix,我可以确保卸载后与InstallDir一起删除所有空目录。
答案
该文件夹可能被另一个进程使用。如果是这样,您甚至无法手动删除文件夹。在这种情况下,首先使用自定义操作关闭这些进程并继续卸载。现在文件夹将被删除。
如果没有进程正在运行但仍未删除,则可以按照以下步骤操作。
- 使用“RemoveFolder”删除卸载时的文件夹
<Directory Id="DIR_ID"> <Component Id="comp_file" Guid="INSERT_GUID_HERE"> <RemoveFolder Id="FOLDERID" On="uninstall" /> <File Id="FILEID" Source="file.txt" /> </Component> </Directory>
[要么] - 编写自定义操作并删除所有文件和文件夹。通过这种方式,您可以删除文件和文件夹以及InstallDir。
另一答案
RemoveFile / RemoveFolder:除了实现你自己的自定义动作(不推荐),还有RemoveFile / RemoveFolder concept
。在MSI文件中,这映射到RemoveFile table。在WiX中,它是使用RemoveFile Element和RemoveFolder Element实现的。
RemoveFolderEx:还有另一个可用元素,它是Util命名空间中的自定义WiX扩展。它被称为RemoveFolderEx Element。此元素还可以删除子目录 - as explained here。你可以在这里找到a brief sample(注意顶部的xmlns:util
命名空间)。并且总是有github.com搜索。
空文件夹:通常空文件夹指示组件引用问题,或通过自定义操作或应用程序本身在正常操作期间创建的文件夹。我的猜测是后者是你的情况?
一些链接:
以上是关于卸载后程序文件中存在空目录的主要内容,如果未能解决你的问题,请参考以下文章
Wix 工具集:“由于存在另一个客户端,因此不允许卸载组件”后完成清理