2012-10-22 2 views
9

배경 정보 - 우리 회사의 공급 업체가 제공하는 4 개의 MSI가 있으며 회사 서버 (우리는 약 3500 개의 서버를보고 있습니다)에 연결해야합니다. 지금, 제 동료들은 vbs, ps1 스크립트를 사용하여이를 관리하고 있습니다. 그러나 스크립트의 문제점은 매번 업데이트가 발생하기 때문에 새로운 패키지를 실행하기 전에 기존 패키지를 제거하고 하드 코딩을해야한다는 점입니다.WIX 번들에서 CustomAction을 사용하는 방법은 무엇입니까?

모든 4 개의 MSI를 함께 패키징하기 위해 WIX 스크립트를 설정하여 전체 프로세스를 자동화하고 싶습니다 (매우 적은 하드 코딩으로). WIX 번들에 대해 읽었고 단일 MSI를 만드는 데 사용했습니다. 하지만 이제는 4 가지 MSI에 전달할 변수가 많이 있으므로 MSI가 실행되는 환경/컴퓨터를 기반으로 이러한 변수를 설정하기 위해 사용자 지정 작업을 사용하는 방법을 생각했습니다. 하지만 나는 일할 수있는 맞춤 행동을 할 수 없습니까? 내가 놓친 게 있니?

번거 로움이 조금 발생하고 번들에 CustomActions가없는 것처럼 보았습니까? 누군가 확인할 수 있습니까?

또한 CA가없는 경우 내 옵션은 무엇입니까? 4 MSI에 전달할 변수를 어떻게 조작 할 수 있습니까? 그들 중 대부분은 실행중인 머신 (설치 경로, 사용자 ID, 응용 프로그램 풀 ID 등)에 따라 설정해야합니다. 내가보기로

답변

4

, 당신은 세 가지 옵션이 있습니다

  1. 는 당신이 필요로하는 정보가 무엇인지에 따라, 당신은 어떤 당신이 할 수있는, 파일 검색을 레지스트리 키를 읽고 수행으로 간단한 작업을 수행 할 WixUtilExtension을 사용할 수 있습니다 그 결과를 속성으로 설치 패키지에 전달하십시오.

  2. 번들이 아닌 개별 설치 패키지 자체에서 사용자 지정 작업을 구현하십시오.

  3. 사용자 정의 부트 스트 래퍼 응용 프로그램을 작성하여 설정해야하는 모든 등록 정보를 판별 한 다음 설치 패키지에 전달하십시오. 이것은 # 1과 # 2보다 더 복잡하지만 당신의 관심은 다음 링크를 얻을해야하는지 시작 : introducing managed bootstrapper applications와 비제이에 의해 확인 된 네 번째 옵션, 유용한 경량 해킹,이 을 write a wpf wix installer

+0

의미가 있습니다. 번들에서 CA가 실행되도록 가능한 모든 노력을 기울였습니다. 단지 호출되지 않습니다. 내가 이해하는 바에 따르면 WIX 번들은 MSI 파일을 생성하지만 실제 MSI 파일은 아닙니다 (msiexec로 실행하거나 ORCA로 열 수 없습니다). 그것은 단지 모든 exe ​​또는 모든 MSI를 함께 결합한 프로그램이며 MSI의 속성을 가지고 있지 않습니다. PS : MS가 MSI로 이름을 지어 혼란스럽게 만들었다 고 생각합니다. – Isaiah4110

+0

@ user1766402, 나는 당신의 질문을 읽을 때까지 msi로 번들을 출력하는 것이 가능하다는 것을 깨닫지 못했습니다. Visual Studio에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택하고 출력을 .exe로 변경할 수 있습니다. 어쨌든 기본값은 번들/부트 스트 래퍼 프로젝트의 기본값입니다. – BryanJ

+3

WiX 번들은 MSI가 아니며 실행 파일입니다. .exe를 .msi로 바꾸면 변경되지 않습니다. :) –

9

Kotecha (http://vijayskotecha.blogspot.com/2013/07/wix-bootstrapper-custom-action.html 참조) ...

기본적으로 통과 .bat 또는 .cmd 배치 파일 주위에 <ExePackage>을 빌드하십시오. 배치/명령 파일에는 모든 명령 줄 인수를 첫 번째 클래스 명령으로 다시 실행하는 단일 줄 '%*'이 들어 있습니다. 따라서

:

WixCustomAction.cmd는 ' %*'를 포함하는 파일입니다
<ExePackage ... SourceFile="SourcePath\WixCustomAction.cmd" 
    InstallCommand="my_custom_action.exe my_custom_parameters" /> 
<ExePackage ... SourceFile="SourcePath\WixCustomAction.cmd" 
    InstallCommand="my_next_action.exe my_next_parameters" /> 

.

이들 은 필요에 따라, 필요에 따라 상이한 InstallCommand을 사용하여 연속적으로 배치 될 수있다.

관련 문제