2013-06-25 83 views
2

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

任何建议将不胜感激。

+0

BTW-Windows安装程序是确实的安装,因此听起来很奇怪,说软件删除“告诉WiX ......” –

回答

3

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

另一种方式是把该最密切配合使用的那些文件(例如,程序EXE)相关联的Component元件下RemoveFile元件。


你确定你想要在与程序相同的目录下可写文件吗?通常情况下,程序的安装只允许管理员更改它们。如果程序使用任何用户可以更改以影响所有用户的数据,则数据将存储在ALLUSERS配置文件下。而且,用户可以更改的数据只会影响该用户,这些数据将存储在该用户的配置文件下。

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

+0

RemoveFile对.dat文件很好用,它总是被称为同一件事。但是,日志文件具有根据创建日期的动态名称。有什么办法可以引用一个你不知道全名的文件吗? – user2437443

+0

我刚刚找到了我自己的问题的答案。要删除不知道全名的文件,可以在元素的“名称”属性中添加通配符 – user2437443

1

这为我工作 - 使用自定义命令,并使用“删除”或“命令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> 
相关问题