5

純粋に WIX を使用してパッチを作成するのに苦労しています。誰かが私を正しい方向に導いてくれることを願っていました。

数百のソース ファイルがあり、それらに対して heat を実行してハーベスト ファイルを作成し、続いてキャンドルとライトを使用してパッケージを作成します。

いくつかの構成ファイルを変更する必要があり、変更を加えた 2 つ目のパッケージを作成します。

Torch と pyro を使用して .wixmst ファイルを作成した後、msp ファイルを作成しようとすると、pyro が次のエラーを表示します。

pyro.exe : エラー PYRO0252 : パッチに添付する有効な変換が提供されませんでした。コマンドラインで渡した変換に、パッチで作成された一致するベースラインがあることを確認してください。また、ターゲットとアップグレードの間に違いがあることを確認してください。

私の質問は本当に: patch.wxs には何が含まれている必要がありますか?

私の patch.wxs は次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">

    <Patch 
        AllowRemoval="yes"
        Manufacturer="sample llc" 
        MoreInfoURL="sample.com"
        DisplayName="Env Patch" 
        Description="Env Specfic Patch" 
        Classification="Update"
        >

        <Media Id="5000" Cabinet="RTM.cab">
            <PatchBaseline Id="RTM" />
        </Media>

        <PatchFamilyRef Id="EnvPatchFamily" />
    </Patch>

    <Fragment>    
        <PatchFamily Id='EnvPatchFamily' Version='1.0.0.0' ProductCode="PUT-GUID-HERE" Supersede='yes' >

            ********************************************** 
                What component Ref should I put in here
                heat creates a component group and I can't
                put ComponentGroupRef in here
            **********************************************

    </PatchFamily>
    </Fragment>
</Wix>

このリンクで説明されているように、Wix パッチを使用しています: http://wix.sourceforge.net/manual-wix3/wix_patching.htm

ただし、heat を使用して作成されたソース wix ファイルは考慮されません。誰かが私がここで間違っていることを教えてもらえますか?

4

3 に答える 3

5

ヒテシュ、

私にとっては、heat は次のようなコンポーネント グループを作成します。

<Fragment>
    <ComponentGroup Id="MyFiles">
        <ComponentRef Id="cmp2AA1A30564C621322ECB3CDD70B1C03C" />
        <ComponentRef Id="cmp788C978F16E473D4FD85720B5B75C207" />
    </ComponentGroup>
</Fragment>

加熱コマンド:

"%WIX%\bin\heat.exe" dir slndir\bin\Release -cg MyFiles -gg -scom -sreg -sfrag -srd -dr INSTALLDIR -out ..\Wix\MyFiles.wxs -var var.BinOutputPath -nologo -v -ke  -t wixtransform.xsl

そして patch.wxs では:

<Fragment>    
    <PatchFamily Id='ProductPatchFamily' Version='1.3.0.0' Supersede='yes'>
        <ComponentRef Id="cmp2AA1A30564C621322ECB3CDD70B1C03C" />
        <ComponentRef Id="cmp788C978F16E473D4FD85720B5B75C207" />
    </PatchFamily>
</Fragment>

注意: PatchFamily タグには ProductCode 属性がありません

于 2012-04-26T15:13:16.450 に答える
0

同じ問題に直面しました。このエラーの修正は、GUID をコンポーネントに追加することであり、msi の両方のバージョンで同じままにする必要があります。

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate />

    <Feature Id="ProductFeature" Title="WixPatch" Level="1">
        <ComponentGroupRef Id="ProductComponents" />
    </Feature>
</Product>

<Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder">
            <Directory Id="INSTALLFOLDER" Name="WixPatch" />
        </Directory>
    </Directory>
</Fragment>

<Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER" >
         <Component Id="File1" **Guid="3A64BE7A-BBEC-40AD-8319-45C602734146"**>
     <File Source="D:\V2\File1.txt" Name="File1" KeyPath="yes" DiskId="1" Id="F1"/>
         </Component>

</ComponentGroup>
</Fragment>

于 2015-12-16T05:49:05.350 に答える