Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article vous aide à résoudre le problème où les échecs de mise à jour corrective de Microsoft .NET Framework lorsque les assemblys sont en cours d’utilisation ou verrouillés lorsqu’un correctif est appliqué.
Version du produit d’origine : .NET Framework
Numéro de base de connaissances d’origine : 2263996
Symptômes
Si un fichier d’assembly dans le Global Access Cache (GAC) a été verrouillé ou est en cours d’utilisation, il peut entraîner l’échec des correctifs .NET Framework. Ce problème peut être aggravé par un bogue de la façon dont fusion gère la restauration et peut entraîner la suppression des fichiers. Cela entraîne l’échec des applications managées (celles qui dépendent des assemblys d’infrastructure).
Le journal détaillé MSI de correctif défaillant peut contenir quelque chose comme suit :
'C :\WINDOWS\Microsoft.NET\Framework\v2.0.50727\system.dll' en raison de l’erreur système :Access est refusé.
22/06/10 11:57:26 DDSet_Status : Sleeping 100ms...
MSI (s) (54!70) [11:57:26:738] : Produit : Microsoft .NET Framework 2.0 Service Pack 2 -- Il existe un problème avec ce package Windows Installer.
Pour plus d’informations, reportez-vous au journal d’installation.
Il existe un problème avec ce package Windows Installer.
Pour plus d’informations, reportez-vous au journal d’installation.
22/06/10 11:57:26 DDSet_CARetVal : 0
22/06/10 11:57:26 DDSet_Exit : InstallAssembly a pris fin avec la valeur de retour 1603
MSI (s) (54:94) [11:57:26:758] : La valeur de stratégie utilisateur « DisableRollback » est 0
MSI (s) (54:94) [11:57:26:758] : La valeur de stratégie de machine « DisableRollback » est 0
Action terminée 11:57:26 : InstallExecute. Valeur de retour 3.
ou
22/02/10 08:38:32 DDSet_Status : Sleeping 100ms...
22/02/10 08:38:32 DDSet_Error : Échec de l’installation de l’assembly
C :\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll. IAssemblyCache-InstallAssembly>() retourné -2147024864.
22/02/10 08:38:32 DDSet_Error : Échec de l’installation de l’assembly
'C :\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll' en raison d’une erreur système :
Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus.
La cause
Si les assemblys sont en cours d’utilisation ou verrouillés lorsqu’un correctif est appliqué, le correctif échoue.
Résolution
Ce problème peut être évité en s’assurant que les processus ne sont pas en cours d’exécution qui peuvent placer un verrou sur les assemblys.
Pour détecter si des assemblys sont utilisés, procédez comme suit :
Téléchargez procexp.exe pour découvrir le processus qui verrouille les assemblys.
Lancez procexp.exe, puis appuyez sur Ctrl+F pour ouvrir la fenêtre De recherche de l’Explorateur de processus.
Dans la zone de texte Handle ou DLL, tapez Assembly , puis sélectionnez Rechercher.
Tous les fichiers répertoriés peuvent avoir un impact sur l’installation du correctif. Terminez tous les processus répertoriés ou fermez les applications associées. Pour ce faire, procédez comme suit :
Sélectionnez le nom du processus que vous souhaitez terminer dans la fenêtre Recherche de l’Explorateur de processus pour localiser le processus.
Cliquez avec le bouton droit sur le nom du processus dans le volet Processus .
Sélectionnez Kill Process pour arrêter le processus.