Un assembly dans le cache d'assembly global ou SxS est manquant après avoir effectué une mise à niveau majeure en utilisant un paquet Windows Installer

Traductions disponibles Traductions disponibles
Numéro d'article: 905238 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Symptômes

Après avoir effectué une mise à niveau majeure en utilisant un paquet Microsoft Windows Installer, un assembly dans le cache d'assembly global ou SxS (dossier côte à côte, \Windows\WinSxS\) est manquant.

Cause

Ce problème se produit lorsque l'action Windows Installer RemoveExistingProducts est ne jalonnée dans un emplacement qui empêche approprié comptage de l'assembly de références et qui provoque la suppression de l'assembly premature. L'action RemoveExistingProducts est ne jalonnée dans la table InstallExecuteSequence dans le package Windows Installer. Ce problème se produit lorsque l'action RemoveExistingProducts ne jalonnée permettant le produit ancien est supprimé avant le nouveau produit est installé.

Lorsqu'un assembly est placez dans le cache d'assembly global, l'assembly est renommé. Windows Installer ne peut pas déterminer le nom correct de l'assembly. Windows Installer doit s'appuient sur Microsoft .NET Framework pour gérer le nom.

Lorsque vous effectuez une mise à niveau majeure à l'aide d'un Windows Installer package, Windows Installer appelle dans .NET Framework pour vérifier si l'assembly est déjà installé dans le global assembly cache. Si le .NET Framework renvoie Oui, le composant qui contient l'assembly dans le package Windows Installer mise à niveau principal n'est pas autorisé pour l'installation. Ensuite, l'action RemoveExistingProducts s'exécute et désinstalle l'assembly existant dans le global assembly cache. L'action RemoveExistingProducts effectue cette parce que le nouveau produit enregistré pas en tant que client de l'assembly et aucun autre client n'existe. Car le composant de la mise à niveau majeure ne n'a pas autorisé pour l'installation, l'assembly est réinstallé pas lorsque la mise à niveau majeure installe les composants.

Si vous resequence l'action RemoveExistingProducts pour planifier la désinstallation de l'ancien produit une fois le nouveau produit installé, l'assembly n'est pas supprimé. L'assembly ne sera pas supprimé, car l'assembly présent possède une faire référence à nombre dans le nouveau produit. Par conséquent, même si l'installation de l'assembly est ignorée pour la mise à niveau majeure, l'assembly toujours reste, car l'assembly fait référence à un autre client. Le nouveau produit et le produit ancien référencer l'assembly.

note Lorsqu'un assembly ne se trouve pas dans le global assembly cache, aucun changement de nom ne survient. Les règles de contrôle de version de fichier Windows Installer standard s'appliquent, et le composant de la mise à niveau majeure est autorisé pour l'installation.

Contournement

Pour contourner ce problème, appliquez l'une des méthodes suivantes.

Méthode 1

Augmentez l'attribut AssemblyVersion de l'assembly que vous essayez d'installer pour créer une installation côte à côte dans le global assembly cache.

Méthode 2

Utilisez un outil de création de la table de Windows Installer pour modifier la séquence de l'action RemoveExistingProducts dans le InstallExecuteSequence table se produit après l'action InstallFinalize. Par exemple, utiliser Orca.exe la base de données Éditeur de table pour créer ou modifier Windows installer les packages.

Plus d'informations

Vous pouvez créer un package Windows Installer dans un projet d'installation et de projets de déploiement dans Visual Studio .NET. Lorsque l'action RemoveExistingProducts est ne jalonnée dans ce package Windows Installer, l'emplacement par défaut de la RemoveExistingProducts action dans la table InstallExecuteSequence provoque le problème décrit dans la section « Symptômes ».

Pour plus d'informations, reportez-vous aux Web MSDN (Microsoft Developer Network) sites adresses suivantes :
Windows Installer
http://msdn2.microsoft.com/en-us/library/aa372866.aspx

Action RemoveExistingProducts
http://msdn2.microsoft.com/en-us/library/aa371197.aspx

Table InstallExecuteSequence
http://msdn2.microsoft.com/en-us/library/aa369500.aspx

Orca.exe
http://msdn2.microsoft.com/en-us/library/aa370557.aspx

Propriétés

Numéro d'article: 905238 - Dernière mise à jour: jeudi 11 septembre 2008 - Version: 2.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows Installer 3.1
  • Microsoft Windows Installer 3.0
  • Microsoft Windows Installer 2.0
Mots-clés : 
kbmt kbwindowsinstaller kbinfo kbtshoot kbprb KB905238 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 905238
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com