2017-11-08 3 views
1

나는 Purely WiX approach to making patches을 사용하며 2 개의 다른 MSI에 대해 하나의 MSP 작업을하려고합니다. v1.1 MSI 및 v1.2 MSI를 보유하고 있으며 v1.2 및 MS1 모두에 MSP를 사용할 수 있도록 v1.2 MSI를 사용하여 MSP를 만들 계획입니다. 다른 제품 코드로 WiX에서 패치를 만드는 방법

설치된 제품 코드가 변환을 만드는 데 사용 대상 제품 코드 일치해야합니다 : 해당 설명이 말한대로

나는 Validate/@ProductId='no'을 설정합니다. 기본값은 '예'입니다.

그러나 v1.2에서만 작동합니다. 지금까지 내가 일할 수 있었던 유일한 방법은 다음과 같이 2 TargetProductCode/@Id을 추가하는 것이 었습니다. Validate/@ProductId의 버그입니까? 아니면 올바른 방법일까요?

<Media Id="5000" Cabinet="RTM.cab" > 
    <PatchBaseline Id="RTM" > 
     <Validate ProductId='no' ProductLanguage='no' ProductVersion="Update" ProductVersionOperator='LesserOrEqual' UpgradeCode='no' /> 
    </PatchBaseline> 
</Media> 

<!-- Why do I need this when Validate/@ProductId='no'? --> 
<TargetProductCodes Replace='no'> 
    <TargetProductCode Id='{xxx}' /> 
    <TargetProductCode Id='{xxx}' /> 
</TargetProductCodes> 

<PatchFamilyRef Id="myRollup"/> 

a same question하지만 모두가 작동하지 않았다

.

답변

0

내가 뭔가 잘못하고 있지 않는 한, 나는 똑같은 문제가있다. Validate/@ProductId='no'은 나에게 그다지 도움이되지 않는다.

내가 발견 한 것은 각 업데이트에 대해 ProductId을 동일하게 유지해야하며 주요 버전 업그레이드 만 변경해야한다는 것입니다 (이 시점에서 v1.x에서 v2.0으로 이동하는 MSP가 없으며, MSI를 통한 업그레이드 설치).

은 그럼 당신은 v1.0을 기반으로 MSP를 구축하고 GreaterOrEqualProductVersionOperator를 설정하거나 버전 1.1을 기반을 구축하고 LesserOrEqual로 설정하고, MSP의 어떤 v1.x MSI에서 작동 할 수 있습니다.

관련 문제