2012-08-07 1 views
-1

여러 프로그램과 파일 패키지를 동시에 설치하는 설치 프로그램을 만듭니다.이 중 하나는 WinZip이고, WinZip 설치 프로그램을 백그라운드에서 실행하고 싶습니다. /s을 사용하여 수집 한 내용은 자동 모드로 실행되지만 설치 프로그램은 여전히 ​​설치되지 않습니다. 나는 이것이 WinZip 설치 과정을 망각해야만하는 선택 때문이라고 생각합니다. 그래서 내 질문에 어떻게 백그라운드에서 WinZip을 자동으로 설치하도록 설정할 수 있습니까? Answer 파일이 필요합니까? 그렇다면 어떻게 그 설정을 얻을 수 있습니까? 어떤 도움이 될거야!NSIS를 사용하여 Winzip 설치 프로그램에 대한 응답 파일/.ini를 설정하는 방법

* NSIS 파일에 내 코드의 조각 :

Section 
IfFileExists "C:\Program Files\WinZip\WINZIP32.EXE" Dont_Install 
SetOutPath $TEMP 
File "Installerfiles\WinZip165.exe" 
DetailPrint "Starting Winzip installation" 
ExecWait "/s WinZip165.exe" 
Delete $TEMP\WinZip165.exe 
SetOutPath $INSTDIR 
Goto done 
Dont_Install: 
MessageBox MB_OK "You seem to have this program \ 
(WinZip) already installed" 
done: 
SectionEnd 

*이 질문에 내가 대답을 수립 얼마나 더 윈집 특정과 관련, 나는이 자동 설치를 필요에 다른 질문을 보았다주의 필요한 경우 파일.

답변

2

ExecWait "/s WinZip165.exe" 분명히 잘못된 것입니다, 그들은이 .MSI을 제공 할 ...

을가 ExecWait '"$TEMP\WinZip165.exe" /S'해야하지만 윈집은 NSIS 기반 설치 프로그램을 사용하여 생각하지 않는다, 당신은 좀 봐 할 수 있습니다. 해당 기술 자료에는 thisthis과 같은 유용한 팁이 포함되어 있습니다. 인터넷을 통해 find 몇 가지 다른 도움말을 참조 할 수도 있습니다 ...

자동 설치 모드에 대해 다른 질문이있는 경우 WinZip support으로 연락해야합니다.

0

충분한 평판이 아직 없기 때문에 Anders 응답에 대해서는 언급 할 수 없으므로, 다음은 msi 설치 프로그램을 자동 설치하기 위해 사용하는 명령입니다. 설치 프로그램에서 복사 한 명령은 내가 원할 때 여러 번 사용했습니다. 여러 프로그램을 설치합니다.

이것은 Anders의 조언을 받아서 WinZip의 msi 버전을 사용하려고한다고 가정합니다.

또한 Anders는 실행하려고하는 설치 프로그램의 전체 경로를 사용하지 않는 코드의 오류 중 하나를 언급합니다. 또한 경로를 작은 따옴표로 묶는 것이 항상 좋은 생각이라는 점에 유의하고 싶습니다. 예를 들어, 당신은 할 때

Delete $TEMP\WinZip165.exe 

은과 같이 작은 따옴표를 추가

Delete '$TEMP\WinZip165.exe' 

이것은 또한 당신이 할 때 적용하여

SetOutPath '$TEMP' 

SetOutPath '$INSTDIR' 

당신 동안 너와 함께 대부분의 경우를 벗어날 수있다. 작은 따옴표를 사용하면 공백이있는 경로를 발견하면 공백을 구분하고 문자열을 여러 조각으로 나누기 때문에 매크로 나 무언가에 패스를 전달하려고하면 두통을 겪을 수 있습니다. 공백이있을 수도 있고 없을 수도있는 Windows 경로를 다룰 때마다 들어가는 것이 좋은 습관 일뿐입니다.

BTW는이 답변을 수락하지 않으므로 Anders가 이미 말한 내용에 대한 후속 조치로만 작성했습니다.

관련 문제