リソース名だけを見ようとしていますが、何も表示されません。
Visual Studio 2010 で C++/CLI (マネージ) DLL を作成してコンパイルし、テストとしていくつかのリソース ファイルを追加しました (1 つのアイコンと 1 つのビットマップ)。PE Explorer で確認したところ、リソースは確実に存在します。
私の簡単なコード:
Assembly asm = Assembly.LoadFrom("C:\\test.dll");
String[] res = asm.GetManifestResourceNames();
デバッグ時に「asm」変数のすべての情報を確認できるため、DLL がロードされていることがわかります。また、DLL から (MEF を使用して) データをインポートすることもできます。
したがって、DLL にはリソースがあり、コードは確実にアセンブリをロードしています。しかし、'res' 変数が常に空の文字列リストを返すのはなぜですか?
編集: テスト用のリソースを含む C# クラス ライブラリ (.dll) を作成しました。今それは動作します!! しかし、私の C++/CLI DLL にはまだリソースが表示されません。どういうわけかそれらは DLL にありますが、コードはそれに到達できません (C++ DLL のみ)。マネージ/アンマネージ コードと関係があるかもしれませんが、CLR でコンパイルしているので、そうではないようです。助言がありますか?
解決策 わかり ました!誰かが必要な場合に備えて。
これらのトピックによると:
C++/CLI プロジェクトへのリソースの埋め込み
と
http://bytes.com/topic/net/answers/571530-loading-markup-xamlreader-load-resource-file#post2240705
問題はまさに C++/CLI の問題です。Project Properties の Linker タブの Input 項目に追加する必要があります。今ではうまくいくようです。ありがとう