1

Windows 서비스를 설치하는 MSI가 있습니다. 나는 서비스가 메시지를 받고 스스로 업데이트 할 수 있기를 원한다. 나는/Uninstall 플래그로 MSIEXEC을 실행하고 새로운 MSI를 설치하는 다른 어셈블리를 실행하는 새로운 프로세스를 시작하려고 시도했습니다.Windows 서비스 자동 업그레이드

여기서 문제는 아무 것도 보이지 않는다는 것입니다. 관리자 권한 문제인 것처럼 보였습니다. 나는 관리자 권한을 시행하기 위해 'runas'동사를 추가했습니다. MSI는 이제 실행되지만 사용자 상호 작용 (필자는 원치 않음)을 통해 UAC를 준수해야합니다. 이 프로세스를 완전히 자동화했는지 여부를 결정할 수 있습니까?

감사합니다.

+0

[서비스 (로컬 시스템 계정)에서 실행중인 msiexec] (http://stackoverflow.com/questions/2603969/running-msiexec-from-a-service-local-system-account)의 중복 가능 –

답변

1

접근 방법이 잘못되었습니다.

서비스 패키지를 직접 제거 할 필요는 없습니다. 새 버전에서 처리해야합니다. Windows Installer는 기본적으로 major upgrades을 통해이를 지원합니다.

또한 서비스가 실행되는 동안에는 서비스를 업데이트 할 수 없습니다. 따라서 서비스는 임시 파일을 만들고 프로세스를 시작해야합니다. 그런 다음 임시 프로세스가 업데이트 (새 버전 다운로드 및 실행)를 처리 할 수 ​​있습니다. 또한이 임시 프로세스는 업데이트 후에 중지되어야하며 파일을 삭제해야합니다.

보이는 것처럼 쉽지 않습니다. 그렇기 때문에 좋은 업데이터 응용 프로그램이 많은 비용을들입니다.

관련 문제