5

現在、約 30 個の文字列を保持しているポータブル クラス ライブラリにリソース ファイルがあります。それらは Windows Phone 8 アプリからアクセスでき、ファイルに既に含まれている文字列は正常に機能します。

ただし、以前と同じように新しい文字列を追加しようとすると、コンパイル エラーが発生します。

'System.Type' には 'Assembly' の定義が含まれておらず、タイプ 'System.Type' の最初の引数を受け入れる拡張メソッド 'Assembly' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

.designer.cs ファイルを見ると、これが問題であることは明らかです。新しい文字列が追加されると、次の 2 つの変更が発生します。

  • System.Reflection を使用します。消える
  • `global::System.Resources.ResourceManager("ViewModels.Resources.StringResources", typeof(StringResources).Assembly); 次の場所に表示されます。

    new global::System.Resources.ResourceManager("ViewModels.Resources.StringResources", typeof(StringResources).GetTypeInfo().Assembly);

.GetTypeInfo() と using ステートメントが消えるのが問題ですが、ファイルがビジュアル スタジオによって生成されて元に戻るため、それらを元に戻すことはできません。何か案は?

私が考えることができる唯一の重要な変更は、新しい Visual Studio 2012 update 2 ですか?

また、注目に値する: プロジェクト内の別の場所 (wp8 アプリまたは別の pcl) に別の resx を追加すると、文字列を追加するときにまったく同じ動作を示します。

4

1 に答える 1

1

しばらくの間、これは Update 2 以降の Visual Studio のバグのようです。詳細については、こちらを参照してください。

https://connect.microsoft.com/VisualStudio/feedback/details/783211/resx-file-unable-to-be-edited-correctly-causes-compilation-error-in-generated-designer-file-after-vs2012- update-2#タブ

于 2013-04-10T15:15:07.840 に答える