2013-12-03 62 views
4

我無法理解如何徹底刪除舊版文件,該文件曾經是我的Inno安裝程序的一部分,但不再是。當我更新到新版本的產品時,我非常希望它不在目標文件夾中。Inno安裝作廢文件刪除

我試着在[Run]部分刪除它。這有效,但是當我卸載時,我收到一個對話框,提示「某些元素無法刪除,可以手動刪除這些元素」。

很高興在安裝新版本之前不必完全卸載舊版本。我只想讓新的安裝程序在運行時刪除一個過時的文件。

有沒有將文件標記爲過時的方法?我看了Inno的文檔,但找不到任何東西。

任何幫助將不勝感激......謝謝。

+3

正確的方法是使用['[InstallDelete]'](http://jrsoftware.org/ishelp/topic_installdeletesection.htm)部分,但它會顯示文件無法關閉的頁面,如果文件正在使用,似乎你不想... – TLama

+0

給了一個去,我得到了同樣的結果:卸載產品後,我得到了「一些元素無法刪除...」的消息。看起來像這樣做的唯一方法是在安裝更新之前卸載整個事情。 – user3011976

+0

通過調用帶有明確指定的MOVEFILE_DELAY_UNTIL_REBOOT標誌的'MoveFileEx',仍然存在後門程序。這可能會在下次重啓時註冊該刪除,而不需要告知用戶。 – TLama

回答

1

事實證明,如果您在更新過程中刪除曾經是安裝過程的一部分的文件,Inno將在卸載產品時顯示錯誤消息。因此,處理這個問題的唯一方法就是完全卸載以前的版本,作爲更新到新版本的一部分。

+0

好吧,你迫使我嘗試,我不同意。如果您刪除了作爲安裝一部分的文件(從某種意義上說它是一個'[Files]'部分條目),則卸載程序不在乎它是否被刪除。 (Inno Setup 5.5.4) – TLama

+0

哇!很高興你做到了。我正在使用Inno Setup 5.5.3。我將升級到5.5.4並回報。 – user3011976

+0

Inno不會警告卸載前或通過「[InstallDelete]」刪除的文件。但它會警告如果文件/文件夾確實存在,並且它不能被刪除,將其留下。 (我知道刪除答案中的對話,但這個事實仍然存在) – Deanna