【问题标题】:WiX v3.7 - How to remove file in uninstall that was created after installationWiX v3.7 - 如何删除安装后创建的卸载文件
【发布时间】:2013-06-21 18:04:29
【问题描述】:

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

任何建议将不胜感激。

【问题讨论】:

  • 顺便说一句——Windows Installer 是进行安装的软件,所以说“告诉 WiX ......”听起来很奇怪

标签: wix installation windows-installer wix3.7 uninstallation


【解决方案1】:

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

http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Forced-remove-of-folder-and-files-within-td698425.html

<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>

【讨论】:

    【解决方案2】:

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

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


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

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

    【讨论】:

    • RemoveFile 非常适合 .dat 文件,它总是被称为同一个东西。但是,根据创建日期,日志文件具有动态名称。有什么方法可以引用你不知道全名的文件吗?
    • 我刚刚找到了自己问题的答案。要删除您不知道全名的文件,可以在 元素的“名称”属性中添加通配符
    猜你喜欢
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 2011-11-23
    相关资源
    最近更新 更多