0

外部 CAB ファイルからいくつかのバージョン管理されていないファイルをインストールする WIX インストーラーがあります。

私の問題は、バージョン管理されていないファイルを正しくアップグレードするには、InstallInitialize の前に RemoveExistingProducts が必要だと言われたことです。ただし、外部のcabファイルでおかしくなり、ファイルがCABファイルにないというエラーが表示され続けます(存在する場合でも)。

RemoveExistingProducts が InstallExecute の後にある場合、初回は CAB ファイルで正しくインストールされますが、アップグレード中にファイルはアップグレードされません。

以下にいくつかのスニペットを示します。

<Media Id="2" Cabinet="Videos.cab" EmbedCab="no" CompressionLevel="none" />

...

<Component Id="Video01" Guid="{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}" DiskId="2" >
    <File Id="Video01.wmv"  DiskId="2" Vital="no" Source="BLAH.wmv" Name="Video01.wmv"/>
</Component>

...

<InstallExecuteSequence>
    <Custom Action="PreventDowngrading" After="FindRelatedProducts">NEWERPRODUCTFOUND</Custom>
    <!--<RemoveExistingProducts  After="InstallExecute" />-->
    <RemoveExistingProducts  Before="InstallInitialize" />
</InstallExecuteSequence>
4

1 に答える 1

0

ファイルの DefaultVersion 属性を設定して、InstallExecute の後に RemoveExisingProducts を追加してみてください。MSDN に記載されているとおり:

Versioned Files Win—A versioned file gets installed over a nonversioned file.
于 2012-02-24T07:33:59.570 に答える