2017-11-08 8 views
1

Purely WiX approach to making patchesを使用し、2つの異なるMSIに対して1つのMSPを作成しようとしています。 私はv1.1 MSIとv1.2 MSIを持っており、v1.2とv1.2の両方にMSPを使用できるように、v1.2 MSIを使用してMSPを作成する予定です。私はその説明としてValidate/@ProductId='no'を設定異なる製品コードのWiXでパッチを作成する方法

は言う:

がインストールさ製品コード変換を作成するために使用される対象製品コード と一致している必要があります。デフォルトは 'yes'です。

ただし、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を設定、またはV1.1に基づいて、それを構築し、LesserOrEqualにそれを設定し、MSPのはどのv1.xはMSI上で動作しますすることができます。

関連する問題