Visual Studio .NET 2005でのSmart Device開発 (その2)
現状のVisual Stuido .NET 2005をPlatform Builderで構築したCE 5.0環境で動作させるには、TCP/IP接続が鍵になりそうです。
まず以下のドキュメントを見てみてください。
How to: Connect to Windows CE Device Without ActiveSync
http://msdn2.microsoft.com/en-us/library/ms228708.aspx
VS.NET 2005においても、以前のVS.NETと同じくFileメニューの"New -> Project"でプロジェクトウィザードを起動してプロジェクト生成します。ウィザードではVisual C#、Visual Basic、Visual C++ともに"Smart Device"カテゴリを選ぶことで、Win32/MFC/ATLや"Windows CE 5.0"Managed プロジェクトを作成することができます。
まずWin32プロジェクトを作ってみると、最初にSDKを選ぶ画面が出てきます。
次にプロジェクトの種類をウインドウアプリ/コンソールアプリ/DLL/スタティックライブラリなどから選びます。このままFinishすると、いわゆるHello Worldアプリのプロジェクトが作成されます。何も変更せずにBuildメニューからBuild Solutionを実行すると、
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
となってビルド成功です。次に何も設定変更せずにBuildメニューから"Deploy Solution"を実行してみると、
Device is not ready. If target is an ActiveSync device, verify whether ActiveSync connection is running.
Connect to device failed.
となって、どうもActiveSync接続を想定しているようなエラーが出ます。
ここで、上記ドキュメントの記述を参考に、以下の手順でx86エミュレータイメージを接続、デバッグすることができました。
(以下、STANDARD SDK 5.0を想定した手順を説明しますが、実際には各自PB5.0でSDKとx86エミュレータイメージを作成してください。)
[デバイス側の準備]
0. ターゲットのCE機をネットワークに接続します。エミュレータの場合はネットワークを"Virtual Switch"にするのを忘れずに
1. \Program Files\Common Files\Microsoft Shared\CoreCon\1.0\Target\wce400\
(リモートファイルビューアなど使ってみてください)
2. ipconfigなどでCEデバイスのIPアドレスを確認する
3. CEデバイスの\Windows\conmanclient2.exeを起動する
起動すると一時フォルダが作成されますが、ウインドウなどは開かずに常駐プロセスとなります。
[VS.NET 2005側の準備]
1. ToolsメニューのOptionでOptionダイアログを表示し、ツリービューのDevice Tools - Devices項目を選択
2. Devices リストビュー項目で"STANDARDSDK_500"などSDK項目を選ぶと、その中で定義されているデバイスがリストビューに表示されます。ここでは"CEPC: X86 Win32 (WCE x86)"を選んでみました
(実際にはPlatform Managerと同じで、任意の新しいデバイス名を付けることができるようです)
3. 右の"Properties"ボタンを押して、Transportに"TCP Connect Transport"を選び、右の"Configure"ボタンを押して"Device IP Address"に"Use specific IP Address"を選び、2で調べたIPアドレスを入力してOK
(開発用PCからPingが通ることを確認しておくとよいかもしれません)
[いよいよ接続]
1. デバイス側でcMaccept.exeを実行します。このモジュールを実行してから3分間接続が開くそうです。実行しても特にウインドウが開くわけではありません。
2. 開発機でTarget Device表示が上記と同じもの(たとえば"CEPC: X86 Win32 (WCE x86)")になっていることを確認してBuild メニューから"Deploy Solutin"をやってみましょう。今度は成功するはずです。
3. Deployに成功したら、(デバッグビルドの場合)DebugメニューからStart Debuggingを実行するとGUIがデバッグモードになりデバッグセッションが開始されます。実はEthernetで接続していると、むしろActiveSync接続よりも高速に通信できるようです。
4. ToolsメニューのConnect To Deviceで接続を確認することができます。WM5.0エミュレータではこの操作でエミュレータ起動できるのですが、TCP/IP接続では特に必要ありません。"Done"ボタンを押してダイアログを閉じます。