Xamarin.FormsでUWPをReleaseビルドすると埋め込みリソースの画像が表示されない
以下の環境でUWPをReleaseビルドするとPCL側に配置した埋め込みリソースの画像が表示されませんでした。
・Xamarin.Forms 2.3.1.114
・VisualStudio 2015 Enterprise Update 3
・UWP対象ターゲット 10586
Xamarin.Formsで画像を表示する際に全プラットフォームで共通の画像を使いまわしたい場合、埋め込みリソースを使用する場合があると思います。
画像の設定方法については公式を参照ください。
developer.xamarin.com
んで、埋め込みリソースを使っていて、かつUWPのReleaseビルド(ビルドプロパティの「.Net ネイティブ ツール チェーンでコンパイルする」にチェックついている状態)で作成したアプリを実行するとデバッグコンソールに以下のエラーが出力されて画像が表示されませんでした。
例外がスローされました: 'System.IO.FileNotFoundException' (System.Private.Reflection.Core.dll の中)
んで、対症療法です。(解決方法と書いていいか自信ない…)
というか、こうやったらできた。
画像のパスを設定する際にAssemblyを引数に加えてやると表示されるようになりました。
var assembly = typeof(App).GetTypeInfo().Assembly; img.Source = ImageSource.FromResource("XamarinApp1.Images.xamarin.png", assembly);
.Net Nativeさん怖い…