2013年3月11日月曜日

Google Chrome開発版で拡張機能のポップアップが開かなくなる時の対処法

Google Chrome開発版(27.0.1430.3 dev-m)において拡張機能のポップアップウィンドウが表示されなくなるバグが発生しています。

この問題は既に報告されているので近日中には直るかと思いますが、暫定的な対処法として以下の方法をとれば回避可能です。


  1. アドレスバーに[chrome://flags/]と入力
  2. [すべてのページで GPU 合成を行う]を[既定]から[無効]にする
  3. Chromeの再起動
以上です。
このバグが修正されたらGPUを戻した方がいいのかもしれません。

2013年1月19日土曜日

プラグイン実装時にデシリアライズがうまくいかない!!

アセンブリ'Sample,Version=1.0.0.0, Culture=neutral, PublicKeyToken = null"が見つかりません


上記はC#でプラグインを実装しようとしていた際に出くわした例外です。
プラグイン自体はアプリケーションフォルダ内の[plugin]フォルダに格納されています。

そして、そのプラグインはBinaryFormatterを使用してファイルの読み書きを行う機能を持っていますが、Deserializeメソッドを呼ぶときに上記例外でこけてしまいます。

どうやら[Sample.dll]がうまくロードされないらしいんです。
ちゃんとpluginフォルダにあってSerializeメソッドはこけないのに・・・

で、調べてみるとデシリアライズが行われる前に

というイベントを登録しなければならないそうです。
で、CurrentDomain_AssemblyResolveメソッドは以下のようにしました。 メソッドの定義、イベントの登録を行えば問題なくできました。

プラグイン機能を持つアプリケーションを作成する
このページのPluginInfoクラスのコンストラクタにイベント登録、適当な個所にCurrentDomain_AssemblyResolveメソッドを書き足しました。

これで今の所問題ないようです。
何か突っ込みありましたらお待ちしてます。