2009年12月24日木曜日

[.NET]アセンブリの差し替え

過去のシステムで何かを暗号化しているActiveXのライブラリがありました。
で、そのライブラリを.NETでInteropして使用する別のアセンブリがあり、そのアセンブリを使うために、ActiveXをregsvr32して疎通確認してみたところ、想定外のエラーが出ており、困った状態になってしまいました。

幸い、暗号化のアルゴリズムはシンプルだったので、とりあえず開発を進めるために、ActiveXのライブラリに変わる処理を.NETで組んでダミーのアセンブリを生成し、Interopアセンブリを削除し、同フォルダにダミーのを置いてみましたが、うまくいきませんでした。

そこで、以下の2つを実施すると、なんと!!動いてしまいました。


  1. AssemblyInfo.csの[assembly: Guid("xxxxxx")]をInteropのものとあわせる(Reflector for .NET で確認)
  2. アセンブリファイル名をInteropのものとあわせる


もちろん、内部のクラスのインタフェースもReflectorで確認したとおりのクラスを実装する必要があります。


何かしらの処理を一時的に差し替えたりしたい場合、便利ですねぇ。

0 件のコメント: