如何将文件夹路径传递给自定义操作ExeCommand

时间:2016-04-07 09:21:34

标签: wix windows-installer wix3.9

我们在wix声明中有以下文件夹结构:

<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="ProgramFilesFolder" Name="$(var.ProgramFilesFolder)">
        <Directory Id="ManufacturerFolder" Name="$(var.Manufacturer)">
          <Directory Id="APPLICATIONFOLDER" Name="$(var.AppFolderName)">

            // further folders or files

          </Directory>
        </Directory>
    </Directory>
</Directory>

目标:我们要在卸载时删除APPLICATIONFOLDER。 RemoveFolderExRemoveFolder不适用于此任务,因此我们需要使用CustomAction。 CustomAction:

<CustomAction Directory="ManufacturerFolder" ExeCommand='/c rmdir /S /Q "[APPLICATIONFOLDER]"' Id="RemoveAppFolder" Execute="deferred" Impersonate="no" Return="ignore"/>

此自定义操作不会删除任何内容。什么是正确的声明?

1 个答案:

答案 0 :(得分:0)

为什么不这样做? 它必须在卸载时工作。 例如,只需将其放在您创建快捷方式的组件中即可。

<RemoveFolder 
            Id="rem_folder" 
            Directory="APPLICATIONFOLDER" 
            On="uninstall"/>
<RemoveFile Id="rem_files"
            On="uninstall"
            Directory="APPLICATIONFOLDER"
            Name="*.*"/>