2009-10-02 2 views
8

그래서 소수의 장치 드라이버를 설치하는 WiX 기반 MSI가 있으므로 x64 및 x86 버전이 있습니다. 패키지에는 .NET 3.5 종속성이 있으므로 부트 스트 래퍼를 생성하고 MSI를 시작합니다. 내 질문은 누군가가 실행중인 플랫폼을 감지하고 적절한 MSI를 시작하는 부트 스트 래퍼를 만드는 방법을 알고 있는지 여부입니다. 나는 그런 해결책을 찾기 위해 주위를 봤는데, 지금까지 아무 것도 나타나지 않았다. 감사!MSBuild 부트 스트 래퍼에서 x86 또는 x64 MSI를 실행하십시오.

+0

나는 MSI가 디자인에 따라 플랫폼에 따라 다르다는 것을 한 번 읽었다. – zvolkov

+0

그렇기 때문에 두 개의 별도 MSI가 있습니다. 그러나 CD에이 파일을 배포하고 autorun.inf를 실행하여 "setup.exe"부트 스트 래퍼를 실행한다고 가정 해 봅시다 .- 현재 부트 스트 래퍼가 설치를 마친 후 .msi를 가리킬 수 있습니다. 전제 조건 – MattB

답변

1

msi를 실행하기 전에 .Net을 설치하는 경우 C#으로 작성된 exe를 포함시켜 플랫폼을 탐지 한 다음 부트 스트 래퍼에 다시 응답을 전달할 수도 있습니다.

플랫폼을 감지 한 exe를 사용하여 실행할 항목을 결정하기 위해 확인한 reg 키를 생성했습니다.

C# example

0

dotNetInstaller는 사용할 필요 아마 : 당신은 OS, 플랫폼과 언어의 적절한 조합이 충족되는 경우에만 트리거됩니다 다른 "설정"구성을 만들 수 있습니다. 모든 MSI, 필수 구성 요소 등을 설치 실행 파일에 포함시켜 사용자가 다운로드/실행할 단일 파일 만 가질 수 있도록 할 수도 있습니다.

3

불행히도 Windows Installer에는 x86 및 x64 용 별도의 MSI 패키지가 필요합니다.

WiX v3.6 + Burn은 두 개의 패키지를 하나의 설치 (번들 실행 파일로 구동)에 "묶어"제공하는 기능을 제공합니다. 당신은 .wxs 파일을 함께 할 수있는 것 조금 같은 : 그냥 할 수있는 굽기 모든 표면에 스크래치 시작에

<Bundle ...> 
    <BootstrapperApplicationRef Id='WixStandardBootstrapperApplication.RtfLicense' /> 

    <Chain> 
    <MsiPackage InstallCondition='NOT VersionNT64' SourceFile='path\to\x86.msi' /> 
    <MsiPackage InstallCondition='VersionNT64' SourceFile='path\to\x64.msi' /> 
    </Chain> 
</Bundle> 

그러나 그것은 하나의 설치로 두 아키텍처 패키지를 번들하는 방법을 보여줍니다 경험.

관련 문제