COM- és .NET-hibák az Office architektúráját áttelepítés után

Jelenségek

A Microsoft Office architektúrája 32 bitesről 64 bitesre való áttelepítése után hibaüzenetet tapasztal, ha COM-alkalmazást vagy .NET-keretrendszert használ. Ezek a lehetséges hibák többek között a következők:

  • TYPE_E_CANTLOADLIBRARY

  • TYPE_E_LIBNOTREGISTERED

  • TYPE_E_ELEMENTNOTFOUND

A hibák általában akkor fordulnak elő, ha a COM-alkalmazás vagy a .NET-ügyfél 32 bites folyamatként fut.

Példa

Ezek a hibák akkor fordulhatnak elő, ha a következő kódot 86 bites PowerShellben futtatja:

$xl = New-Object -ComObject Excel.Application

$xl.Visible = $True

A probléma oka

A hibákat az áttelepítés által létrehozott elárvult beállításjegyzékbeli alkulcsok okják.

Megoldás

A probléma megoldásához használja az alábbi módszerek egyikét.

1. módszer: Az elárvult alkulcsok automatikus törlése

Az elárvult alkulcsok észlelése és eltávolítása a következő GitHub-helyről futtassa ezt a parancsfájlt:

Office TypeLib-szervizelés

2. módszer: Az elárvult alkulcsok manuális törlése

Ha az 1. lépésben szereplő PowerShell-parancsprogram nem törli az elárvult alkulcsokat, manuálisan is ellenőrizheti az elárvult bejegyzéseket. Előfordulhat, hogy az érintett eszköz elárvult az alábbi példához hasonló alkulcsokkal:

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

Megjegyzés: Ebben a példában egy olyan karakterláncot ad meg, GUID amely csak az alkulcsra jellemző.

Az alkulcsnak olyan értéke lesz, amely egy hiányzó Office-végrehajtható fájlra mutat a Program files (x86) fájl elérési útjában. Például:

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

Egy szomszédos alkulcsnak is meg kell lennie, amely a Programfájlok megfelelő 64 bites helyére mutat.