Chyby modelu COM a .NET po migraci architektury Office

Příznaky

Po migraci architektury Microsoft Office z 32bitové na 64bitovou verzi dojde k chybám při použití aplikace com nebo klienta rozhraní .NET Framework. Mezi tyto možné chyby patří mimo jiné následující:

  • TYPE_E_CANTLOADLIBRARY

  • TYPE_E_LIBNOTREGISTERED

  • TYPE_E_ELEMENTNOTFOUND

K chybám obvykle dochází, pokud je aplikace COM nebo klient .NET spuštěný jako 32bitový proces.

Příklad

K těmto chybám může dojít při spuštění následujícího kódu v 86bitovém PowerShellu:

$xl = New-Object -ComObject Excel.Application

$xl.Visible = $True

Příčina

Chyby jsou způsobené osamocenými podklíči registru, které jsou vytvořené migrací.

Řešení

Chcete-li tento problém vyřešit, použijte některou z následujících metod.

Metoda 1: Automatické odstranění osamocených podklíčů

Pokud chcete zjistit a odebrat osamocené podklíče, spusťte tento skript z následujícího umístění GitHubu:

Náprava sady Office TypeLib

Metoda 2: Ruční odstranění osamocených podklíčů

Pokud skript PowerShellu z kroku 1 neodstraní osamocené podklíče, můžete také osamocené položky vyhledat ručně. Ovlivněné zařízení může mít osamocené podklíče, které se podobají následujícímu příkladu:

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

Poznámka: V tomto příkladu je řetězec, GUID který je specifický pro podklíč.

Podklíč bude mít hodnotu, která odkazuje na chybějící spustitelný soubor Office v cestě k souboru Program Files (x86). Příklady:

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

Měl by také existovat sousední podklíč, který odkazuje na správné umístění 64bitového programu Program Files.