COM- og .NET-feil etter Office-arkitekturoverføring

Symptomer

Når du har overført Microsoft Office-arkitekturen fra 32-biters til 64-biters, oppstår det feil hvis et COM-program eller en .NET Framework-klient brukes. Disse mulige feilene omfatter, men er ikke begrenset til, følgende:

  • TYPE_E_CANTLOADLIBRARY

  • TYPE_E_LIBNOTREGISTERED

  • TYPE_E_ELEMENTNOTFOUND

Feilene oppstår vanligvis hvis COM-programmet eller .NET-klienten kjører som en 32-biters prosess.

Eksempel

Disse feilene kan oppstå når følgende kode kjøres i 86-biters PowerShell:

$xl = New-Object -ComObject Excel.Application

$xl.Visible = $True

Årsak

Feilene skyldes isolerte registerundernøkler som er opprettet av overføringen.

Løsning

Bruk en av følgende metoder for å løse dette problemet.

Metode 1: Slette isolerte undernøkler automatisk

Hvis du vil oppdage og fjerne de isolerte undernøklene, kjører du dette skriptet fra følgende GitHub-plassering:

Utbedring av Office TypeLib

Metode 2: Slette isolerte undernøkler manuelt

Hvis PowerShell-skriptet fra trinn 1 ikke sletter de isolerte undernøklene, kan du også se etter isolerte oppføringer manuelt. Den berørte enheten kan ha isolerte undernøkler som ligner på følgende eksempel:

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

Obs! I dette eksemplet er GUID en streng som er spesifikk for undernøkkelen.

Undernøkkelen har en verdi som peker til en manglende kjørbar Office-fil i filbanen Programfiler (x86). For eksempel,

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

Det bør også være en tilstøtende undernøkkel som peker til riktig 64-biters programfiler-plassering.