2017-10-05 2 views
0

Récemment, j'utilise WIX pour créer un programme d'installation pour mon application WPF et j'ai besoin de copier beaucoup de DLL dans le dossier d'installation. Le problème est que certains d'entre eux ne sont pas copiés dans le dossier la première fois que j'utilise le programme d'installation, mais c'est la deuxième fois. Cela se produit lorsqu'une version antérieure du logiciel est déjà installée sur l'ordinateur.Quelques fichiers ne copiant pas dans le dossier d'installation la première fois en utilisant WIX

<!-- Telerik Dlls --> 
    <Component Id="Telerik.Windows.Controls.Chart.dll" Guid="8bd4b407-1ecb-40d7-b4c3-000000000014"> 
    <File Id="Telerik.Windows.Controls.Chart.dll" Source="..\..\bin\vc100\Win32\Release\Telerik.Windows.Controls.Chart.dll" KeyPath="yes" Checksum="yes"/> 
    </Component> 
    <Component Id="Telerik.Windows.Controls.Data.dll" Guid="8bd4b407-1ecb-40d7-b4c3-000000000015"> 
    <File Id="Telerik.Windows.Controls.Data.dll" Source="..\..\bin\vc100\Win32\Release\Telerik.Windows.Controls.Data.dll" KeyPath="yes" Checksum="yes"/> 
    </Component> 
    <Component Id="Telerik.Windows.Controls.DataVisualization.dll" Guid="8bd4b407-1ecb-40d7-b4c3-000000000016"> 
    <File Id="Telerik.Windows.Controls.DataVisualization.dll" Source="..\..\bin\vc100\Win32\Release\Telerik.Windows.Controls.DataVisualization.dll" KeyPath="yes" Checksum="yes"/> 
    </Component> 
    <Component Id="Telerik.Windows.Controls.dll" Guid="8bd4b407-1ecb-40d7-b4c3-000000000017"> 
    <File Id="Telerik.Windows.Controls.dll" Source="..\..\bin\vc100\Win32\Release\Telerik.Windows.Controls.dll" KeyPath="yes" Checksum="yes"/> 
    </Component> 
    <Component Id="Telerik.Windows.Controls.Docking.dll" Guid="8bd4b407-1ecb-40d7-b4c3-000000000018"> 
    <File Id="Telerik.Windows.Controls.Docking.dll" Source="..\..\bin\vc100\Win32\Release\Telerik.Windows.Controls.Docking.dll" KeyPath="yes" Checksum="yes"/> 
    </Component> 

<!-- Modules --> 
    <Component Id="MCManager.dll" Guid="8bd4b407-1ecb-40d7-b4c3-000000000001"> 
    <File Id="MCManager.dll" Source="..\..\bin\vc100\Win32\Release\MCManager.dll" KeyPath="yes" Checksum="yes"/> 
    </Component> 
    <Component Id="NavigationManager.dll" Guid="8bd4b407-1ecb-40d7-b4c3-000000000002"> 
    <File Id="NavigationManager.dll" Source="..\..\bin\vc100\Win32\Release\NavigationManager.dll" KeyPath="yes" Checksum="yes"/> 
    </Component> 
    <Component Id="MCTools.dll" Guid="8bd4b407-1ecb-40d7-b4c3-000000000003"> 
    <File Id="MCTools.dll" Source="..\..\bin\vc100\Win32\Release\MCTools.dll" KeyPath="yes" Checksum="yes"/> 
    </Component> 

Le problème se produit avec Telerik dll, les autres sont copiés lors de la première installation essayer correctement.

Merci d'avance :)

+0

Vérifiez que les fichiers installés dans la nouvelle version du programme d'installation ont une version de fichier plus élevée que les mêmes fichiers installés par l'ancien installateur. –

+0

Comment puis-je définir une nouvelle version pour un fichier ?? Merci! – OriolBur

+0

Ce n'est pas quelque chose que vous définiriez dans WiX, les fichiers eux-mêmes auront leurs propres informations de version. Si vous voulez que WiX ignore les versions de fichiers et les écrase quoi qu'il arrive, ajoutez la ligne suivante à votre installateur:

Répondre

-1

Cela semble être un problème avec le fichier versioning. Par exemple, si une version plus récente d'un programme d'installation tente d'installer des fichiers à version inférieure sur des versions à version plus élevée, ces fichiers seront ignorés. Pour contourner ce problème, vous pouvez ajouter la ligne suivante à votre projet WiX pour forcer l'installation de remplacer systématiquement les fichiers si les versions sont différentes, et non pas seulement l'ajout de fichiers si elles sont plus récentes:

<Property Id="REINSTALLMODE" Value="dmus" />