'VS2008'에 해당되는 글 3건

  1. 2009/03/11 글뻥 VS2008 Windows mobile 6 개발환경 구축 - 4 (5)
  2. 2009/03/10 글뻥 VS2008 Windows mobile 6 개발환경 구축 - 3 (2)
  3. 2009/02/04 글뻥 VS2008 Windows mobile 6 개발환경 구축 - 1 (8)

Link
1편/네트워크 연결하기-http://www.wolfpack.pe.kr/303
2편/Bluetooth사용하기-http://www.wolfpack.pe.kr/310
3편/모바일배포일반-http://www.wolfpack.pe.kr/314
4편/PC에서모바일배포-http://www.wolfpack.pe.kr/315

오늘 그냥 필받았다고 치고 원래는 다음주쯤에 해야할 배포 마지막을 밟아 보고자 한다.
지난번에 기본적인 원리까지 진행했는데 이제 구현할 차례이다.

1. PC 설치 프로젝트를 추가하자.
솔루션을 클릭하고 마우스 우클릭, 추가, 새프로젝트 클릭후에 위저드 화면에서 설치프로젝트로

사용자 삽입 이미지
2. 설치 프로젝트가 열렸다면 불필요한 폴더 다날리고 "응용 프로그램 폴더" 1개만 남겨 놓은뒤에 TestCAB이라는 폴더를 추가하자.
사용자 삽입 이미지
3. 우측 창을 클릭하여 TESTCAB 프로젝트 출력물을 추가하자.
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
4. 응용 프로그램 폴더의 속성중 설치될 폴더가 있다. 너무 기니 알맞게 자르도록 하자.
사용자 삽입 이미지

* 현재 상태는 DefaultLocation이 "C:\Program files\FunnyWorld"가 된다. PCSetup프로젝트의 속성에 manufacturer 설정이 FunnyWorld이기 때문이다.
사용자 삽입 이미지
5. 이제 레지스트리를 추가하자.
* PCSetup프로젝트를 클릭하고 마우스 우클릭, 보기, 레지스트리를 차례로 클릭한다.
사용자 삽입 이미지
* PCSetup에 대한 레지스트리를 추가하도록 하자.
사용자 삽입 이미지
* "VS2008 Windows mobile 6 개발환경 구축 - 3" 말미에 미리보았던 그 구조이다.
- 우클릭후에 새로만들기로 추가하되 레지스트리에 표현되는 종류는 다음과 같다.
문자열값 - REG_SZ
확장 가능한 문자열 값 - REG_EXPAND_SZ
이진값 - REG_BINARY
DWORD - REG_DWORD
이상 4가지 타잎이 지원된다. 하지만 레지스트리에서 사용하는 것은 총 5가지 타잎으로 "다중문자열값(REG_MULTI_SZ)"가 지원되지 않는것이 좀 흠이랄까?
"VS2008 Windows mobile 6 개발환경 구축 - 3"에서 REG_MULTI_SZ로 보인것은 REG_SZ 타입으로 설정하자.

6. 레지스트리 설정이 완료되고나면 이제 설치후 "CEAppMgr.exe"을 실행시켜 주는 녀석을 만들자.
먼저 솔루션에 콘솔 프로젝트를 추가하였다. 윈도우에서 실행되는 것이라면 다른것도 관계없다. 알아서 취향에 맞게 추가하기만 하자.
사용자 삽입 이미지
이제 코딩이다. CEAppMgr.exe가 어디에 있는지 알아야 하니 레지스트리를 뒤져서 실행하도록 짜보자.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Win32; //레지스트리 관련 필수 추가

namespace runner {     class Program     {         static void Main(string[] args)         {             //레지스트리에 접근하여 값을 가져온다.             string regPath = @"Software\Microsoft\Windows\CurrentVersion\App Paths\CEAppMgr.exe";             RegistryKey rgkey = Registry.LocalMachine.OpenSubKey(regPath, true);             Console.WriteLine(rgkey);             String rtnPath="";             foreach (string Val in rgkey.GetValueNames())                 rtnPath = rgkey.GetValue(Val).ToString();                         //가져온 경로대로 실행한다.             System.Diagnostics.Process ps = new System.Diagnostics.Process();             ps.StartInfo.FileName = @rtnPath;             ps.Start();         }     } }



7. 노가다는 이제 끝나간다. 다시 PC설치용 프로젝트로 이동해서 앞에서 만든 Runner 프로그램을 출력에 추가하고 사용자 작업에 추가해주자.
- runner 프로젝트의 출력을 추가했음
사용자 삽입 이미지
- PCSetup프로젝트의 사용자 지정작업 클릭
사용자 삽입 이미지
- 설치 단계에 runner의 기본출력을 지정하였다.
사용자 삽입 이미지

8. 이제 최종 설치한번 해보자.
- 간단하게 솔루션 탐색기에서 PCSetup 프로젝트 선택후 마우스 우클릭하면 설치할 수 있다.
사용자 삽입 이미지
- 설치하고 나서 원하는 대로 추가/제거 윈도우가 나타난다.
사용자 삽입 이미지

9. 실재 설치후 테스트
- TESTCAB를 선택하자.
사용자 삽입 이미지
- 응용 프로그램 다운로드 완료라고 뜨고 Windows Mobile Device에서는 열심히 설치중이다.
사용자 삽입 이미지
- 설치완료모습
사용자 삽입 이미지


이로써 기본 윈도우즈 모바일 개발환경 구축은 완료되었다.
추가적으로 필요한 부분은 SDK를 구매하는 것을 권한다. 그러나, 일반 범용 어플리케이션은 에뮬레이터로 충분히 나아가 Bluetooth까지 지원하며 PC에서 손쉽게 설치하는 방법까지 공개하였으니 어렵지 않을것이다. 본 윈도우즈 모바일 개발환경 구축 관련 글은 개인 저작물이며 누구나 퍼나를수 있다. 그러나, 허락없이 퍼나르거나 동영상으로 포맷그대로 전환하신 분도 계시다. 쓰지말라고 올리는 것도 아닌데 방명록에 쓰겠다는 멘트만이라도 남겨주면 어떨까?

다음에 또 다른 지식을 나눠보도록 하자.
2009/03/11 15:21 2009/03/11 15:21
Link
1편/네트워크 연결하기-http://www.wolfpack.pe.kr/303
2편/Bluetooth사용하기-http://www.wolfpack.pe.kr/310
3편/모바일배포일반-http://www.wolfpack.pe.kr/314
4편/PC에서모바일배포-http://www.wolfpack.pe.kr/315

이번에는 PC에서 Mobile로 만든 CAB파일을 설치하는 방법에 대해 알아보자.
일단 Windows Mobile 개발이 능숙한 사람을 대상으로하니 자질구래하게 프로그램 소스까지 올리지 않도록 하겠다.

단계는 다음과 같이 한다.
1. Windows Mobile 프로그램 제작
2. Windows Mobile 배포 패키징
3. Regedit로 레지스트리를 건드려 ActiveSync 설치목록에 뜨도록 만들기
4. ActiveSync 설치관리자로 설치하기

1. TestDeploy라는 프로젝트명으로 어플리케이션을 하나 만들었다.

사용자 삽입 이미지
2. 이제 CAB으로 싸자
   1) 솔루션에서 새프로젝트를 추가하자.
사용자 삽입 이미지
   2) TESTCAB이라는 이름으로 모바일 설치 프로젝트를 생성
사용자 삽입 이미지
   3) "프로그램 폴더" 추가
사용자 삽입 이미지
   4) 쓸데없는 폴더는 날리자.
사용자 삽입 이미지
   5) 응용 프로그램 폴더를 클릭하고 추가
사용자 삽입 이미지
사용자 삽입 이미지
   6) 프로그램 폴더에 바로가기를 생성하자.
       - 프로그램 폴더 클릭후에 오른쪽 창에서 마우스 우클릭
사용자 삽입 이미지
      - 응용 프로그램 폴더안의 TestDeploy의 기본 출력(활성)을 선택
사용자 삽입 이미지
       - 파일이 생성되면 "Shortcut to TestDeploy의 기본 출력(활성)"이라고 쓰여져 있는데 한글은
         Ansicode로 변환하는데 실패할 수 있으므로 영문으로 바꾸자."Shortcut to TestDeploy"로
         한글만 지웠다.
   7) 이제 설치파일에 기록될 작성자나 뭐 기타 등등을 고쳐주자.
사용자 삽입 이미지
   8) 솔루션 전체를 빌드하자.
사용자 삽입 이미지
   9) ActiveSync의 "탐색" 기능을 이용하여 생성된 CAB 파일을 Windows Mobile에 옮겨 놓자
사용자 삽입 이미지
    10) 옮겨 놓은 모습
사용자 삽입 이미지
   11) 실행하자.
사용자 삽입 이미지
   12) 프로그램 메뉴에 있는지 확인하고 실행하자.
        - 한글이 깨지는 문제는 Widnows Mobile Emulator가 영문버전이기때문임. 한글버전은 문제
           없음.
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
3. 이제 본격적인 PC를 통한 설치를 하기위해 사전 지식을 쌓아보자.
위에서 일련의 프로그램을 만들고 CAB으로 만들어 배포하는것을 해보았지만 문제는 이게 좀 귀찮다는 것이다. PC에서 Windows Mobile Device를 설치하는 기능이 있음에도 잘 안쓰니까 문제라고나 할까?

- ActiveSync의 프로그램 추가/제거 기능이 바로 그것이다.
사용자 삽입 이미지
- 프로그램 추가/제거를 클릭하면 설치할 수 있는 파일들이 뜬다.
사용자 삽입 이미지
이녀석들은 도대체 어디 있길레 이렇게 뜨는것일까? 시작>실행에서 "Regedit"를 실행하여 살펴보도록 하자.
결론부터 말하자면 여기에 존재한다.
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services\AppMgr\Apps

어랏? 많이 보던 녀석들 아닌가?
사용자 삽입 이미지
다시말해 레지스트리에 등록만 해주면 ActiveSync의 기능을 추가/제거 기능을 이용할 수 있을듯 하다.
다음은 "Adobe FlashLite"를 클릭해서 내용을 발취한후 TESTCAB에 맞게 수정한 것이다.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services\AppMgr\Apps\TESTCAB] "AppName"="TESTCAB" "Description"="" "IconIndex"=dword:00000000 "InstallDir"="D:\\Work_Source\\TestDeploy\\TESTCAB\\Debug" "ListCabFiles"=hex(7):54,00,45,00,53,00,54,00,43,00,41,00,42,00,2e,00,43,00,41,\   00,42,00,00,00,00,00 "ListCpuTypes"=hex(7):30,00,00,00,00,00 "Provider"="FunnyWorld"


실재 레지스트리를 살펴본 모습은 이러하다.
사용자 삽입 이미지

이렇게 레지스트리를 고쳤을때 실재 파일의 위치만 정확하다면 다음과 같이 프로그램 추가/제거 윈도우에서 뜬다.
사용자 삽입 이미지

이제 하나만 더해보자.
TESTCAB를 프로그램 추가/제거에 넣었다고는 하나 저기능을 자동으로 띄우지 못한다면 불편한것은 여전하다. 짧게 다시 결론부터 이야기하자면 저녀석의 명칭은 "CEAppMgr.exe"이다.
(프로그램 추가/제거 윈도우를 활성화 한상태에서 윈도우 작업관리자를 띄워 놓고 이름순으로 정렬한뒤에 프로그램 추가/제거창을 닫으니 사라지는 프로세스가 바로 저 이름이었다.)
어디에 있는줄은 모르겠지만 암튼 CEAppMgr.exe를 실행하면 된다니 이 녀석도 레지스트리에서 찾아보자.


\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\CEAppMgr.exe



위의 경로에 기본값으로 박혀 있다는 것을 확인 가능하다.
* 내경우는 "C:\Program Files\Microsoft ActiveSync\CEAPPMGR.EXE"이었다.

다음에 Windows Setup을 통해 CAB파일을 특정장소에 보관하고 레지스트리를 조작한 후에 CEAppMgr.exe를 실행해보도록 하자.
2009/03/10 15:57 2009/03/10 15:57
Windows mobile 6는 사실 Core가 Mobile 5와 동일하다.
다시말해 기죽지 말자.
아무튼 Smart Phone개발하려면 환경구축이 중요한데 특히 옴니아(Omnia)폰과 같이 고가의 장비를 갖춰서 개발한다는 아닌것 같다.

본 포스팅은 이런 환경을 구축하는데 노력이상의 비용을 지불하지 않는 선에서 환경구축을 완료하는데 그 목적이 있다.

1편 - Emulator에 네트워크 어떻게 연결할까?
2편 - Bluetooth를 Emulation할 수 없을까?
3편 - 만들긴 만들었는데 어떻게 배포하지?

Link
1편/네트워크 연결하기-http://www.wolfpack.pe.kr/303
2편/Bluetooth사용하기-http://www.wolfpack.pe.kr/310
3편/모바일배포일반-http://www.wolfpack.pe.kr/314
4편/PC에서모바일배포-http://www.wolfpack.pe.kr/315

이렇게 3부에 걸쳐 Windows Mobile 6 기반의 어플개발환경구축에대해 주저리주저리 떠들어 보자.

준비물은 Visual studio 2008 Express 이상이면 되고
Omnia같이 해상도가 800*480정도 되는 놈은 미쿡 이미지만 지원하므로 따로 다운로드 받는다.
일단은 Windows mobile 6 SDK부터 다운로드 받자.
http://www.microsoft.com/downloads/det ··· ang%3Den
그리고 480 * 800 개발용 이미지는 여기서 더 받도록 하자.
http://www.microsoft.com/downloads/det ··· ang%3Den

다운로드후 설치는 자동으로 OK.

XP라면 Activesync 4.5를 설치하고 Vista라면 디바이스 센터를 업데이트 한다.
여기서는 Activesync로 진행하겠다.
Activesync를 실행한후 "파일>연결설정"을 클릭한다.
다음과 같은 설정창이 뜨면 "다음 중 한가지 연결 허용"을 체크하고 DMA를 추가해둔다.
사용자 삽입 이미지
나머지는 Visual Studio 2008의 몫이다.
VS2008을 실행한후에 "도구>장치 에뮬레이터 관리자"를 클릭하여 관리자를 실행한다.
사용자 삽입 이미지
관리자 실행후에 해당 이미지를 클릭하고 마우스 우클릭하면 메뉴가 뜨는데 여기서 "연결"을 선택하자.
사용자 삽입 이미지
연결을 클릭하면 자동으로 이미지가 활성화되고 Emulator가 작동하기 시작한다.
사용자 삽입 이미지
에뮬레이터가 실행되면 다시 관리자에서 이미지를 선택하고 마우스 우클릭하여 "크레들에 놓기"를 선택하자.
사용자 삽입 이미지
이제 가상으로 크레들에 놓은것처럼 작동되어 동기화를 시작하게된다.
(동기화 설정은 생략함. 왠만하면 동기화 설정은 모두 언체크하여 하지 않도록 하자.)
사용자 삽입 이미지
마지막으로 연결이 완료되었는지 확인하자.
사용자 삽입 이미지
인터넷이 제대로 작동하는지도 확인하자. 본인의 PC가 인터넷이 연결안되어 있으면 말짱꽝이니 조심해서 체크 바란다.
사용자 삽입 이미지

2009/02/04 13:04 2009/02/04 13:04