在卸载MSI软件包时,有一些空文件夹未从ProgramFiles中删除。有没有办法Wix,我可以确保卸载后与InstallDir一起删除所有空目录。
该文件夹可能被另一个进程使用。如果是这样,您甚至无法手动删除文件夹。在这种情况下,首先使用自定义操作关闭这些进程并继续卸载。现在文件夹将被删除。
如果没有进程正在运行但仍未删除,则可以按照以下步骤操作。
<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>
[要么]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搜索。
空文件夹:通常空文件夹指示组件引用问题,或通过自定义操作或应用程序本身在正常操作期间创建的文件夹。我的猜测是后者是你的情况?
一些链接: