Freigeben über


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:

Office TypeLib-Wartung

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.