2012-07-23 6 views
0

몇 주 동안이 문제를 해결하기 위해 검색 한 결과 지금까지 아무 것도 발견되지 않았습니다. ZipCode & AreaCode 정보를 저장하기 위해 로컬 데이터베이스를 사용하고 있습니다. 이것은 올바르게 작동하고, 올바르게로드되고, DB로부터 읽어서 모든 컴퓨터에 결과를 표시합니다. 개발 기계 제외. 여러 다른 컴퓨터에 배포하고 모든게 잘 작동하지만 데이터베이스에서 읽을 때 BadImageFormat 예외가 다시 발생하는 개발 컴퓨터에서.SQL Server CE BadImageFormat

필자는 내 데스크톱 (개발 컴퓨터)과 내 아내의 랩톱 (문제가없는 곳) 모두에서 프로그램 추가/제거 화면을 보았습니다. 설치된 프로그램의 두 목록은 SQL, SQL Server CE, ADO.Net, Visual Studio 등에 관한 한 동일합니다. .exe 파일에 포함 된 dll 파일을 가지고 있으므로 동일한 버전을 사용하고 있습니다.

한순간에 이것은 개발 기계에서 작동했는데, 그때 내가 뭔가를 제거하고 그것이 고장 났다고 생각합니다. 그 이후 나는 Windows 7의 새로운 복사본과 VS (하드 드라이브 업그레이드의 b/c,이 문제 때문에)를 새로 설치했습니다. 여전히 작동하지 않습니다. 데이터베이스는 SQL Server CE 3.5 형식입니다.

타협 한 기계를 바꾸지 않기 때문에 연결 문자열 문제 일 수는 없다는 것을 거의 보장 할 수 있습니다. 솔직히 걱정하지 않겠지 만, 데이터베이스에 추가/조정할 필요가 있다는 것을 제외하고는 편집 적으로 아무것도 변경하지 않으면 다른 컴퓨터에서도 문제가 발생합니다. 이는 받아 들일 수없는 것입니다.

내가 누락 된 것일 수있는 사람이 있습니까?

업데이트 : 아이러니의 그 위대한 순간 중 하나에서

, 나는 갑자기 생각을했다이 질문을 게시 한 후. 두 가지 사이에 내 손가락을 넣을 수있는 한 가지 차이점은 Dev 컴퓨터에서 VS 또는 Projects \ Bin 폴더에서 실행한다는 것입니다. 다른 사람들은 exe와 dll을 CD의 폴더에 복사합니다. 그래서 이것을 생각해 볼 때, Dev 컴퓨터의 바탕 화면에 다른 컴퓨터에서 테스트 할 때와 같은 방식으로 복사 된 폴더를 만들었고 모든 것이 잘 동작했습니다. 그래서 나는이 폴더 권한 문제 또는 이와 유사한 가정합니다. Bin 폴더를 읽기 전용으로 변경하려고 시도했지만 여전히 디버그에서 작동하지 않습니다.

이 문제를 해결할 수있는 알려진 방법이 있습니까?

+0

플랫폼 당 DLL 세트가 필요합니다 (AMD64 및 x86). 여기 내 블로그 게시물을 참조하십시오. http://erikej.blogspot.dk/2012/05/private-deployment-of-sql-server.html – ErikEJ

답변

2

BadImageFormat 예외는 사용중인 SqlCE dll이 실행중인 아키텍처에 적합한 것이 아니라는 사실을 나타냅니다. 귀하의 로컬 컴퓨터에 32 비트 (x86) 용 SQL CE 버전이있을 수 있지만 귀하의 dev 컴퓨터는 64 비트 (x64) 아키텍처 일 수 있습니다. DEV 아키텍처에서 SQL CE DLL을 적절한 아키텍처로 바꾸면 프로그램이 제대로 작동합니다.

+0

이전에 시도했지만 모든 버전이 동일합니다. 실제로 DLL을 프로그램의 일부로 사용하여 모든 컴퓨터에서 동일한 DLL을 사용하려고합니다. 위와 같은 방법으로 내 업데이트를 살펴보고 이유를 알고 있습니까? 감사! –

관련 문제