Empêcher un correctif d’exiger 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 réduire la possibilité que votre correctif nécessite l’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 antérieures 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 pour qu’il s’agit d’un correctif de fichier entier en créant la propriété IncludeWholeFilesOnly avec la valeur 1 (un) dans le fichier PATCH Creation Properties (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 s’exécute uniquement si nécessaire, ou qu’elle n’est pas présente du tout.
- Remplissez la table MsiFileHash pour tous les fichiers nonversionnés. L’outil sdk Windows Installer, Msifiler.exe, peut facilement le faire pour vous.
- Vérifiez que tous les fichiers disposent des informations de version et 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é est passée de l’état run-from-source à l’état local.
Le correctif s’applique à un composant qui a un fichier manquant ou endommagé.
Le correctif s’applique à un fichier d’un composant qui contient également des fichiers nonversionnés sans entrées MsiFileHash. Une table MsiFileHash remplie est nécessaire pour empêcher la recopiation inutile des fichiers non versionnés à partir de l’emplacement source.
Le correctif a été appliqué avec un REINSTALLMODE d’amus ou d’émeus. Cette option est dangereuse car elle effectue des opérations de copie de fichier indépendamment de la version du fichier. Cela peut entraîner une réaide 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 conditionnelle 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 certaine manière. 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 en production au 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 Programme d’installation 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. Ce correctif est la version 1.0 de Example.dll vers la version 1.1.
- Un nouveau correctif, Qfe2.msp est fourni, qui met à jour Example.dll vers la version 1.2 et 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 programme d’installation 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. Ainsi, le programme d’installation recopie la version 1.0 de Example.dll à partir de l’emplacement source d’origine afin que le correctif puisse être appliqué correctement.
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 le programme d’installation Windows 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 .