COM- und .NET-Fehler nach der Office-Architekturmigration
Symptome
Nach der Migration der Microsoft Office-Architektur von 32-Bit zu 64-Bit treten Fehler auf, wenn eine COM-Anwendung oder ein .NET Framework-Client verwendet wird. Zu diesen möglichen Fehlern gehören unter anderem die folgenden:
TYPE_E_CANTLOADLIBRARY
TYPE_E_LIBNOTREGISTERED
TYPE_E_ELEMENTNOTFOUND
Die Fehler treten in der Regel auf, wenn die COM-Anwendung oder der .NET-Client als 32-Bit-Prozess ausgeführt wird.
Beispiel
Diese Fehler können auftreten, wenn der folgende Code in 86-Bit-PowerShell ausgeführt wird:
$xl = New-Object -ComObject Excel.Application
$xl.Visible = $True
Ursache
Die Fehler werden durch verwaiste Registrierungsunterschlüssel verursacht, die von der Migration erstellt werden.
Lösung
Verwenden Sie eine der folgenden Methoden, um dieses Problem zu beheben.
Methode 1: Automatisches Löschen verwaister Unterschlüssel
Führen Sie dieses Skript am folgenden GitHub-Speicherort aus, um die verwaisten Unterschlüssel zu erkennen und zu entfernen:
Methode 2: Manuelles Löschen verwaister Unterschlüssel
Wenn das PowerShell-Skript aus Schritt 1 die verwaisten Unterschlüssel nicht löscht, können Sie auch manuell nach verwaisten Einträgen suchen. Das betroffene Gerät verfügt möglicherweise über verwaiste Unterschlüssel, die dem folgenden Beispiel ähneln:
HKEY_CLASSES_ROOT\WOW6432Node\TypeLib\GUID\1.9\0\Win32
Hinweis: In diesem Beispiel ist eine Zeichenfolge, GUID die für den Unterschlüssel spezifisch ist.
Der Unterschlüssel weist einen Wert auf, der auf eine fehlende ausführbare Office-Datei im Dateipfad Programme (x86) verweist. Beispiel:
C:\Programme (x86)\Microsoft Office\Root\Office16\EXCEL.EXE
Es sollte auch ein angrenzender Unterschlüssel vorhanden sein, der auf den richtigen Speicherort der 64-Bit-Programme verweist.