2014-06-17 6 views
1

현재 Wix를 사용하여 만든 MSI를 사용하여 설치 및 업데이트 시나리오를 계획 중입니다. 초기 설치에는 타사 드라이버가 병합 모듈로 포함되며 향상된 권한이 필요합니다.Wix는 관리자 권한이 필요한 병합 모듈을 어떻게 처리합니까?

가능한 한 소프트웨어 업데이트를 자동화하고 싶으므로 업데이트 된 MSI 패키지를 정기적으로 사용할 수있게됩니다. 이 파일은 백그라운드에서 다운로드되어 다음에 사용자가 응용 프로그램을 열 때 설치됩니다. 우리는 드라이버 모듈에 대한 변경 사항이 자동 업데이트에 포함되지 않도록 프로세스를 구현할 것입니다.

변경하지 않으면 Windows Installer가 이러한 병합 모듈을 실행합니까? 이것이 전체 설치 프로그램에 어떤 영향을 미칩니 까? 코어 응용 프로그램 패키지에서 완전히 분리 할 수 ​​있도록 별도의 MSI를 만드는 것이 더 좋을까요?

답변

3

다음은 배경을 정리하는 데 도움이되는 몇 가지 배경입니다. 병합 모듈은 "실행"되지 않습니다. 사실 설치 프로그램을 빌드하면 더 이상 존재하지 않습니다. 병합 모듈은 빌드시 MSI에 병합되는 MSI 테이블 데이터가 포함 된 데이터베이스 일뿐입니다. 이를 구성 요소 모음 및 관련 메타 데이터 캡슐화라고 생각하십시오. 그것은 EXE 내부에 정적으로 링크 된 C/C++ .LIB 파일과 같습니다.

따라서 MSI 또는 MSM의 구성 요소에 설치 권한 상승이 필요한 경우 최종 MSI에는 권한 상승 권한이 필요합니다.

나는이 자동 업데이트 프로세스를 과거에 수행했습니다. 해당 프로세스가 높은 권한을 갖기를 원하고 MSI를 다운로드 한 후이를 관리 된 컴퓨터 ("축복받은"MSI)에 "광고"합니다. 이 작업은 msiexec/jm foo.msi 명령을 사용하여 수행됩니다. 그런 다음 사용자 측 프로세스에 MSI를 설치하라는 신호를 보냅니다. 올바르게 작성되면 MSI는 사용자에게 관리자 권한을 노출하지 않고 자동으로 상승합니다.

+0

감사합니다. 이렇게하면 내가해야 할 일이 훨씬 더 잘됩니다. 명확한 설명을 위해 권한이 상승 된 '프로세스'가 필요하다고 말하면 각 컴퓨터에 Windows 서비스와 같은 자동화 된 기능이 필요합니까? – pixelbadger

+0

예. 내가 함께 일한 개발 팀은 wuw4 (http://www.powerprogrammer.co.uk/helpfile/Software%20Update%20Wizard/wuwdll.htm)라는 라이브러리를 사용하는 SYSTEM으로 실행되는 Windows 서비스를 만들었습니다. 그 워크 플로를 생성하기 위해 MSI를 광고하고 MSI를 설치하는 데 필요한 보안 모델 이해 및 단계를 제공했으며 자동 고도가 올바르게 작동하도록하기 위해 따라야하는 MSI의 특정 표준을 설치했습니다. (그들이 인식하지 못했던 표준 MSI 모범 사례.) –