Errori COM e .NET dopo la migrazione dell'architettura di Office

Sintomi

Dopo la migrazione dell'architettura di Microsoft Office da 32 bit a 64 bit, si verificano errori se viene usata un'applicazione COM o un client .NET Framework. Questi possibili errori includono, a titolo esemplificarsi, i seguenti:

  • TYPE_E_CANTLOADLIBRARY

  • TYPE_E_LIBNOTREGISTERED

  • TYPE_E_ELEMENTNOTFOUND

Gli errori si verificano in genere se l'applicazione COM o il client .NET è in esecuzione come processo a 32 bit.

Esempio

Questi errori possono verificarsi quando il codice seguente viene eseguito in PowerShell a 86 bit:

$xl = New-Object -ComObject Excel.Application

$xl.Visible = $True

Causa

Gli errori sono causati da sottochiavi del Registro di sistema orfane create dalla migrazione.

Risoluzione

Per risolvere questo problema, usare uno dei metodi seguenti.

Metodo 1: Eliminare automaticamente le sottochiavi orfane

Per rilevare e rimuovere le sottochiavi orfane, eseguire questo script dal percorso GitHub seguente:

Correzione typelib di Office

Metodo 2: Eliminare manualmente le sottochiavi orfane

Se lo script di PowerShell del passaggio 1 non elimina le sottochiavi orfane, è anche possibile verificare manualmente la presenza di voci orfane. Il dispositivo interessato potrebbe avere sottochiavi orfane simili all'esempio seguente:

HKEY_CLASSES_ROOT\WOW6432Node\TypeLib\GUID\1.9\0\Win32

Nota: in questo esempio è GUID una stringa specifica della sottochiave.

La sottochiave avrà un valore che punta a un eseguibile di Office mancante nel percorso del file di programmi (x86). Ad esempio:

C:\Programmi (x86)\Microsoft Office\Root\Office16\EXCEL.EXE

Deve essere presente anche una sottochiave adiacente che punta al percorso corretto di Programmi a 64 bit.