卸载以前的安装(我使用InstallShield 2009构建)时,我想删除卸载结束时程序所在的整个文件夹。我无法弄清楚如何使用自定义Aaction,所以使用下面的代码,我决定在安装开始后立即删除该文件。如果程序已经安装,这可以正常工作......但如果之前没有安装它,它会抛出一个错误1701,因为很明显,该文件夹不存在!我不知道如何解决这个问题,我几乎不知道VBScript。我开始尝试使用try-catch来掩盖错误,但显然在VBScript中不存在。
Dim fso, Folder2Delete
Folder2Delete = "C:\Program Files\MyProgramDir"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder(Folder2Delete)
那么,如何将自定义动作粘贴到InstallShield中的卸载中,或者如何将VB脚本设置为仅删除文件(如果存在)?或者最后一个沟渠,如何在不存在的情况下让它不显示错误......?
非常感谢,这让我发疯!
答案 0 :(得分: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]
这样您的操作就会删除用户设置的任何安装路径。