0

최근 WinMobile5 응용 프로그램 용 VS2005 솔루션을 VS2008로 업그레이드했습니다. 이 솔루션에는 CAB 빌더 프로젝트와 MSI Desktop Installer 프로젝트가 포함되어 있습니다. 설치 프로그램의 사용자 정의 DLL은 Compact Framework 2.0, 스캐너 라이브러리 등과 같이 실제 장치에 지원되는 CAB를 배포하는 작업을 처리합니다. 모바일 Compact Framework 2.0 VS2008에서 생성 된 Win7에서 성공적으로 설치하지 못했습니다.

나는 MSI 설치를위한 가이드로이 문서를 사용 :에서 Setup.exe/MSI 파일을 실행하면
http://msdn.microsoft.com/en-us/library/aa446504.aspx

문제는 CF2 CAB는 Win7에에서 WM5 장치에 성공적으로 설치되지 않습니다. 그러나 XP에서 설치하면 문제가 없습니다.

요약 :

-Windows7 32 비트 컴퓨터 - VS2008/WM6의 SDK (WM5 지원 포함)
-Symbol WM5 장치 - MC70
- 윈도우 모바일 디바이스 센터
-Created 데스크톱 MSI 설치하기 CF2 CAB와 사용자 정의 DLL을 통한 내 응용 프로그램의 CAB
- 내 응용 프로그램의 CAB 설치가 성공적으로 완료되면 CF2 CAB에 "설치 실패"라고 표시됩니다.
- VS2008에서 응용 프로그램을 실행/디버깅해도 CF2가 올바르게 배포되므로 그것은 일할 수 있습니다.

재미있는 재미있는 이야기 :
나는 소스와 비교하는 장치에서 펑키 CF2 CAB을 다시 뽑아 여기에 있습니다 :

C : \ 프로그램 파일 \ Microsoft.NET \ SDK \ CompactFramework v2.0이 \의 윈도우 CE \ \ wce500 \ armv4i \ NETCFv2.wm.armv4i.cab

놀랍게도 장치 CAB에는 원본과 다른 두 개의 HEX 바이트가 있습니다. 처음부터 :

4D (철수)에서 00 68 48 53 43 46 00 00 나머지는 동일하다 나머지는 동일하다 (소스로부터)
4D 53 43 46 00 00 00 00 50 22

"68 48"CAB을 "50 22"CAB로 교체하고 장치에서 수동으로 실행하면 제대로 설치됩니다. 그래서 내 질문은 : 소스 cab 장치에 도달하면 약간 변경된 이유는 무엇입니까? 그 외에는 파일이 동일합니다.

다른 시도 :
WM5/CF2를 타겟팅하는 작은 응용 프로그램을 처음부터 만들었습니다. CAB 프로젝트 추가, 설치 & 프로젝트 추가. XP에서 설치 프로그램을 실행하십시오. Win7, 붐에서 설치 프로그램을 실행하십시오!

/장치 루트에 CF2 설치 로그가 없습니다. 그다지 멀리는 가지 않습니다.
VOLATILE/Setup.log에 "오류"가 없습니다.

나는 또한 UberCab 접근법 (하나의 CAB에 여러 CAB 묶음)을 시도했습니다. 그러나 장치를 번들 해제 할 때 : BOOM이 실패합니다. 그것은 어떻게 든 알고 있습니다.

나는 지혜로 끝이다. CF2 조각은 그냥 작동해야합니다.다시 CAB 설치 프로그램 SDK 내 소스 코드를 찾고

답변

0

, 나는 CAB의 시작은 고정 된 크기의 헤더 인 것을 알 수있다. 첫 번째 DWORD는 CAB 서명 (0x4643534d 리틀 엔디안)입니다. 두 번째 DWORD는 예약 세트이며, 귀하의 경우 모두 0입니다. 다음 DWORD은 CAB의 크기입니다. 더 낮은 단어 만 표시되지만 그 차이는 거의 10KB입니다 (0x4868 - 0x2250 = 0x2618). 그게 파일의 끝을 지나서 데이터를 찾고 있기 때문에 CAB 압축 해 제기가 실패 할 가능성이 있습니다.

지금 이 변하는 지 잘 모르겠습니다. MSI에서 CAB 소스를 확인 했습니까? 다른 도구에서 MSI를 열어서 CAB을 꺼내서 거기에 있는지 확인하십시오. 기본적으로 CAB가 소스면에서 잘못되었습니다 (가장 가능성이 높습니다). 이동하면 수정되는 중입니까?

+0

ctacke - 제안한대로 7-zip을 사용하여 MSI에서 CF2 택시를 꺼 냈습니다. BeyondCompare는 소스와 동일하다고 말합니다. 아직 장치에서 그것은 내 게시물에 설명 된대로 변경됩니다. 이 시점에서, 나는 나의 상자를 의심한다. 다른 컴퓨터에서 테스트 설치를 수행합니다. 당신의 도움을 주셔서 감사합니다. - Tom –

+0

Followup- http://www.christec.co.nz/blog/archives/61에서 맛있는 음식을 발견했습니다. 아래쪽에 "ActiveSync를 통해 전송 된 CAB 파일은 전송 프로세스 중에 변경 될 수 있습니다"라는 메시지가 표시됩니다. 서명 된 CAB를 가리키는 MSDN 게시물을 가리키는 포인터가 작아서 실제 크기를 나타내는 3 번째 DWORD를 변경하여 서명하지 않습니다. –

관련 문제