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

相关问题