2008-09-26 6 views
1

업그레이드하기 전에 때때로 다시 시작해야하는 드라이버를 설치하는 Windows Installer MSI 패키지가 있습니다. 드라이버는 WriteRegistryValues ​​이후 지연된 사용자 지정 동작으로 설치됩니다. 재부팅이 필요한 경우 롤백이 발생하고 사용자에게 다시 부팅하고 설치를 다시 실행하라는 메시지가 표시됩니다.Windows Installer - 재부팅 후 업그레이드 다시 시작

InstallExecuteSequence에서 RemoveExistingProducts 작업은 InstallValidate와 InstallInitialize 사이에 있으므로 다시 시작해야한다는 신호가 있으면 이전 패키지가 제거되었습니다. 따라서 재부팅이 필요할 때 롤백과 "재부팅 후 다시 실행"이라는 오류 메시지가 표시되면 소프트웨어가 더 이상 설치되지 않습니다. 사용자가 재부팅하고 설치를 반복하면 정상적으로 작동합니다.

나는 재부팅하고 설치를 다시 시작 자동화해야하므로 사용자가 실제로 아무것도 할 필요가 없습니다 (물론 다시 시작에 동의 그렇다.)

레지스트리의하여 runonce 키에 기록 명령을 실행할 수 있습니다 재부팅 후에 다시 설치하지만, 드라이버 설치를 연기하는 지연된 사용자 지정 작업에서 발생하는 상황에 대해 ForceReboot을 조건 설정하는 것이 까다로울 것이라고 생각합니다. 또한 재개 된 설치에서 수행 할 작업을 결정하는 것이 까다로울 수도 있습니다.

잠재적 인 문제에 대한 모범 사례 또는 조언에 대한 조언을 매우 환영합니다.

답변

2

InstallInitialize 이전 또는 InstallFinalize 전에 RemoveExistingProducts를 실행하면 업그레이드가 완료되기 전에 이전 제품이 제거되었다고 했으므로 InstallFinalize가 새 제품의 감사 스크립트에 작업을 넣지 않습니다.

RemoveExisitngProducts 실행을 InstallInitialize와 InstallFinalize 사이에 넣으려고 할 수 있습니다. 즉, 제거 스크립트의 부분에 Remove가 있으므로 재부팅과 재개를 추적 할 수 있습니다.

시스템 재시작 속성을 살펴보십시오. here

관련 문제