2012-03-23 5 views
1

먼저이 말을 누군가에게 이해가되지 않으면 알려주세요.WIX 설치 프로그램을 여러 위치에 설치 한 다음 패치

내 시나리오는 ... 이 될 가능성이 있습니다.

Program Files/MyProduct/Test 

가 WIX와이 가능 :

Program Files/MyProduct/Development 

이 또한 내가 같은 설치에 설치하고 싶었 : 내 설치가 설치된 곳의 내가 시나리오를 가지고 있다고 가정 해 봅시다?

또한 패치가 있다면 어떻게 패치 할 수 있습니까?

답변

2

손가락을 집어 넣으려는 것을 여러 인스턴스 설치 관리자라고합니다. 필자는 패치를 적용하지 않고 InstallShield에서 WiX 및 Major/Minor 업그레이드보다 많은 작업을 수행했습니다. Yan은 일부 블로그 기사 작성을 포함하여 WiX 측면에서 더 많은 일을했습니다.

경고하지만 간단하지 않습니다. :-)

Revisited: Multiple Instance installations and patches

+0

응답 해 주셔서 감사합니다. 그래서 이것을하기 위해 얼마나 많은 설치를 기반으로 제품 ID를 하드 코딩해야합니까? 나는 사용자가 잠재적으로 다른 디렉토리에 X 개의 사본을 설치할 수 있기 때문에 그 정보를 앞에 놓지 않을 것이다. 이해가 되니? – aherrick

+1

알기. 현실은 인스턴스 변환 X 개를 미리 생성하고 99 %의 사용자에게 충분하다고 가정하거나 런타임에 +1 변환을 생성하는 부스트 래퍼 (EXE)에 대한보다 복잡한 이야기를 생각해냅니다. 그것은 할 수 있지만 infrasturcture가 훨씬 더 높습니다 그리고 나는 아직 첫 번째 이야기로 충분히 행복 할 수없는 사람을 만난 적이 없다. 예를 들어 SQL 서버조차도 머신 당 50 인스턴스의 한계를 설정합니다. –

+0

최종 사용자가 여러 인스턴스를 쉽게 설치할 수 있도록하는 일종의 래퍼 (C#/WinForms)를 작성 하시겠습니까? 나는 최종 사용자가 변환 등에 대해 알아야한다고 생각하지 않을 것이다. – aherrick

0

통상적으로 INSTALLDIR 또는 INSTALLLOCATION는 명령 행 또는 bootstapper를 통해 설정할 수있는 공공 재산이다. 예컨대 :

msiexec /i setup.msi INSTALLDIR="C:\Program Files\MyProduct\Test" 
0

다음은 나란히, 당신이이 방법에 매우 조심 만 개발 목적으로이를 사용해야한다는 제안 설치할 수 있도록해야합니다 다음과 같습니다. 당신이 (하여 MyApplication으로 위 그림 참조) 프로젝트를 참조해야합니다 작업이 이처럼

<?xml version="1.0" encoding="UTF-8"?> 

<?if $(var.MyApplication.Configuration) = Debug ?> 
<?define UpgradeCode = "<INSERT-DEVELOPMENT-GUID-HERE>" ?> 
<?else ?> 
<?define UpgradeCode = "<INSERT-RELEASE-GUID-HERE>" ?> 
<?endif ?> 

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Product Id="*" Name="SetupProject1" Language="1033" Version="1.0.0.0" Manufacturer="SetupProject1" UpgradeCode="$(var.UpgradeCode)"> 

이 방법은, 참조 된 프로젝트의 configuratuion을 사용합니다. 디버그 용으로 컴파일 할 때 다른 업그레이드 코드가있는 설치 프로그램이 만들어집니다.

그런 다음 @KMoraz에서 설명한 방법으로 배포해야합니다.

관련 문제