hishidaの開発blog

EBシリーズ(EBPocket,EBWin,EBMac,EBStudio),KWIC Finder,xdoc2txt,読書尚友の開発者ブログ

いまさらのWindowsCEプログラミング(6) - インストーラの作成

WindowsCEのアプリケーションをインストールする方法は次の3つあります。

(1) CABファイルをWinodwsCE機に転送し、実機上でファイルエクスプローラでダブルクリックする
(2) ActiveSyncで接続し、デスクトップコンピュータ上でセットアップ(.exe)を実行する
(3) インストーラが用意されず単に書庫ファイルに圧縮されている場合、解凍して実機にファイルを転送する

今回は(1)(2)の作り方を説明します。
例は全て EBPocket で実際に使用しているファイルです。


参考:アプリケーション インストール パッケージの作成 - Microsoft

CABファイルを作る

.infの作成

まずCPUの種類や構成ファイルを記述した .inf ファイルを用意します。

EBPocket.inf (EBPocketのinfの例)

なお、cabwizを実行するPCでカレントディレクトリの配下に以下のファイルがあることを仮定しています。

Common/				keycode.ini,profile,ini,color.dat,EBPocket.htm
cpu/CE_2.1/{arm,mips,sh3}/	EBPPC.exe,zlibce.dll
cpu/CE_3.0/{arm,mips}/		EBPPC.exe,zlibce.dll
cpu/CE_4.0/arm/			EBPPC.exe,zlibce.dll
cpu/PPC2003/arm/		EBPPC.exe,zlibce.dll
cpu/PPC3/{arm,mips,sh3}/	EBPPC.exe,zlibce.dll
cpu/PsPC/{mips,sh3}/		EBPPC.exe,zlibce.dll
CabWizの実行

eMbedded Visual Toolsと同時に配布される cabwizユーティリティで、cabファイルを生成します。

"C:\Windows CE Tools\wce300\MS Pocket PC\support\ActiveSync\windows ce application installation\cabwiz\CabWiz.exe" 
".\EBPocket.inf" /err err.log /cpu HPCPro_ARM HPCPro_SH3 HPCPro_MIPS HPC2000_ARM HPC2000_MIPS 
PPC_SH3 PPC_MIPS PPC_ARM PPC2003_ARM sig3_ARM PsPC_MIPS PsPC_SH3

(※見やすくするために改行していますが、実際は改行しません)

上の例では、次の12個のcabファイルが作成されます。

  • EBPocket.HPCPro_ARM.cab
  • EBPocket.HPCPro_SH3.cab
  • EBPocket.HPCPro_MIPS.cab
  • EBPocket.HPC2000_ARM.cab
  • EBPocket.HPC2000_MIPS.cab
  • EBPocket.PPC_SH3.cab
  • EBPocket.PPC_MIPS.cab
  • EBPocket.PPC_ARM.cab
  • EBPocket.PPC2003_ARM.cab
  • EBPocket.sig3_ARM.cab
  • EBPocket.PsPC_MIPS.cab
  • EBPocket.PsPC_SH3.cab

デスクトップコンピュータ用のインストーラを作る

CeAppMgrによるインストール

ActiveSyncに付属する CeAppMgr を使用すると、デスクトップコンピュータからActiveSync経由でアプリケーションをインストールできます。プラットフォーム・CPUに合った適切なCABが自動的に選択されます。

まず.iniファイルを用意します。

[CEAppManager]
Version = 1.0
Component = EBPocket

[EBPocket]
Description = "EB series EBPocket"
CabFiles = EBPocket.HPCPro_ARM.cab,EBPocket.HPCPro_SH3.cab,EBPocket.HPCPro_MIPS.cab,
EBPocket.HPC2000_ARM.cab,EBPocket.HPC2000_MIPS.cab,EBPocket.PPC_SH3.cab,
EBPocket.PPC_MIPS.cab,EBPocket.PPC_ARM.cab,EBPocket.PPC2003_ARM.cab,
EBPocket.sig3_ARM.cab,EBPocket.PsPC_MIPS.cab,EBPocket.PsPC_SH3.cab

(※見やすくするために改行していますが、実際は改行しません)

CeAppMgrを起動すると、ActiveSync経由で適切なCABを転送し、インストールが開始されます。batファイルにしておくとよいでしょう。

"C:\Program Files\Microsoft ActiveSync\CEAppMgr.exe" .\EBPocket.ini
EZSetup.exeを使ってパッケージを作る。

フリーソフトのEZSetupを使用すると、Windows上で起動するインストーラを作成できます。非常に便利ですが、CABファイル全てを含んだ単一の実行ファイルができます。
次の例は実際に動きますが、EBPocketではこのタイプのインストーラは提供していません。

参考:テクニカルノート15: 作成したアプリケーションの配付

EzSetup 日本語版 (free)

ezsetup -l japanese -i .\EBPocket.ini -r ..\README.txt -e ..\LICENSE.txt  -o .\EBPocket.exe