アセンブリ'Sample,Version=1.0.0.0, Culture=neutral, PublicKeyToken = null"が見つかりません
上記はC#でプラグインを実装しようとしていた際に出くわした例外です。
プラグイン自体はアプリケーションフォルダ内の[plugin]フォルダに格納されています。
そして、そのプラグインは
BinaryFormatterを使用してファイルの読み書きを行う機能を持っていますが、Deserializeメソッドを呼ぶときに上記例外でこけてしまいます。どうやら[Sample.dll]がうまくロードされないらしいんです。
ちゃんとpluginフォルダにあって
Serializeメソッドはこけないのに・・・で、調べてみるとデシリアライズが行われる前に
というイベントを登録しなければならないそうです。
で、
CurrentDomain_AssemblyResolveメソッドは以下のようにしました。
メソッドの定義、イベントの登録を行えば問題なくできました。プラグイン機能を持つアプリケーションを作成する
このページの
PluginInfoクラスのコンストラクタにイベント登録、適当な個所にCurrentDomain_AssemblyResolveメソッドを書き足しました。
これで今の所問題ないようです。
何か突っ込みありましたらお待ちしてます。
0 件のコメント:
コメントを投稿