3

當卸載先前的安裝(我使用InstallShield 2009構建的)時,我想刪除程序在卸載結束時處於的整個文件夾。我無法弄清楚如何使用自定義動作來做到這一點,所以使用下面的代碼,我決定在安裝開始後儘快刪除文件。如果程序已經安裝,這工作正常...但如果它以前沒有安裝,它將引發錯誤1701,因爲顯然,該文件夾不存在!我不知道如何解決這個問題,我幾乎不知道VBScript。我開始試着抓住這個錯誤,但顯然這在VBScript中不存在。當沒有文件時,使用VBScript&CustomAction刪除文件的InstallShield失敗

Dim fso, Folder2Delete 
Folder2Delete = "C:\Program Files\MyProgramDir" 
Set fso = CreateObject("Scripting.FileSystemObject") 
fso.DeleteFolder(Folder2Delete) 

因此,要麼,我怎麼才能堅持一個自定義操作成的InstallShield卸載,或者我怎麼可以設置VB腳本如果存在的話,只刪除一個文件?或者最後一個溝,當它不存在時,我如何才能讓它不顯示錯誤...?

非常感謝,這讓我瘋狂!

回答

4

你可以試試這個代碼:

Dim fso, Folder2Delete 
Folder2Delete = Session.Property("CustomActionData") 
Set fso = CreateObject("Scripting.FileSystemObject") 
If fso.FolderExists(Folder2Delete) Then 
    fso.DeleteFolder(Folder2Delete) 
End If 

對於這個自定義操作,那麼你可以設置操作數據(CustomActionData屬性)來:

[INSTALLDIR] 

這樣,你的操作會刪除任何安裝路徑您的用戶設置。

+0

這樣做。非常感謝你!! – Cyprus106

相關問題