現在、XamarinプロジェクトをPCLから.NET標準2.0に移行しています。これはコアライブラリプロジェクト形式です。ほとんどのものがうまくいきます。我々は、ローカライズのためにコアプロジェクトでresx-filesを使用します。これはiOSとAndroidで正常に動作します。 UWPでXamarin.Forms .NetStandard 2.0とnullリソースを持つUWP
私は同じコードがうまく働いたPCLバージョン
var buttonText = AppResources.Cancel; // => null
文字列ressourcesにアクセスしようとする場合、私は、値としてnull
を取得します。いくつかの初期化が必要ですか?
デバッグ時に、リソースマネージャにnull
ResourceSetがありますが、_WinRTResourceManager
が埋め込まれていることがわかります。
'.NetStandard 2.0'で' Xamarin.Forms UWP'を作成しようとしましたが、問題を再現できず、 'AppResources'が私の側で動作します。この問題を再現できる簡単なサンプルを共有できましたか? –
ありがとうございます。私は小さなテストアプリケーションを作成し、UWPが動作します。 'ResourceManager'は、フルアプリのように見えます(リソースセットの場合はnull、塗りつぶされたWinRTの場合はnull)。テストと完全なアプリケーションの違いが分かったら、私は解決策を書いてみましょう。 – WebDucer
私はその理由を見つけました。ドイツ語(de-DE)をデフォルト言語として使用しています。 'Package.appxmanifest'のデフォルトのlangugageをデフォルト値' en-US'から 'de-DE'に変更すると、.Net標準ライブラリのリソースを読み込めませんでした。解決策は、.Net標準ライブラリ(UWPプロジェクトと同じ)の 'NeutralResourcesLanguage'をexplixitで定義することです。これは、手動で作成したAssemblyInfo.csで行うことができます(AssemblyInfoの自動生成をオフにすることを忘れないでください)。または、この情報を既存のclass {'assembly:NeutralResourcesLanguage(" de-DE ")]' – WebDucer