2011-07-28 12 views
1

저는 Wix에 익숙하기 때문에이 질문이 의미가 없지만 병합 모듈에 대한 업그레이드 코드가없는 이유는 무엇입니까? 현재 일반 MSI를 만든 작은 응용 프로그램이 있습니다. 이제이 응용 프로그램에 대한 병합 모듈을 만들어 다른 응용 프로그램과 함께 설치할 수 있도록하고 싶습니다.이 응용 프로그램은 많은 관련 응용 프로그램의 일부로 클라이언트에 제공 될 것입니다. 내 병합 모듈이 내 응용 프로그램이 이미 설치되어 있는지 감지하고 필요한 경우 업그레이드하지만 병합 모듈의 업그레이드 코드는 없습니다. 이것을 달성 할 수있는 방법이 있습니까?Wix 병합 모듈 업그레이드 코드

내가 원하는 것은 다음과 같은 동작입니다. 단어, Excel 등을 모두 자신의 MSI와 별도로 설치할 수 있다고 가정하십시오.하지만 MSMs for Words, Excel을 모두 설치할 수도 있습니다. .. 물론 MSI에서 Excel을 처음 시작한 다음 Office 용 MSI를 실행하면 Excel 용 MSM이 이미 설치되어 있고 필요한 경우 업그레이드하거나 최신 상태 인 경우 아무 작업도 수행하지 않습니다.

귀하의 도움에 감사드립니다.

답변

3

업그레이드는 전체 제품 수준에서 처리됩니다. 병합 모듈은 제품에 포함 된 관련 구성 요소의 모음입니다. 따라서 병합 모듈은 업그레이드를 지정하는 잘못된 위치입니다.

그러나 설명하는 시나리오에서는 업그레이드 할 필요가 없습니다. Windows Installer는 버전 번호가 올라갈 때 개별 파일을 업그레이드합니다. 버전 규칙 전체 목록은 MSI SDK의 "파일 버전 규칙"을 참조하십시오.

+0

고마워요. 이 병합 모듈 내에 약 20 개의 파일이있는 경우 모두이 파일 버전 관리 체계를 따라야합니까? 또한 이러한 파일 중 2 개가 등록해야하는 COM 구성 요소 인 경우 어떻게해야합니까? 파일이 변경되면 다시 등록 할 수 있습니까? – Carl

+1

예, 파일이 업데이트되면 버전 번호가 변경되어야합니다. MSI는 본질적으로 버전 번호를 신뢰하므로 변경되지 않으면 MSI는 버전 번호를 신뢰하지 않습니다. COM 등록에도 동일한 작업이 적용됩니다. 파일과 동일한 구성 요소에 레지스트리 항목을 넣고 파일의 버전 번호를 증가 시키면 MSI는 파일을 업그레이드하고 레지스트리 값을 작성합니다. –

+0

잘 이해한다면 병합 모듈은 파일 버전 관리에 의존하기 때문에 파일을 설치하는 경로를 하드 코드해야합니다. MSI에서 MSM을 설치할 위치를 결정하도록하면 시스템의 여러 위치에 파일을 여러 개 발견 할 수 있습니다. – Carl

관련 문제