最適化の実施
[最適化]ボタンをクリックすると、XAPファイルの最適化によりどれくらいサイズが変わったかが表示されます。
今回のサンプルでは、最適化前に126KBあったXAPファイルのサイズが最適化後は55KBにまで小さくなっています。これだけでストレージの使用率が50%削減できました。
最適化後の実行
では、最適化してもきちんと実行できるのかどうか試してみましょう。
最適化したXAPファイルをVisual Studioを使って配置しようとすると再コンパイルが走る場合があるので、Windows Phone SDKのApplication Deploymentを使って配置を行います。まずは、Windows Phone Emulatorに配置してみましょう。
配置が正常に完了すればWindows Phone Emulatorのアプリケーションリストに「CZ1203ContextMenu」アイコンが表示されるので、そのアイコンをタップして実行します。
結果は、「C1ContextMenuServiceが存在しない」という実行時エラーが発生してしまい、正常に動作しませんでした。これはサンプルを実行するのに必要な要素が除去されていることを意味します。
除去の制御
もう一度、[除去]タブの内容を確認してみましょう。C1ContextMenuをクリックすると依存関係に「C1ContextMenuService」が灰色で表示されています。
このC1ContextMenuServiceの名称の左側にあるピンをクリックしてピン設定を行い、除去されないようにします。その後、backupフォルダにある最適化前のXAPファイルをコピーして、再度最適化をしてみましょう。
C1ContextMenuServiceはあまり大きなクラスではなかったためか、ピン設定して除去を行わないようにしてから最適化した場合も最適化後のサイズは55KBと同様な効果を得ることができました。
できあがったXAPファイルを再びWindows Phone Emulatorに配置して、先ほどと同じように実行します。今度は実行時エラーもなく意図した動作を行ってくれます。
除去設定の保存
デフォルトの除去状態ではなくピン設定などを行った場合、XapOptimizerの設定を保存しておき次回以降も同じピン設定を復元して最適化すると便利です。
このような場合、[名前を付けて保存]を使ってXapOptimizer Project File(xoprojファイル)に前回の内容を保存します。