「Assembly.LoadFile」でロードされた .NET dll のブレークポイントを配置して変数を調べることはできますが、何らかの理由でジェネリック リストのビジュアライザーに要素が表示されません (以下を参照)。変数の上にカーソルを置いたときと同じことがウォッチ ウィンドウに表示されます。
私はこれらのさまざまなソリューションを調べましたが、どれも機能していないようです (また、ほとんどの場合、dll をデバッグすることさえできないようです):
Visual Studio .NET で動的に読み込まれたアセンブリをデバッグする
pdbをdllと並べて配置しました(ロード元の正確な場所から)。また、その dll の pdb ファイルを、読み込みを行っていた実行可能ファイルのすぐ隣に配置しましたが、サイコロはまだありません。デバッグでコンパイルしており、すべての構成を x86 に設定しています。注意すべきことの 1 つは、実際に dll を参照として追加すると、デバッグ ビジュアライザーが完全に表示されます (ただし、これはプラグイン アーキテクチャであり、exe は dll に依存する必要はありません)。
何か案は?
[編集]
プラグインを参照として追加することはできないことがわかりました.exeでそのタイプのリストを実際にインスタンス化してから、正しく表示する必要があります。何が起こっているのかわかりません...
[編集]
この動作を示すサンプル プロジェクトを作成しました。プラグインをロードする方法と同様のコードを使用しました (興味深いことに、Assembly.LoadFile を直接呼び出し、リフレクションを介してメソッドを呼び出すだけでは、この動作は発生しないようです。サンプル プロジェクトをここに圧縮しました: (他の誰かが同じ結果?)
http://dl.dropbox.com/u/64502227/PluginLoader.zip
[編集]
また面白い展開!exe の横に Plugins フォルダがあり、そこにすべての dll があります。現在、プラグイン dll/pdb を exe ディレクトリと Plugins サブディレクトリの両方にコピーしています。Assembly.LoadFile を使用し、Plugins ディレクトリで dll を使用すると、独自の型のリスト ビジュアライザーが失われます。exeのすぐ隣にdllをロードすると動作しますが、なぜですか?
私が見るもの: