2012-04-20 2 views
3

Windows CE (Compact Flash 카드)의 하드 디스크에 넣은 응용 프로그램을 만들었습니다. 내 문제는 응용 프로그램이 SQL Server CE 3.5 데이터베이스를 사용하고 있지만 이미지가 SQL Server CE 3.0으로 작성된 것처럼 보입니다. 이미지를 빌드하기 시작할 때 3.5 버전을 선택할 수 없었습니다.Windows CE 6.0 - 런타임 이미지에 SQL Server CE 3.5 설치

문제가 해결 단계에 나타나지 않도록 응용 프로그램을 디버깅 할 때마다 3.5 버전 DLL이 배포됩니다.

이제 응용 프로그램이 시작될 때 (OS가 부팅 될 때 자동으로 시작됨) 예외가있는 메시지 창이 나타나고 응용 프로그램을 시작할 수 없습니다. 내 질문은 SQL Server CE 3.5 이미지를 설치하는 방법 또는 나중에 또는 모든 부팅 시간에 CAB 파일을 사용하여 설치하는 방법입니다.

실행중인 OS 시스템에서 올바른 CAB 파일을 실행하면 3.5 버전이 설치되고 응용 프로그램이 시작되지만 OS를 다시 부팅하면 변경 내용이 저장되고 커밋되지 않습니다. 이미지를 빌드하기 전에 카탈로그에 3.5 버전을 추가하거나 부팅 할 때마다 설치하거나 마지막 부팅 후 영구적으로 설치하는 마지막 옵션을 설치하는 솔루션이 있어야합니다.

시스템을 부팅 할 때마다 CAB를 설치할 솔루션을 제공 할 수 있다면 시스템에서 SQL Server CE 3.5 데이터베이스를 사용하는 응용 프로그램을 실행해야한다는 생각을하게됩니다. 응용 프로그램 자동 시작 앞에 CAB 설치를 시작해야합니다.

미리 감사드립니다.

답변

1

몇 가지 옵션이 있습니다. 가장 바람직하지 않은 것은 시작시 CAB을 실행하는 것입니다.

가능한 경우 최신 SQLCE 바이너리를 OS에 넣는 것이 하나의 옵션입니다. 업데이트 된 QFE가 모두으로 설치되어 있으면 카탈로그에서 을 사용할 수 있습니다. 어떠한 이유로 든 QFE를 설치할 수 없으면 Platfrom Builder가 가져 오는 소스 바이너리를 항상 %WINCEROOT%\OTHERS\SQLCOMPACT에서 대체 할 수 있습니다.

또 다른 옵션은 모든 SQLCE 바이너리를 응용 프로그램 배포에 포함시키는 것입니다. CAB이 필요하지 않습니다. 응용 프로그램 폴더에 DLL을 넣으십시오 (네이티브 DLL 충돌을 방지하기 위해이 경로를 사용하는 경우 OS에서 SQLCE를 제거하는 것이 좋습니다). 이 바이너리의 소스는 %PROGRAM_FILES%\Microsoft SQL Server Compact Edition\v3.5\Devices입니다. SQLCE에 대한 업데이트가 새로운 OS를 필요로하지 않기 때문에 이것은 실제로 내가 선호하는 경로입니다.

+0

바이너리를 응용 프로그램 배포에 배치하는 최선의 방법에 동의합니다. 나는 그것을 시도 할 것이지만 OTHERS \ SQLCOMPACT를 살펴보면 올바른 바이너리를 찾았지만 개발 된 이미지에서 SQLCE 버전 3.0을 발견하게됩니다. 실행중인 WinCE 이미지에 CAB을 설치하면 응용 프로그램이 작동하지만 재부팅 후 모든 내용이 손실됩니다. 우리가 볼 수 있도록 당신의 해결책을 시도 할 것입니다. 결국 나는 나를 위해 일한 해결책을 여기에 넣을 것이다. 감사. – Patrik

+0

@Patrik 최종 해결책은 무엇입니까? –

+0

두 가지 방법으로 내 문제를 해결했습니다. 1. 영구 저장소 및 레지스트리 저장 기능을 사용하는 이미지에서 CAB 실행. CF 카드를 여러 장 만들었습니다. 2. 해결 방법은 영구 저장 장치에 저장된 실행 파일과 함께 SQLCE의 DLL을 저장하는 것이 었습니다. – Patrik