2014-11-12 3 views
1

사용자가 설치할 패키지를 선택할 수 있도록 정의 된 체인에 포함 된 각 설치 프로그램에 대한 확인란을 제공하는 WiX 번들 설치 프로그램을 만들려고합니다. (Visual Studio installer과 유사). BootstrapperApplication을 확장하고 Run 메서드를 재정 의하여 사용자 지정 부트 래퍼를 만드는 과정을 시작했습니다. 몇 가지 블로그 게시물에서 보았습니다. 체인 및 포함 된 패키지에 대한 정보에 대한 액세스를 제공하는 BootStrapperApplication 클래스에는 아무 것도 표시되지 않습니다. 이 정보는 API를 통해 사용할 수 있습니까?WiX 사용자 정의 부트 스트 래퍼 UI에서 설치 프로그램 패키지 정보에 액세스

답변

3

번들에 포함 된 패키지 및 기능에 대한 정보는 런타임에 시스템에 삭제되는 XML 파일을 통해 실제로 사용할 수 있습니다. 코드 샘플을 사용하여이 프로세스를 진행하는 일련의 블로그 게시물이 있습니다. 여기

는 질문을 다룹 (편집) 발췌입니다 : 많은 정보는 등 패키지/기능 레이아웃, 이름, 설명, IDS, 같은 윅스 XML 파일에 포함

하는 우리는 번들 모델을 빌드하는 데 사용하지만 거의 이벤트 인수를 통해 런타임에 사용 가능하지 않습니다. 그러나 WiX는 BootstrapperApplicationData.xml 파일을 생성합니다.이 파일에는 많은 정보가 포함되어 있으며 런타임에 사용 가능한 파일에 포함되어 있습니다. 해당 메타 데이터에 액세스하기 위해 런타임에 해당 파일을 구문 분석 할 수 있습니다.이 메타 데이터는 이벤트 처리기에서 채워진 모델을 사용하기 위해 검색 논리를 실행하기 전에 수행하는 것이 좋습니다. 이 파일은 모든 어셈블리 및 .msi 파일과 함께 무작위 이름 임시 폴더에 저장되므로 파일이 어디에 저장 될지 미리 알 수 없으므로 어셈블리 경로를 사용하여 찾아야합니다.

그런 다음 XML을 구문 분석하여 메타 데이터를 가져올 수 있습니다. 디버그 모드에서 임시 설치 프로그램을 실행하고 여기에 중단 점을 설정하여 XML의 내용을 검사하여 사용 가능한 전체 목록을 얻는 것이 좋습니다.

인트로 포스트는 여기에 있습니다 : 사용자의 선택에 따라 해당 데이터를 사용하거나 기존 설치에 https://www.wrightfully.com/part-3-of-writing-your-own-net-based-installer-with-wix-context-data/

세부 사항 : 패키지 및 기능의 목록을 얻기에 https://www.wrightfully.com/2013/01/part-1-of-writing-your-own-net-based.html

자세한 사항은 번들에 포함 패키지 또는 기능을 설치, 제거 또는 업그레이드하도록 설정하는 세부 정보 : https://www.wrightfully.com/2013/01/part-4-of-writing-your-own-net-based.html

+0

와우, 정말 큰 정보원. 이 질문을 게시하기 전에 귀하의 사이트를 방문했지만 링크를 제공 한 정보를 보지 못했습니다. 정말 고마워! –

+0

@ John M. Wright 3 부에서는 '디버그 모드에서 임시 설치 프로그램 실행 및 중단 점 설정'이 시나리오에서 중단 점을 사용하는 VS의 특정 단계는 무엇입니까? 내 혈압은 절대 맞지 않아! –

+1

@TinoMclaren, wix 인스톨러의 디버그 빌드를 만들면 다른 .net 앱과 똑같이 작동해야합니다. .exe 파일 옆에 .wixpdb 파일이 생기므로 모든 것을 연결해야합니다. 또한이 답변을 확인하십시오 : http://stackoverflow.com/a/15913760/682840 –