2013-06-25 203 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> 
相關問題