InstallShield silent 모드로 설치하기
InstallShield로 silent 모드로 설치하기 위해 먼저 준비 과정이 필요하다. ([1]에 설치 옵션 참조)
먼저, 다음과 같이 빌드된 setup.exe파일을 command 라인에서 실행해서 setup.iss 파일을 만든다.
>setup.exe /r -f1".\setup.iss"
>setup.exe /r -f1"C\temp\setup.iss"
>setup.exe /r -f1C\temp\setup.iss
위의 경우 다 정상 작동 한다.
참고로 /r 은 record 모드라는 뜻이다.
>setup.exe /r
위와 같이 /r만 입력해도 되는데, setup.iss파일이 C:\Windows\ 폴더에 저장된다.
setup.iss 파일에 사용자가 입력할 값들이 저장되어 있다.
그리고 다음의 명령어를 통해 silent 설치를 진행한다.
>setup.exe /s -f1".\setup.iss"
여기서 /s 는 silent 모드라는 뜻이다.
>setup.exe /s
/s만 입력했을 경우는 같은 폴더내에 setup.iss파일을 찾는다.
혹시 setup.iss파일을 찾을 수 없다면, full path를 입력한다.
참고로 setup.iss파일을 같이 배포할 수도 있다. [2]의 링크를 따라가자. 난 패쓰
같은 폴더에 setup.log파일도 생성되는데 실패시 return code를 통해 디버깅을 할 수 있다.
ResultCode keyname:
0 Success.
-1 General error.
-2 Invalid mode.
-3 Required data not found in the Setup.iss file.
-4 Not enough memory available.
-5 File does not exist.
-6 Cannot write to the response file.
-7 Unable to write to the log file.
-8 Invalid path to the InstallShield Silent response file.
-9 Not a valid list type (string or number).
-10 Data type is invalid.
-11 Unknown error during setup.
-12 Dialog boxes are out of order.
-51 Cannot create the specified folder.
-52 Cannot access the specified file or folder.
-53 Invalid option selected.
그러나, 여기서 예외 상황이 발생할 수도 있다.
InstallShield에서 Custom Dialog를 생성한 경우다.
이때는 InstallShield의 custom dialog를 생성한 스크립트에서 setup.iss 파일에 쓰고, 읽는 코드를 직접 코딩해 줘야 한다.
[3]의 링크를 따라가서 참조하자.
InstallShield의 도움말에 SdMakeName, SilentReadData, SilentWriteData 을 검색해도 된다.
간단히 설명하자면,
SdMakeName 메소드를 통해 다이얼로그의 id에 해당하는 작업을 한다고 알려주고,
SilentReadData 메소드는 다이얼로그가 뜨기 전에 MODE가 SILENTMODE이면 setup.iss 파일을 읽는 작업을 한다.
필요한 정보를 읽었으면 해당하는 작업을 완료하고 return을 해준다.
SilentWriteData 메소드는 MODE가 RECORDMODE일 경우, setup.iss파일에 기록하는 작업을 해준다.
<참고>
1. http://www.silentinstall.org/installshield.html
2. http://blog.naver.com/PostView.nhn?blogId=gegabal&logNo=90071110066
3. http://www.installationdeveloper.com/3445/make-sure-custom-dialog-scripts-run-correctly-in-silent-mode/