윈도우CE, PPC 배포 프로그램 CAB ( 캐비넷 ) 만들기

Posted by 빵빵빵
2009/10/20 12:37 전산(컴퓨터)/Mobile-CE&PPC



이 이야기는 WinCE 4.x에서 동작할 App 제작시 배포를 위한 이야기입니다.

(2006년 즈음에 작성했던 내용입니다.)


준비물

Cabwiz.exe (PocketPC Builder인가 거기에 포함되어 있음. eVC엔 없었다는.. =_=)

Cabwiz.ddf

Makecab.exe (Windows 어딘가에 포함되어 있었는지 이미 갖고 있었음. Cabwiz에 필요한 파일)

ezsetup.exe (오픈소스. 구글에서 ezsetup만 치면.. -_-)


Cabwiz.exe와 cabwiz.ddf, Makecab.exe는 같은 경로에 있어야 한다. 쉽게 하려면 네 파일을 모두 설치 패키지 만들 파일이 있는 경로에 같이 두고 진행하는게 좋다.

(.ini든 .inf든 뭔든 한자리에~~ -_-v)


예제를 보면서 따라하기.


example.inf

;————————————————————————————————————

[Version]

Signature = “$Windows NT$” ; 그대로

Provider = “Me” ; 소스 배포하는 사람이나 회사

CESignature = “$Windows CE$” ; 그대로


[CEStrings]

AppName=”ExProgram” ; 프로그램 이름(이나 브렌드 등등)

InstallDir=”\PocketStore\Sample” ; 설치될 위치

Desktop=”\Windows\바탕 화면” ; 단축아이콘을 넣기 위해


[Strings]

Company_name = “Comppp” ; 회사이름이라는데 별 영향없는 듯.(틀림없이 변수이고 필요 없을 것임)

reg_path = “\PocketStore\Sample” ; Registry 경로


[CEDevice] ; 여기 부분을 잘 활용하면 각 CPU에 맞는 버전을 패키징 할 수 있음(현재는 패스. 단일 플랫폼)

UnsupportedPlatforms = Pltfrm1

VersionMin = 2.0

VersionMax = 5.0


[DefaultInstall] ; 설치될 파일들의 목록을 지정하는 부분

CopyFiles = Files.Common ; 기본적으로 파일 리스트

AddReg = RegSettings ; 설치할 때 추가할 레지스트리의 리스트 이름

CEShortcuts = Startmenu, Desktop ; 말 그대로 단축아이콘. 여기서는 변수 이름만 지정하고 [DestinationDirs] 부분에 실제 경로를 기술할 것임


[Files.Common] ; 설치될 파일 리스트. [DestinationDirs] 부분에 실제 경로를 기술할 것임

DataMgrCore.dll,,,0

LOGO.BMP,,,0

THANK.bmp,,,0

Sample.exe,,,0


[CEShortcuts] ; 단축아이콘 부분

CEShortcuts = Startmenu, Desktop

[Startmenu] ; 위에선 변수 선언, 여기에서 세부내용 기술함.

SampleProgram,0,Sample.exe ; Taskbar의 시작프로그램 부분과 바탕화면에 단축아이콘을 넣을 것임

[Desktop]

SampleProgram,0,Sample.exe


[RegSettings] ; HKLM은 레지스트리의 LocalMachine.

HKLM,%reg_path%,Port,0×00000000,80 ; %reg_path% 하위로 %reg_path%\path2 와 같이 경로를 더 둘 수 있음

HKLM,%reg_path%,Server,0×00000000,123.456.789.001

HKLM,%reg_path%,Option1,0×00000000,1

HKLM,%reg_path%,Option2,0×00000000,1

HKLM,%reg_path%,Option3,0×00000000,1

HKLM,%reg_path%,Option4,0×00000000,1

HKLM,%reg_path%,Option5,0×00000000,1


[SourceDisksNames]

1 = ,”Common files”,,D:\Installation ; cab으로 패키징될 Disk 이름


[SourceDisksFiles] ; 위의 [Files.Common]의 내용과 같게 해 주면 간단함.

DataMgrCore.dll = 1

LOGO.BMP = 1

THANK.bmp = 1

Sample.exe = 1



[DestinationDirs] ; 설치될 경로

Files.Common = 0,%InstallDir% ; 위에서 설정한 경로

Startmenu = 0,%CE11% ; 시작프로그램\프로그램

Desktop = 0,%CE3% ; \Windows\바탕화면


;————————————————————————————————————


위와같이 해 주면 되겠다. *.inf는 실제로 cabwiz.exe가 .cab으로 패키징할 내용을 담고 있다. 심사숙고해서 만들길 바란다.


cabwiz.ddf

;————————————————————————————————————

;

; cabwiz.ddf

;

; Template directive file to create the CAB file

;


.Set Cabinet=ON

.Set Compress=OFF

.Set CabinetFileCountThreshold=0 ; no files per cabinet threshold

.Set FolderFileCountThreshold=0 ; no files per folder threshold

.Set FolderSizeThreshold=0 ; no folder size threshold

.Set MaxCabinetSize=0 ; no max size for the cabinet

.Set MaxDiskFileCount=0

.Set MaxDiskSize=0

.Set ReservePerCabinetSize=0 ; for web signing

.Set ReservePerDataBlockSize=0

.Set ReservePerFolderSize=0

.Set UniqueFiles=OFF


.Set DiskDirectory1=.

.Set DiskLabel1=Setup


;

; to be filled out by the CABWIZ.exe program

;.Set InfFileName=

;.Set RptFileName=

;.Set CabinetName1=

;

; followed by the list of files

;————————————————————————————————————

이건 이대로 바꿀 것 없이 그대로 쓰면 된다. 세부적인 내용은 구글신이 알려줄거다.


setup.ini

;————————————————————————————————————

[CEAppManager]

Version = 1.0

Component = Sample_program ; 요게 [Sample_program] 요리에서 설명한다.


[Sample_program]

Description = 주절주절 ; 그냥 이런저런 설명

Uninstall = Sample Program ; 프로그램 추가/제거에 나타나는 이름

CabFiles = sample.cab

;————————————————————————————————————

*.ini는 ezsetup.exe가 cab을 exe로 만들어줄 내용을 담고 있다. 그리고 프로그램추가/제거의 목록에도 나타나게 된다.


.cab 만들기

>> cabwiz sample.inf /err error.txt

이렇게 하면 sample.cab이 만들어진다. 에러나면 error.txt를 보도록

사실 이 .cab만 WinCE PDA에 복사해서 실행하면 설치한다. 그래도 좀 더 폼나는 설치 패키지(PC에서 실행하는)를 만드려면 ezsetup.exe를 사용한다.


.exe 만들기 (설치용 패키지!!)

>> ezsetup -l english -i setup.ini -r ReadMe.txt -e eula.txt -o Setup_Sample.exe

ReadMe.txt는 설치 시작할 때 나오는 글이고, eula.txt는 사용자 약관(동의하나 하는)에 대한 내용이다.


모두 정상작동한다면 Setup_Sample.exe가 멋지게 나올 것이다.

(실제 이 방법으로 한국의 대기업 K사에서 업무용 PDA 프로그램이 배포된다. -_-v)

혹시라도 위의 방법에 대해서 질문이 있는 분은 서슴없이 제게 메일을 주시길. ( icksishu At gmail Dot com )


P.S 사실 위의 내용은 본인이 잊지 않기 위해서 적어둔 것임. -_-;;

출처 : http://defree.co.kr/blog/?p=32


예제파일

2009/10/20 12:37 2009/10/20 12:37

이 글에는 트랙백을 보낼 수 없습니다