COM- és .NET-hibák az Office-architektúra migrálása után

Jelenségek

Miután a Microsoft Office architektúráját 32 bitesről 64 bitesre migrálja, hibaüzeneteket tapasztal, ha COM-alkalmazást vagy .NET-keretrendszer-ügyfelet 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ód fut a 86 bites PowerShellben:

$xl = New-Object -ComObject Excel.Application

$xl.Visible = $True

A probléma oka

A hibákat a migrálás által létrehozott árva beállításjegyzék-alkulcsok okozzák.

Megoldás

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

1. módszer: Árva alkulcsok automatikus törlése

Az árva alkulcsok észleléséhez és eltávolításához futtassa ezt a szkriptet a következő GitHub-helyről:

Office TypeLib Szervizelés

2. módszer: Árva alkulcsok manuális törlése

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

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

Megjegyzés: Ebben a példában egy olyan sztring, GUID amely az alkulcsra jellemző.

Az alkulcs értéke egy hiányzó Office-végrehajtható fájlra mutat a Program Files (x86) fájl elérési útján. Például:

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

Egy szomszédos alkulcsnak is kell lennie, amely a megfelelő 64 bites Program Files helyre mutat.