Erreurs COM et .NET après la migration de l’architecture Office
Symptômes
Après avoir migré l’architecture Microsoft Office de 32 bits vers 64 bits, vous rencontrez des erreurs si une application COM ou un client .NET Framework est utilisé. Ces erreurs possibles incluent, sans s’y limiter, les suivantes :
TYPE_E_CANTLOADLIBRARY
TYPE_E_LIBNOTREGISTERED
TYPE_E_ELEMENTNOTFOUND
Les erreurs se produisent généralement si l’application COM ou le client .NET s’exécute en tant que processus 32 bits.
Exemple
Ces erreurs peuvent se produire lorsque le code suivant est exécuté dans PowerShell 86 bits :
$xl = New-Object -ComObject Excel.Application
$xl.Visible = $True
Cause
Les erreurs sont dues à des sous-clés de Registre orphelines créées par la migration.
Résolution
Pour résoudre ce problème, utilisez l’une des méthodes suivantes.
Méthode 1 : Supprimer automatiquement les sous-clés orphelines
Pour détecter et supprimer les sous-clés orphelines, exécutez ce script à partir de l’emplacement GitHub suivant :
Méthode 2 : Supprimer manuellement les sous-clés orphelines
Si le script PowerShell de l’étape 1 ne supprime pas les sous-clés orphelines, vous pouvez également case activée pour les entrées orphelines manuellement. L’appareil affecté peut avoir des sous-clés orphelines qui ressemblent à l’exemple suivant :
HKEY_CLASSES_ROOT\WOW6432Node\TypeLib\GUID\1.9\0\Win32
Remarque : Dans cet exemple, GUID est une chaîne spécifique à la sous-clé.
La sous-clé a une valeur qui pointe vers un exécutable Office manquant dans le chemin du fichier Program Files (x86). Par exemple :
C :\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE
Il doit également y avoir une sous-clé adjacente qui pointe vers l’emplacement Program Files 64 bits correct.