2012-02-24 3 views
0

J'ai un programme d'installation WIX qui installe des fichiers non versionnés à partir d'un fichier CAB externe. Mon problème est que l'on me dit que j'ai besoin de RemoveExistingProducts avant InstallInitialize pour les fichiers non versionnés pour mettre à jour correctement. Cependant, il semble flipper avec les fichiers CAB externes, et continue de me donner une erreur que le fichier ne soit pas dans le fichier CAB (même si c'est le cas).WIX: Mise à niveau de fichiers non versionnés dans un fichier cab séparé

Si RemoveExistingProducts est après InstallExecute, il installe correctement avec le fichier CAB pour la première fois, mais ne sera pas mise à jour le fichier lors d'une mise à niveau

Voici quelques extraits:

<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> 

Répondre

0

Essayez de définir l'attribut DefaultVersion pour le fichier et ajoutez RemoveExisingProducts après InstallExecute. Comme indiqué dans le MSDN:

Versioned Files Win—A versioned file gets installed over a nonversioned file. 
Questions connexes