WiX v3.7-如何在卸载中删除安装后创建的文件

WiX v3.7-如何在卸载中删除安装后创建的文件,wix,installation,windows-installer,wix3.7,uninstallation,Wix,Installation,Windows Installer,Wix3.7,Uninstallation,我正在使用WiX为一个程序创建一个安装程序。在配置过程中(完成安装后),程序在程序目录中创建一个日志文件和一个.dat文件。如果这些文件在安装过程中不存在,我如何告诉WiX在卸载过程中删除它们 任何建议都将不胜感激。一种方法是通过安装这些文件来定义不存在的问题。也就是说,创建并安装一个空日志文件和一个初始化为空或默认值的dat文件 另一种方法是将RemoveFile元素放在与使用这些文件最密切相关的组件元素下(例如,程序exe) 是否确实要将可写文件与程序放在同一目录中?通常,安装的程序只有管

我正在使用WiX为一个程序创建一个安装程序。在配置过程中(完成安装后),程序在程序目录中创建一个日志文件和一个.dat文件。如果这些文件在安装过程中不存在,我如何告诉WiX在卸载过程中删除它们


任何建议都将不胜感激。

一种方法是通过安装这些文件来定义不存在的问题。也就是说,创建并安装一个空日志文件和一个初始化为空或默认值的dat文件

另一种方法是将
RemoveFile
元素放在与使用这些文件最密切相关的
组件
元素下(例如,程序exe)


是否确实要将可写文件与程序放在同一目录中?通常,安装的程序只有管理员才能更改。如果程序使用任何用户可以更改的数据来影响所有用户,则数据将存储在ALLUSERS配置文件下。而且,用户可以更改的仅影响该用户的数据将存储在该用户的配置文件下


当数据以这种方式存储时,这是一个何时甚至是否应该删除此类数据的问题。用户可能希望在下次安装程序时保留该数据,即使用户不知道数据是如何持久化的。

这对我来说很有效-使用自定义命令并使用“del”或“rmdir”删除


REMOVE=“全部”

顺便说一句,Windows Installer是进行安装的软件,所以说“告诉WiX…”听起来很奇怪。RemoveFile对.dat文件非常有效,它总是被称为同一个东西。但是,日志文件根据创建日期具有动态名称。有没有办法引用一个你不知道全名的文件?我刚刚找到了我自己问题的答案。要删除不知道其全名的文件,可以在元素的“name”属性中添加通配符
<Product>
    <CustomAction Id="Cleanup_logfile" Directory="INSTALLFOLDER" 
    ExeCommand="cmd /C &quot;del install.log&quot;" 
    Execute="deferred" Return="ignore" HideTarget="no" Impersonate="no" />

    <InstallExecuteSequence>
      <Custom Action="Cleanup_logfile" After="RemoveFiles" >
        REMOVE="ALL" 
      </Custom>
    </InstallExecuteSequence>
</Product>