1

生成された .resx (XML のみ) を提供する Web サービスがあり、それをバイナリ.resourcesファイルに変換します。を使用して、現在アセンブリ ファイルを生成していますal.exe。ここに私の議論があります:

/t:lib /c:{culture} /embed:"{.resource input}" /out:"{.dll output}"

このアセンブリの読み込みAssembly.LoadFrom(file)は正常に機能しますが、アセンブリが正しく生成されていないと思います。ResourceManager呼び出すタイプ、名前空間、またはメソッドがないため、明らかにありません。

基本的に、私のプロジェクトがコンパイル時に知っているクラスや名前空間を持たないリソースを生成、ロード、および利用することがまったく可能かどうか疑問に思っています。ありがとう。

4

1 に答える 1

4

アセンブリはサテライト アセンブリです。MSDNから:

定義上、サテライト アセンブリにはリソースのみを含めることができます。実行可能コードを含めることはできません。

このアセンブリのリソースにアクセスする場合は、同様のコードが機能するはずです。

ResourceManager rm = new ResourceManager(
    "ResourceTest.Properties.Resources", 
     Assembly.LoadAssembly(file));
MessageBox.Show(rm.GetString("helloWorldString"));

また、MSDN の記事:ウォークスルー: サテライトアセンブリからのリソースの読み込みには、サテライト アセンブリからリソース文字列を読み込む別の方法が示されています。

于 2013-03-08T01:42:57.710 に答える