Share via


Office 아키텍처 마이그레이션 후 COM 및 .NET 오류

증상

Microsoft Office 아키텍처를 32비트에서 64비트로 마이그레이션한 후 COM 애플리케이션 또는 .NET Framework 클라이언트를 사용하는 경우 오류가 발생합니다. 이러한 가능한 오류에는 다음이 포함되지만 이에 국한되지는 않습니다.

  • TYPE_E_CANTLOADLIBRARY

  • TYPE_E_LIBNOTREGISTERED

  • TYPE_E_ELEMENTNOTFOUND

일반적으로 COM 애플리케이션 또는 .NET 클라이언트가 32비트 프로세스로 실행되는 경우 오류가 발생합니다.

이러한 오류는 86비트 PowerShell에서 다음 코드를 실행할 때 발생할 수 있습니다.

$xl = New-Object -ComObject Excel.Application

$xl.Visible = $True

원인

오류는 마이그레이션에 의해 생성된 분리된 레지스트리 하위 키로 인해 발생합니다.

해결 방법

이 문제를 해결하려면 다음 방법 중 하나를 사용합니다.

방법 1: 분리된 하위 키를 자동으로 삭제

분리된 하위 키를 검색하고 제거하려면 다음 GitHub 위치에서 이 스크립트를 실행합니다.

Office TypeLib 수정

방법 2: 분리된 하위 키를 수동으로 삭제

1단계의 PowerShell 스크립트가 분리된 하위 키를 삭제하지 않는 경우 분리된 항목에 대해 수동으로 검사 수 있습니다. 영향을 받는 디바이스에는 다음 예제와 유사한 분리된 하위 키가 있을 수 있습니다.

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

참고: 이 예제에서 는 GUID 하위 키와 관련된 문자열입니다.

하위 키에는 프로그램 파일(x86) 파일 경로에서 누락된 Office 실행 파일을 가리키는 값이 있습니다. 예를 들면 다음과 같습니다.

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

올바른 64비트 프로그램 파일 위치를 가리키는 인접한 하위 키도 있어야 합니다.