W-ZERO3[es]にプログラミング環境を(2)

前回(W-ZERO3[es]にプログラミング環境を - ひらいて)に引き続きW-ZERO3[es]のプログラミング環境(.NetCF2.0)をタダで整えるべく苦労する日記。


.Net Compact Framework 2.0の上でも、ライブラリ限定すれば.Net (Normal) Framework 2.0 SDKコンパイルしたアプリケーションも動作するらしいと気が付いたのが昨日。しかしライブラリ限定ってもメッセージボックスも使えないのは何とかならんかねと思って色々いじってたら、esにセットアップしたときにPC上に残った.Net Compact Framework SDKを使ってプログラムコンパイルしたら出来た。以下手順をメモ。
特にHackな部分も無く、多分リーガルな手順のみのはず。かなり頑張ればSDKだけで.netcf2.0のフォームアプリケーションも作れるか。


0.材料
・(OS)Windows XP SP2
・(runtime)Microsoft .NET Framework Version 2.0 再頒布可能パッケージ (x86)(コレ
・(optional)Microsoft .NET Framework 2.0 日本語 Language Pack (x86)(コレ
・(SDK)Microsoft .NET Framework 2.0 SDK 日本語版 (x86)(コレ
・(tool)Microsoft ActiveSync 4.2(コレ
・(runtime/SDK).NET Compact Framework 2.0 Service Pack 1 再頒布可能パッケージ(コレ


1.インストール
OSを除く上記を片っ端からダウンロード&インストール。


2.プログラムを書く
以下はMessageBoxで"hello!!"とだけ表示するプログラム。
[msgbox.vb]


imports System.Windows.Forms

module msgbox

sub Main()
MessageBox.Show("hello!!")
end sub

end module


3.コンパイル環境を整える
環境変数の設定が結構めんどくさいのでバッチファイルに。
/rオプションで、プログラム中で使用しているライブラリの収まったdllファイルを指定する。今回はSystem.Windows.Forms.MessageBoxしか使ってないけど、どうもSystem.dllの場所も指定しないとプログラムをコンパイルできない。
[setncfenv.bat]


rem .Net (Normal) Framework SDK 2.0 のインストール先
rem (vbcとかのコンパイラが置いてあるディレクトリ)をパスに追加
set PATH=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;%PATH%

rem .Net Compact Framework SDK 2.0 のインストール先をセット
set CFLIB="C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE"

rem vbcに渡すコンパイルオプション。
ren /rでプログラムが利用するライブラリを列挙する
set CFOPS=/netcf /nostdlib /sdkpath:%CFLIB% ^
/r:%CFLIB%\System.dll /r:%CFLIB%\System.Windows.Forms.dll


4.プログラムをコンパイル
先に設定した環境変数をオプションとしつつプログラムをコンパイル
コンパイル中に
「mscorlib.dll バージョン 2.0.6129 を使用しています。
Microsoft.VisualBasic.dll バージョン 2.0.6129 を使用しています。」
と表示されれば上手く行ってるかな。


>vbc %CFOPS% msgbox.vb



5.W-ZERO3にプログラムをコピー
PCの「モバイルデバイス」のフォルダ経由でesの適当な場所にプログラムをコピー。


6.プログラムを実行
esで「ファイル エクスプローラ」起動して、5でコピーしたプログラムを実行。
"hello!!"とメッセージボックスが表示されれば成功。


(追記)W-ZERO3[es]にプログラミング環境を(3) - ひらいて