3

이전 설치 (InstallShield 2009를 사용하여 작성한 것)를 제거 할 때 제거가 끝날 때 프로그램이 있던 전체 폴더를 삭제하려고했습니다. . 아래 코드를 사용하여 설치가 시작 되 자마자 파일을 삭제할 수 있도록 사용자 정의 Aaction을 사용하는 방법을 파악할 수 없었습니다. 프로그램이 이미 설치된 경우에는 정상적으로 작동하지만 ... 이전에 설치되지 않은 경우 폴더가 존재하지 않기 때문에 1701 오류가 발생합니다! 이 문제를 해결하는 방법을 모르겠으며 거의 ​​VBScript를 알지 못합니다. 나는 오류를 극복하기 위해 try-catch를하기 시작했으나, VBScript에는 그것이 존재하지 않는다. 그러니 파일이 없으면 VBScript 및 CustomAction을 사용하여 파일을 제거하는 InstallShield가 실패합니다.

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

, 내가하면 Installshield의 제거로 지정 작업을 부착하거나, 어떻게 존재하는 경우에만 파일을 삭제하려면 VB 스크립트를 설정하는 방법? 또는 마지막 도랑, 어떻게 그것이 존재하지 않을 때 오류를 보이지 않게 할 수 있습니까?

고마워,이게 나를 미치게 만든다!

당신은이 코드를 시도 할 수 있습니다

답변

4

: 당신의 행동이 어떤 설치 경로를 삭제됩니다

[INSTALLDIR] 

이 방법 님이 다음 작업 데이터를 설정할 수 있습니다이 사용자 지정 작업 (CustomActionData 속성)를 들어

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

을 사용자가 설정합니다.

+0

그랬습니다. 대단히 감사합니다 !! – Cyprus106