본문 바로가기
Development/C# | Windows Application | ASP.NET

Microsoft.ACE.OLEDB.12.0 공급자는 로컬 컴퓨터에 등록할 수 없습니다.(System.Data)

by Dev. Jkun 2014. 11. 15.
반응형

엑셀파일에 OLEDB 공급자로 접근하여 쿼리를 실행시켜 하니;;

Microsoft.ACE.OLEDB.12.0 공급자는 로컬 컴퓨터에 등록할 수 없습니다.(System.Data)


에러작렬;; 구글링하고 오만 개지랄병을 떨어도 안됨;;;

해서 찾다보니 아래와 같은 방법을 하면 왠만하면 거의 다 안정적으로 수행된다.


환경은 아래와 같다.

  • OS : Windows 7 Ultimate 64bit
  • Office : 2010 64bit

순서는 다음과 같다. 


링크 : http://www.microsoft.com/ko-kr/download/details.aspx?id=13255


위 사이트에 가서 32bit 와 64bit 파일을 모두 다운로드 받는다. 왠만하면 둘다 설치해 놓는게

디버깅에 지옥에 빠지느니 신상에 좋을거다.;;;


그리고 OS가 64비트면 64는 그냥 설치한다. 32비트는 32비트용을 설치하면 된다.

하지만 만일 OS가 64비트이고 오피스가 32비트로 설치해놓은 경우가 있다. 이 경우에는 실행되는 프로젝트의

구성을 AnyCPU 가 아닌 x86로 맞춰주는게 좋다.


그리고 OS가 64비트이고 오피스도 64비트인 경우에는 아래와 같은 에러가 발생한다.

그런데 말이 되나. 이거 하나 하자고 오피스를 지운다는게;;

그래도 다행히도 방법은 존재했다.

32비트용 AccessDatabaseEngine.exe 파일을 콘솔창에서 실행시키는 것이다. 대신 매개변수를 하나 더

달아주어야 한다.



AccessDatabaseEngine.exe /passive


그럼 정상적으로 설치가 된다.

만일 배포해야 하는 프로젝트에서 엑셀관련 기능이 있을시에는 Install Shield 에서 위 과정을 포함하는

프로세스를 추가해주면 된다.(나는 그렇게 했음;; ^^;;)

그런데 구글링을 디져라 하면서 여기까지 힘들게 찾아갔는데;;;

http://blog.codefluententities.com/2011/01/20/microsoft-access-database-engine-2010-redistributable/


이미 여기 이분이 너무 깔끔하게 정리를 해놓아 주셨었군요.ㅠㅠ;;

검색도 능력입니다.

http://www.sysnet.pe.kr/Default.aspx?mode=2&sub=0&pageno=1&wtype=15&wid=1036&detail=1




반응형

댓글