Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix 卸载后,程序文件中存在空目录_Wix_Windows Installer - Fatal编程技术网

Wix 卸载后,程序文件中存在空目录

Wix 卸载后,程序文件中存在空目录,wix,windows-installer,Wix,Windows Installer,卸载MSI软件包时,有一堆未从程序文件中删除的空文件夹。Wix是否有一种方法可以确保在卸载InstallDir后删除所有空目录。RemoveFile/RemoveFolder:除了实现您自己的自定义操作(不推荐),还有RemoveFile/RemoveFolder概念。在MSI文件中,此映射到。在WiX中,它是使用和实现的 RemoveFolderEx:还有另一个元素可用,它是Util名称空间中的自定义WiX扩展。它被称为。此元素还可以删除子目录-。您可以在这里找到(注意顶部的xmlns:uti

卸载MSI软件包时,有一堆未从程序文件中删除的空文件夹。Wix是否有一种方法可以确保在卸载InstallDir后删除所有空目录。

RemoveFile/RemoveFolder:除了实现您自己的自定义操作(不推荐),还有
RemoveFile/RemoveFolder概念。在MSI文件中,此映射到。在WiX中,它是使用和实现的

RemoveFolderEx:还有另一个元素可用,它是Util名称空间中的自定义WiX扩展。它被称为。此元素还可以删除子目录-。您可以在这里找到(注意顶部的
xmlns:util
名称空间)。而且总有很多东西需要寻找

空文件夹:通常,空文件夹表示组件引用问题,或通过自定义操作或应用程序本身在正常操作期间创建的文件夹。我猜你的情况就是后者


某些链接


该文件夹可能被其他进程使用。如果是这样,您甚至无法手动删除文件夹。在这种情况下,首先使用自定义操作关闭这些进程,然后继续卸载。现在文件夹将被删除

如果没有进程正在运行,但仍然没有删除,则可以执行以下步骤

  • 卸载时使用“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一起删除

  • 好的一点,我想他也可以尝试重新启动,看看文件夹是否被删除后-如果有锁。