2013-06-06 1 views
0

두 부분으로 나누어 진 응용 프로그램의 설치 프로그램을 만듭니다. 첫 번째 부분은 서버에 설치된 MSI 파일입니다. 여기에는 모든 제품 실행 파일 및 데이터 파일과 클라이언트 응용 프로그램 용 설치 프로그램이 포함됩니다. 이것은 WiX (v3.7)을 사용하여 쉽게 만들 수 있습니다. 클라이언트 설치 프로그램 (네트워크 워크 스테이션에서 실행)은 워크 스테이션에 필수 구성 요소를 설치하고 네트워크 드라이브의 응용 프로그램에 대한 바로 가기를 작성하기 만하면됩니다. Burn을 사용하여 클라이언트 설치 프로그램을 만들지 만 생성 된 바로 가기를 가져올 수 없습니다.WiX Burn을 사용하여 네트워크 드라이브에 대한 바로 가기를 설정하는 방법

제 문제는 클라이언트 설치 프로그램 (MSI)이 응용 프로그램이있는 네트워크 디렉터리를 알 수없는 방법입니다. 부트 스트 래퍼가있는 디렉토리이지만 포함 된 클라이언트 설치 프로그램이 해당 디렉토리에서 실행되지 않습니다.

이 디렉토리를 얻는 방법 또는 전체 설치 순서에 접근하는 더 좋은 방법이 있습니까?

답변

0

사용자 지정 부트 스트 래퍼 응용 프로그램 DLL (BA)을 사용하면 프로세스의 항목 모듈에 대한 경로를 가져 와서 Burn 변수를 설정할 수 있습니다. 그런 다음 Bundle에서 burn 변수를 정의한 다음이를 Windows Installer 패키지에 속성으로 전달하십시오. 설치 프로젝트의 속성을 사용하십시오.

사용자 지정 BA 프로젝트를 설정하면 .NET 프로젝트 [tutorial]를 만드는 것이 훨씬 쉽습니다.

<Variable 
    Name="BootstrapperDirectory" 
    Persisted="yes" 
    Type="string" 
    bal:Overridable="yes" 
    Value='BootstrapperDirectory not set. Try passing it on the 
    command line like "BootstrapperDirectory=%cd%" 
    or writing a custom BA to set it programmatically. 
    It must also be declared with bal:Overridable="yes".' /> 

<Chain> 
    <MsiPackage SourceFile="$(var.SetupProject1.TargetPath)" DisplayInternalUI="yes"> 
    <MsiProperty Name="BOOTSTRAPPERDIR" Value="[BootstrapperDirectory]" /> 
    </MsiPackage> 
</Chain> 
0

당신은 the built-in Burn VariableWixBundleOriginalSource에서 디렉토리를 얻을 톰 제안으로 MsiProperty 요소를 사용하여 MSI에 그것을 전달할 수 있습니다.

설치 실행 파일의 전체 경로를 제공합니다. 거기에서 사용자 지정 동작을 사용하여 필요한 경로의 일부를 추출하고 바로 가기에 사용할 Msi 속성을 설정할 수 있습니다.

관련 문제