2017-05-23 27 views
0

다양한 모듈을 설치하는 wix 번들이 있습니다. 모듈 중 하나가 시스템 재부트를 유발할 수 있습니다. 이제는 UI 설치가 끝난 후 번들 설치가 끝나면 프롬프트가 나타나기를 바랄 것입니다. 자동 설치가되어 있다면 자동 재부팅을 피하고 싶습니다. 설치로 인해 재부팅이 발생한다는 것을 사용자가 알지 못할 수도 있습니다.Wix 굽기 설치 프로그램은 자동 설치시 다시 부팅하지 않습니다.

다양한 스레드와 옵션을 살펴보면 자동 설치를 위해 "/ norestart"매개 변수를 전달할 수 있다는 것을 알았습니다. 자동 재부팅을 처리하지 않을 것입니다. 따라서 사용자가 "/ norestart"매개 변수를 전달하지 않고 해당 매개 변수가 전달 된 경우에만 허용하면 자동 설치를 실패합니다. "/ norestart"가 REBOOT (https://msdn.microsoft.com/en-us/library/windows/desktop/aa371101(v=vs.85).aspx)의 특정 값에 매핑되기를 바랬지 만 "/ norestart"매개 변수를 전달하는지 여부에 관계없이 로그의 REBOOT 값은 항상 "ReallySuppress"하지만 매개 변수가 전달되면 자동으로 재부팅되지 않고 매개 변수가 전달되지 않을 때 재부팅됩니다. 나는 그것을 결정하는 방법과 프로그래밍 방식으로 그것을 결정하는 방법에 관해서 정말로 혼란 스럽다. 이 그것을 다시 부팅하지 않는 경우에서입니다

Command Line: ALLUSERS=1 ARPSYSTEMCOMPONENT=1 MSIFASTINSTALL=7 CWD=<...> REBOOT=ReallySuppress CURRENTDIRECTORY=<...> CLIENTUILEVEL=3 MSICLIENTUSESEXTERNALUI=1 CLIENTPROCESSID=2240 

(나는 "/ NORESTART"매개 변수를 전달하지 않는 경우)이 재부팅 할 때

은 (구성 요소 중 하나의 로그에서입니다 I 때 "/ norestart"매개 변수 전달)

Command Line: ALLUSERS=1 ARPSYSTEMCOMPONENT=1 MSIFASTINSTALL=7 CWD=<...> REBOOT=ReallySuppress CURRENTDIRECTORY=<...> CLIENTUILEVEL=3 MSICLIENTUSESEXTERNALUI=1 CLIENTPROCESSID=1984 

도움이나 조언을 보내 주시면 감사하겠습니다. 나에게 더 많은 정보를 주길 원하거나 뭔가 확실하지 않다면 알려주세요. 시간 내 주셔서 감사드립니다.

참조는 : 당신이 발견으로 https://msdn.microsoft.com/en-us/library/windows/desktop/aa372024(v=vs.85).aspx

https://msdn.microsoft.com/en-us/library/windows/desktop/aa371101(v=vs.85).aspx

답변

0

, MSI 패키지는 항상 재부팅을 시작 억제된다.

누락 된 부분은 부트 스트 래퍼 애플리케이션 (예 : WixStdBA 또는 맞춤/관리 BA)이 재부팅을 제어한다는 것입니다.

BA는 각 MSI 패키지 설치 결과를 검사합니다. MSI 패키지 중 하나라도 재부팅이 필요한 경우 부트 스트 래퍼 응용 프로그램이 재부팅을 시작합니다 (사용자가 허용하지 않거나 /norestart 스위치가 전달 된 경우 등).

/norestart 명령 줄 스위치는 부트 스트 래퍼 응용 프로그램이 번들/체인의 끝에서 재부팅을 시작하지 못하게합니다.

/norestart이 없을 경우 설치를 차단하려면 사용자 지정 부트 스트 래퍼 응용 프로그램을 사용해야합니다.

하지만 맞춤 부트 스트 래퍼 애플리케이션을 사용하려는 경우 기본 동작 (예 : /norestart을 기본값으로 변경)을 변경하는 것이 좋습니다.

0

REBOOT 속성의 기본값은 ReallySuppress가 아니기 때문에 다른 작업이 진행 중입니다. 소스, 사용자 지정 작업 또는 MSI를 보지 않고 이것이 왜 그런지 말할 수 없습니다. 전체 자세한 로그에 설정이 표시 될 수 있습니다. MSI의 Property 테이블에있을 수 있습니다. 그것은 커스텀 액션 코드로부터 설정할 수 있습니다; 명령 줄에 무엇이 있습니까? 형사가 필요합니다.

다른 문제는 완전히 자동 설치는 재부팅을 요구하지 않는다는 것입니다. 왜냐하면 자동 설치는 요청할 수 없으므로 다른 설정, ScheduleReboot 가능성 등에 대한 설정이 다소 명확하지 않기 때문입니다./qb와 같은 전통적인 명령 줄 옵션을 사용하는 것이 더 쉽다는 것을 알았습니다. 사람들이 암호를 해독 할 필요가있는 경우 어딘가에 완전한 전체 자세한 로그를 게시하십시오.

일반적으로 재부팅을 억제하는 것은 좋은 생각이 아닙니다. 파일을 재부팅해야하는 방식으로 교체해야하는 주된 이유가 있습니다. 즉, 다음 번 다시 부팅 할 때까지 설치가 완료되지 않았으며 설치된 응용 프로그램을 실행하려고하면 아직 설치되지 않은 최신 파일 대신 이전 파일이 사용되는 경우 문제가 발생할 수 있습니다.