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