Windows Phone 8実機への配置エラー

Posted by 技術ブログ by Strawhat.net on Thursday, January 3, 2013

Windows Phone 8の端末実機に配置するとき、以下のエラーが出て、失敗する現象に出くわしました。

無効なアセンブリが原因で、配置の最適化に失敗しました。ソース プロジェクトをリビルドして、やり直してください。

この現象ですが、Reactive Extension v2.0のWP8向けアセンブリが 厳密な型付けをされていて、それを含むプロジェクトのXAPファイルを WP8実機に配置すると発生する、ようです。

Reactive Extensions Team Blogに、以下のような2012/11/14付けの記事があります。

Update on Windows Phone 8 support for Rx v2.0

Last week, an update for Rx v2.0 was released, adding support for Windows Phone 8.  Unfortunately, an issue was discovered with the enhanced strong name signing used for the portable core assemblies of Rx, preventing the binaries from loading correctly on physical devices. The issue is under investigation with the Rx, CLR, and Windows Phone teams.

現時点でも調査中で、同記事では回避策として 「Windows Phone 7向けのv2.0のアセンブリを使用する」方法を載せています。 私の環境でも、この方法で問題を解決できました。

なお、この問題が発生しているとき、WP8シミュレータでは配置できるのですが、 実行中にアプリが異常終了してデバッガで補足できない現象が起きていました。 上記の対策で、この問題も解消しています。

(参考)ちなみに、配置エラーのメッセージは、英語だと以下になります。

Deployment optimization failed due to an invalid assembly. Rebuild your source projects and try again.