Jaa


COM- ja .NET-virheet Office-arkkitehtuurin siirron jälkeen

Oireet

Kun olet siirtänut Microsoft Office -arkkitehtuurin 32-bittisessä 64-bittisessä, saat virheitä, jos com-sovellusta tai .NET Framework -asiakasta käytetään. Näitä mahdollisia virheitä ovat muun muassa seuraavat:

  • TYPE_E_CANTLOADLIBRARY

  • TYPE_E_LIBNOTREGISTERED

  • TYPE_E_ELEMENTNOTFOUND

Virheet ilmenevät yleensä, jos COM-sovellus tai .NET-asiakasohjelma toimii 32-bittisenä prosessina.

Esimerkki

Nämä virheet saattavat ilmetä, kun seuraava koodi suoritetaan 86-bittisessä PowerShellissä:

$xl = New-Object -ComObject Excel.Application

$xl.Visible = $True

Syy

Virheet johtuvat orporekisterin aliavaimista, jotka on luotu siirrolla.

Ratkaisu

Voit korjata tämän ongelman käyttämällä jompaakumpaa seuraavista menetelmistä.

Tapa 1: Poista yhteydettömät aliavaimet automaattisesti

Voit tunnistaa yhteydettömät aliavaimet ja poistaa ne suorittamalla tämän komentosarjan seuraavasta GitHub-sijainnista:

Office TypeLib -korjaus

Tapa 2: Poista yhteydettömät aliavaimet manuaalisesti

Jos vaiheen 1 PowerShell-komentosarja ei poista yhteydettömät aliavaimet, voit myös tarkistaa yhteydettömät merkinnät manuaalisesti. Laitteessa, jota ongelma koskee, on ehkä yhteydettömät aliavaimet, jotka muistuttavat seuraavaa esimerkkiä:

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

Huomautus: Tässä esimerkissä on merkkijono, GUID joka liittyy aliavaimeen.

Aliavaimella on arvo, joka osoittaa puuttuvaan Office-suoritettavaan tiedostoon Program Files (x86) -tiedostopolussa. Esimerkki:

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

Vierekkäinen aliavain osoittaa oikeaan 64-bittiseen Program Files -sijaintiin.