Partager via


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 :

Correction de TypeLib Office

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.