2013-08-08 2 views
0

Microsoft.Jet.OLEDB.4.0을 통해 Excel 시트를 읽으려고합니다. 튜토리얼을 읽고 코드를 작성하고 배포했습니다. 그것은 괜찮 았지만 지금은 오랜 시간이 지난 후에 우리는 서버를 변경하고 새로운 서버에 이전 코드를 배포했을 때 오류가 발생합니다. " 'Microsoft.Jet.OLEDB.4.0'공급자가 로컬 시스템에 등록되지 않았습니다. . "OleDb로 Excel 시트 읽기

지난 시간에 내가 무엇을 실행했는지 기억이 안납니다. 나는 많은 것을 시도했지만 아무 것도 효과가 없었다.

우리는 사무실에 서버가 설치되어 있지 않기 때문에 다른 DLL을 사용할 수 없습니다. 어느 누구도 나를 인도 해 주실 수 있습니까?

답변

1

'Microsoft.Jet.OLEDB.4.0'32 비트 드라이버입니다. 플랫폼 타겟으로 AnyCPU를 사용하여 응용 프로그램을 컴파일하고 64 비트 OS에 응용 프로그램을 배포하면 코드가 64 비트 코드로 실행됩니다. 이 컨텍스트에서는 OleDb.4.0과 같은 32 비트 드라이버를 참조 할 수 없습니다.

가장 좋은 옵션은 대상 플랫폼으로 x86 용 응용 프로그램을 다시 컴파일 한 다음 응용 프로그램이 64 비트 시스템에서 문제없이 실행될 32 비트 코드로 실행되며 32 비트 OleDb.4.0을 사용할 수 있습니다.

이것이 가능하지 않은 경우, Microsoft Access Database Engine 2010 Redistributable을 64 비트 버전으로 다운로드하여 대상 서버에 설치해야합니다. 또한

string conString = "Provider=Microsoft.ACE.OLEDB.12.0;" + 
        "Data Source=path_to_your_excel_file.xls;" + 
        "Extended Properties=\"Excel 8.0;HDR=YES\""; 
+0

Steve 답장을 보내 주셔서 감사합니다. Microsoft Access Database Engine 2010 Redistributable을 설치했습니다. 그리고 웹을 다시 실행할 때 "설치 가능한 ISAM을 찾을 수 없습니다."라는 오류 메시지가 나타납니다. –

+0

문제는 내가 dlls 소스 코드 파일을 호스팅했기 때문에 응용 프로그램을 컴파일 할 수 없습니다. –

+0

확장 속성 주변의 견적을 두 번? – Steve

관련 문제