InstallShield使用VBScript删除文件&;当出现';没有档案

InstallShield使用VBScript删除文件&;当出现';没有档案,vbscript,windows-installer,installshield,installshield-2009,Vbscript,Windows Installer,Installshield,Installshield 2009,卸载以前的安装(我使用InstallShield 2009构建)时,我想删除卸载结束时程序所在的整个文件夹。我不知道如何使用自定义aaaction来实现这一点,因此使用下面的代码,我决定在安装开始后立即删除该文件。如果程序已安装,则此操作正常。。。但是如果之前没有安装,它会抛出一个错误1701,因为很明显,该文件夹不存在!我不知道如何解决这个问题,我几乎不知道VBScript。我开始做一个try-catch来掩饰错误,但显然VBScript中不存在这种情况 Dim fso, Folder2Del

卸载以前的安装(我使用InstallShield 2009构建)时,我想删除卸载结束时程序所在的整个文件夹。我不知道如何使用自定义aaaction来实现这一点,因此使用下面的代码,我决定在安装开始后立即删除该文件。如果程序已安装,则此操作正常。。。但是如果之前没有安装,它会抛出一个错误1701,因为很明显,该文件夹不存在!我不知道如何解决这个问题,我几乎不知道VBScript。我开始做一个try-catch来掩饰错误,但显然VBScript中不存在这种情况

Dim fso, Folder2Delete
Folder2Delete =  "C:\Program Files\MyProgramDir"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder(Folder2Delete)
那么,如何将自定义操作粘贴到InstallShield中的卸载中,或者如何将VB脚本设置为仅删除存在的文件?或者最后,当它不存在时,我如何使它不显示错误

非常感谢,这让我发疯了

您可以尝试以下代码:

Dim fso, Folder2Delete
Folder2Delete = Session.Property("CustomActionData")
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists(Folder2Delete) Then
  fso.DeleteFolder(Folder2Delete)
End If
对于此自定义操作,您可以将操作数据(CustomActionData属性)设置为:


这样,您的操作将删除用户设置的任何安装路径。

就是这样做的。非常感谢你!!
[INSTALLDIR]