我有一个WIX安装程序,可以从外部CAB文件安装一些未版本控制的文件。
我的问题是,我告诉我在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>
答案 0 :(得分:0)
尝试设置文件的DefaultVersion属性,并在InstallExecute之后添加RemoveExisingProducts。如MSDN中所述:
Versioned Files Win—A versioned file gets installed over a nonversioned file.