4

次のように、外部ファイルからリソースをロードするライブラリがあります。

ResourceManager rm = ResourceManager.CreateFileBasedResourceManager(stringsFileName, ResourcesDir, null)

ここで、読み込みを外部ファイルから埋め込みリソースに変更したいと思います。「.resources」ファイルをプロジェクトに添付し、そのビルド アクションを「埋め込みリソース」に変更しました。次のようにロードします。

   System.Resources.ResourceManager myManager = new
                   System.Resources.ResourceManager(resName,
                   myAssembly); 

これはうまくコンパイルされます。ただし、実行時にアプリケーションは次のエラーを報告します。

指定されたカルチャまたはニュートラル カルチャに適したリソースが見つかりませんでした。コンパイル時に "Strings.3.resources" がアセンブリ "TestApp.Resources" に正しく埋め込まれているかリンクされていること、または必要なすべてのサテライト アセンブリが読み込み可能で完全に署名されていることを確認してください。

これは、渡した名前に関係なく発生するため、埋め込んだばかりのリソース ファイルの正しいベース名を見つける方法を質問します。

4

1 に答える 1

2

リソース名は完全修飾名だと思いますので、{assemblyNameSpace}.Strings.3.resources になります。

これは、dotPeek のような逆アセンブラー/逆コンパイラーを使用して確認できます: http://www.jetbrains.com/decompiler/

于 2011-12-22T15:36:45.657 に答える