ちょっと番外編というタイトル通り、内容はありません。
Windows® Marketplace for Mobile アプリケーション申請の必要条件の「3. 効率的なメモリ管理」というセクションには次のように書かれています。
3.1. アプリケーション検証ツールのテスト
Hopper のテスト中または他のテスト ケースの最中に、潜在的なメモリ問題を示すアプリケーションのサブセットのみ、Microsoft アプリケーション検証ツール (AppVerifier) でのテストを実行する必要があります。アプリケーションは AppVerifier テストの実行中に、プライマリおよびセカンダリ機能をすべて実行できる必要があります。ヒープの破損、およびクリティカル セクションの使用などの無効なロックの使用状況を検出するように、AppVerifier を設定してください
要は AppVerifierでメモリリーク等が無いかチェックしろという事ですね。
AppVerifierはここから落とせます。
あと、Windows CE 5.0 CETKと場合によっては.NET Framework Version 1.1が必要になります。
Windows 7に Windows CE 5.0 CETKをインストールしようとすると不吉なメッセージが表示されますが、とりあえず実行しても大丈夫でした。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgrqHJ9o5zjykEGwKzaFS-sbRA8T9bpi0laDnDebPn0bAK4DDmhtcna7-HI798DXU9gNGBfoEiACcFM65zSZnm_0GySKoMmbIc0DaeUTyRgoXHXhFwAYiMB34YqLCaH7eP_llrfRSbaL4/s320/CETK_install.jpg)
それぞれをインストールした後で AppVerifierのインストールフォルダの ARMV4Iフォルダ(C:\Program Files\Application Verifier for Mobile 5.0\ARMV4I)を CETKのインストールフォルダ(C:\Program Files\Windows CE Platform Builder\5.00\CEPB\wcetk\DDTK)にコピーします。
これを忘れると「Unable to enable shim engine on device」という意味不明なメッセージが出て AppVerifierがハングアップしてしまうようです。
また、テスト対象のエミュレータは事前に起動して PCとパートナーシップを作成しておきます。
この状態で Windows CE 5.0 Test Kitを管理者権限で起動し、[Connection]-[Start client...]を選んで [Use Windows Sockets for the client/server communication]のチェックを外し [Setting]ボタンをクリックします。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfdAYiJQXgakXypVn6HveK1AeE-IXFZU560JWjf820gLl5EmN1hmOGeeDZdGmrgmZghhxeEsi4CKwunQO33Gc1t95cp8fD2mNDZbIWVa7dPQroAPDeEljQFKru6bB6a_SbZFm-zN9TemY/s320/appverifier1.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQrfZpSlNYe96HO9wSSYpoUmQTpVImDQigoMRLielY4Q7C2S7TpAMOz46IrCyk_aS_-dUIJ1868j5KlbtbaYikWecTvTIXD6fb50Os4yZj6npsZFiHnNQ2Q2dzXWDZ25ftUDKDMlWab0M/s320/appverifier2.jpg)
[Default Device]のプロパティを開き、[Transport]、[Startup Server]を ActiveSyncに変更します。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0xdzD5vu4qquWdMTli8XiN4zbZneBH9euGBTmCi0Mqgksq1RwfKccX2qhecikCqEb8YbP5rNlUkmllWaoVZBoO-k0GjmIoXYSz_tNHGZTobJTvGY1ZWetogEkIxpqXmxmzmeennEoyME/s320/appverifier3.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHIod44yEfr9Gq5BvjhiuDa7mMkzb8-DaFt1npVsAzfg1qapNcBtHcz8S2rVdMiViInyXTxN8ysa97BDvYL5nuY9h7JKd7t3e60Vz-kFfrARwsJHN17r2UjfC6Yy9KRFeca9sA8GdE3y8/s320/appverifier4.jpg)
戻った画面で [Connect]をクリックして 先ほどの [Default Device]を選択するとエミュレータに接続する事ができます。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVI6omaAIFG0zu2KzyZ0Mltn34oCdpKmQ9KzzCPKMIIqydykLxtIEQquHq8mkhcxjXelpZLyjcENC-cobcQXt88avkOjXoN8Yh_X7YxkBXkArW1A8J1glvNnNTQegE5tF33l14uV5l-3o/s320/appverifier5.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLInP4uXX7HolEj9f-IJRoSj_NiEnk5nJlrd5EBx_qdxAcNq4c5FeiuU92yGK2XsFMtqFELH5elo6K2BQakcdU4G_3ZeLPwXNjaK_AfPC5DJQcwMwlPI8z6eJ7jQD6JydJlqHlPrY1GbM/s320/appverifier6.jpg)
表示されているデバイスを右クリックして [Tools]-[Application Verifier]で ようやくAppVerifierが起動します。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9MnTlDrnL8A2EDwz-pKIlefO_cHwkLIwej5Ri6pOjmZUE1ywYHJslW1MaHr1gUSHdwf8X5mAmkbZ4qACSaDGSjOHxPF7h_M_9xbk25NdqKCPkD9mtUt1LX1eB9imUvQVBC9ZMyqbICf4/s320/appverifier7.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRPB0gZpHlfO7DZKCfA0-mZFt5WhM6jrzFd0xvfWdkQPSvaJEAMIoK9JHjB9nFFDtPT3-r1RpTy6112YnIZcF69EyN821rvEW2Utd3tnqRXgErxtFDG6BX_Z38w3OTGwy3a-G5pyt9czA/s320/appverifier8.jpg)
[Connect...]をクリックして Device Connectionのウィンドウを開き、更にその中の[Connect...]をクリックします。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg36ZMGJNW366mhAsCL2GIaECJhftFshgZu0_m2qbp_9SA6pV5hFl0apj-_2Iv_p10IY4CRvyr18e1TTn3ISqCfYbemZQma7YeiuBOyGhPMJhbd2wDAEzgRCJfm9MBPB4r3rSlfDB0MfZg/s320/appverifier9.jpg)
しばらくして接続が完了した後、[Add...]ボタンをクリックしてテストしたいアプリを選択します。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3KSePGYGcUZ0lSM6ut14-IGpcEvfyypqDo3YqQxyCQh6uucGHGDp9L8TQ-yHnJNZ1KUu9i58KRahPOspsApzuNLEMsVjHhaBEqXoutMXKFizLibEYh2zNWy8zgFC3hc-TfvR6-j-Lmoo/s320/appverifier10.jpg)
ところが、今回のアプリをテストしようとしたところ「Unable to create process 'ihighwayviewer.exe':Error 2」というメッセージが表示されてテストを行うことができませんでした。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT8QCkW5rwBCiq9v1Zjqqcveyx46FdAIIvP6yJIBXnY-eU52XhFfGOQH86Qz1qttk2xLc2Y7D2VmWROMvkDIHeiQy73aiLF8NV7eeEi5EKy7wSTmV5QXknhQo9khyYfutAkMsAgUFguxc/s320/appverifier11.jpg)
ここまで来て、資料の続きを読むと次のように書かれています。
次に、アプリケーション検証ツールのテストで、必要条件の適用を除外される項目を示します。
・マネージ コード アプリケーション。たとえば、.NET または .NET Compact Framework で記述されたアプリケーション。
さんざん引っ張りましたが、今回は .NETで作ったアプリには AppVerifierは不要...という話でしたorz
ネイティブのアプリ作ったときに あらためて試してみたいと思います。
0 件のコメント:
コメントを投稿