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