Prism.UnityのUWP版を使ってリリースビルドすると、アプリ起動時に落ちるので何だろうと数日探ったところ以下の条件がそろったときに例外が発生することがわかりました。
- 設定 → 時刻と言語 → 地域と言語の言語にEnglishが追加されていない(デフォルトそうだよね??)
- PCLのライブラリのAssemblyInfoにNeutralResourcesLanguage("en")が設定されている(英語圏の環境で作るとこうなるっぽい)
- PCLのライブラリでリソースを作ってるが特に多言語化はされていない(普通にリソース作っただけ)
- UWPの言語設定がja-JPになっている
- UWPからPCLで定義されたリソースに間接的にでもアクセスする
因みに発生する例外はNullReferenceExceptionってなるときもあればArgumentNullExceptionになることもあるかな。どういう条件のときにNullReferenceExceptionで、どういう条件のときにArgumentNullExceptionなのかは追い切れてません。
再現プロジェクト
GitHubに再現するプロジェクトおいてみました。
上記リポジトリをCloneしてHelloWorldAppをスタートアッププロジェクトにしてReleaseのx86にして実行すると落ちるはずです。(OSの言語の設定にEnglishを入れると落ちなくなる)
これ仕様なのかしら…。