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:
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.