Empêcher un correctif de nécessiter l’accès à la source d’installation d’origine
Il n’est pas possible d’éliminer toutes les circonstances dans lesquelles l’application d’un correctif peut nécessiter l’accès à la source d’installation d’origine.
Respectez les points suivants pour limiter la possibilité que votre correctif nécessite un accès à la source d’origine :
- Utilisez uniquement des correctifs de fichier entier. Cela élimine la nécessité de créer des correctifs binaires pour toutes les versions précédemment publiées du fichier. Notez que les correctifs de fichiers entiers sont généralement plus volumineux que les correctifs binaires. Vous pouvez facilement définir un correctif sur un correctif de fichier entier en créant la propriété IncludeWholeFilesOnly avec la valeur 1 (un) dans le fichier Propriétés de création de correctifs (PCP).
- Assurez-vous qu’aucune de vos actions personnalisées n’accède à l’emplacement source d’origine.
- Vérifiez que l’action ResolveSource est conditionnelle afin qu’elle ne s’exécute que si nécessaire, ou qu’elle ne soit pas présente du tout.
- Remplissez la table MsiFileHash pour tous les fichiers non versionnés. L’outil SDK Windows Installer, Msifiler.exe, peut facilement le faire pour vous.
- Vérifiez que tous les fichiers ont la version et les informations de langue correctes. L’outil SDK Windows Installer, Msifiler.exe, peut facilement le faire pour vous.
Configuration requise pour la source lors de la mise à jour corrective
L’accès aux sources d’installation d’origine peut être nécessaire pour appliquer le correctif dans les cas suivants :
Le correctif s’applique à une fonctionnalité actuellement exécutée à partir de la source. Dans ce cas, la fonctionnalité passe de l’état d’exécution à partir de la source à l’état local.
Le correctif s’applique à un composant qui a un fichier manquant ou endommagé.
Le correctif s’applique à un fichier dans un composant qui contient également des fichiers non versionnés sans entrées MsiFileHash. Une table MsiFileHash remplie est nécessaire pour éviter de recopier inutilement des fichiers non versionnés à partir de l’emplacement source.
Le correctif a été appliqué avec un REINSTALLMODE d’amus ou d’emus. Cette option est dangereuse car elle effectue des opérations de copie de fichiers quelle que soit la version du fichier. Cela peut entraîner une révision à la baisse des fichiers et nécessite presque toujours la source. La valeur reinstallMODE recommandée est omus.
Le package mis en cache pour le produit est manquant. Le package mis en cache est nécessaire pour l’application d’un correctif. Le package mis en cache est stocké dans le dossier %windir%\Installer.
Le package est créé pour effectuer un appel à l’action ResolveSource. Cette action doit généralement être évitée ou conditionnée de manière appropriée, car son exécution entraîne toujours un accès à la source.
Le package a une action personnalisée qui tente d’accéder à la source d’une manière ou d’une autre. L’exemple le plus courant est une action personnalisée d’installation simultanée de type 23.
Notes
Les installations simultanées ne sont pas recommandées pour l’installation d’applications destinées à être mises à la disposition du public. Pour plus d’informations sur les installations simultanées, consultez Installations simultanées.
Le package de correctifs se compose de correctifs binaires qui ne s’appliquent pas à la version actuelle du fichier sur l’ordinateur.
Prenons l’exemple suivant où Windows Installer nécessite l’accès à la source d’origine lors de l’application d’un correctif :
- Installez la version RTM de l’exemple de produit.
- Appliquez le correctif Qfe1.msp à l’ordinateur. Cette opération corrige la version 1.0 de Example.dll à la version 1.1.
- Un nouveau correctif, Qfe2.msp, est fourni. Il met à jour Example.dll vers la version 1.2 et rend obsolète Qfe1.msp. Toutefois, le correctif a été créé uniquement pour cibler la version 1.0 de Example.dll, car il a été généré à l’aide de la version RTM du produit. Example.dll version 1.2 inclut le correctif contenu dans Example.dll version 1.1, mais le fichier .msp a été généré entre les images RTM et QFE2. Par conséquent, lorsque Qfe2.msp est appliqué à l’ordinateur, Windows Installer doit accéder à la source d’origine. Le correctif binaire pour Example.dll ne peut pas s’appliquer à la version 1.1 ; elle ne peut s’appliquer qu’à la version 1.0. Le programme d’installation recopie alors la version 1.0 d’Example.dll à partir de l’emplacement d’origine afin que le correctif puisse être appliqué avec succès.
Configuration requise pour la source lors de la suppression d’un correctif
L’accès aux sources d’installation d’origine peut être nécessaire pour supprimer un correctif si Windows Installer n’a pas stocké d’informations de base sur le correctif. À compter de Windows Installer 3.0, le programme d’installation enregistre de manière sélective les informations de base sur les fichiers lorsqu’ils sont mis à jour. Pour plus d’informations sur le cache de base, consultez Réduction de la taille des correctifs.