ActiveX コントロールインポータを使って署名する

先日、Form に貼り付けてる ActiveX コントロールを署名しようとしたら思いっきり嵌りました。で、備忘録です。


1.ActiveX コントロールを Form(もしくは CustomControl)に貼り付ける。
2.厳密名ツール(Sn.exe)を使い、キーペアファイルを作成する。

sn -k keyPair.snk

3.ActiveX コントロールの本体を探し、ActiveX コントロールインポータ(AxImp.exe)を使ってアセンブリセットを作成する。その際、厳密名ツールで作ったキーペアファイルを /keyfile: オプションで指定しておく。以下の例では出力先も指定してます。

AxImp C:\hogehoge.ocx /keyfile:C:hogehoge.snk /out:C:\hogehoge.dll

4.プロジェクトの参照を置き換える。
5.(VS2011以降)アセンブリをプロパティで「相互運用型の埋め込み」が True になっていたら、False にする
6.リビルド。


この手順で ActiveX コントロールに署名できました。5 がポイントだったのね!これに気付かなくて相当嵌りました。