본문 바로가기
개발하는 '정'/C# (.NET)

[오류 해결]“‘Microsoft.ACE.OLEDB.12.0’ 공급자는 로컬 컴퓨터에 등록 할 수 없습니다.”

by 주앤정_블로그 2019. 8. 22.

발생한 오류 

: C#에서 엑셀 업로드 기능 구현 중 “‘Microsoft.ACE.OLEDB.12.0’ 공급자는 로컬 컴퓨터에 등록 할 수 없습니다.” 라는 예외 발생.

 

오류 원인

: 64비트 Office 프로그램을 사용하고 있어 64비트 용 OLE DB 제공자가 설치되어있으나, 32비트 프로그램인 Visual Studio 에서는 해당 제공자를 찾을 수 없음.

 

환경

: PC - 64 bit / 엑셀 - 64bit

 

해결 방법

: 32비트 버전의 제공자(ACEOLED.dll)를 설치해야함.

1) 아래 링크를 통해 Microsoft Access Database Engine 2010 Redistributable 패키지를 다운로드한다.

(https://www.microsoft.com/en-us/download/details.aspx?id=54920

 

Microsoft Access Database Engine 2016 Redistributable

This download will install a set of components that can be used to facilitate transfer of data between Microsoft Office System files and non-Microsoft Office applications.

www.microsoft.com

아래와 같은 화면이 나오는데, 언어를 설정한 후 다운로드 버튼을 누른다.

그럼 아래의 창이 뜬다.

 

2) 32비트와 64비트를 고를 수 있는데, 두개 다 설치 후 실행.

(본인 컴퓨터에 맞는 버전만 설치하여 엑셀 기능 실행 시 오류가 안 나는 경우도 있다고 하는데, 본인은 똑같은 오류 “‘Microsoft.ACE.OLEDB.12.0’ 공급자는 로컬 컴퓨터에 등록 할 수 없습니다.” 가 또 발생함.)

각각의 파일을 실행해보면 64비트는 설치가 되지만 32비트 AccessDatabaseEngine.exe 설치 시 "Microsoft Office SharePoint Designer 2010, Microsoft Office Professional Plus 2010, Microsoft Office Visio 2010" 제품을 삭제하라며 오류가 발생.

 

2007 'Office System Driver: 데이터 연결 구성 요소'를 다운받으라고 하는데..

해당 다운로드 페이지는 404 오류가 뜬다!

(https://www.microsoft.com/en-us/download/details.aspx?id=23734)

 

이럴 때는 cmd 명령창을 통해  AccessDatabaseEngine.exe를 실행한다.

 

4) " cd downloads " 입력 후 엔터 > " AccessDatabaseEngine.exe/passive "를 입력 후 enter를 치면 설치가 진행된다.

5) 설치가 완료된 후 엑셀 기능을 실행하면 오류가 발생하지 않는다.

 

추가

: 엑셀 자체의 문제이거나, 서버에 office가 설치되지 않는 등의 경우에도 해당 오류가 발생할 수 있다고 한다.

 

 

반응형

댓글