OpenVPNってもしかしてCA以外も CryptoAPI 対応してる?
InternalsVisibleTo attribute and strong name public keys この記事に出会うまでなかなかヒントに出会えなかった。
InternalsVisibleToにおけるコンストラクタでのアセンブリ指定において、 公開キートークンから、公開キー 自体の指定へと変更されている。公開キーを指定しないことも出来ない。
以下のコマンドを実行すると、公開キーと公開キートークンを取得できる。
sn -Tp Test用アセンブリ.dll
ここで利用するのは公開キー(320文字ある長い方)。上記ブログの指定方法を借りると
#if FRIENDFORTEST
[assembly: InternalsVisibleTo("Test用アセンブリ, PublicKey=0024000004800000940000000302000000240000523341310004000001000100E93F2D6C63FCEBB91140CBB4E49...")] (長いので省略)
#endif
というような指定になる。ちなみにここの「Test用アセンブリ, ...」の指定では、.dll という拡張子はつけてはいけない。 あくまでアセンブリ名の指定。
"#if DEBUG" ではなく "#if FRIENDFORTEST" にしているのは、ほぼリリースビルドだがNUnitによるテストをしたいアセンブリ、というのを最終段階で作りたいため。 もちろんデバッグビルド時に FRIENDFORTEST の定義も追加している。
InternalsVisibleTo attribute and strong name public keys の一番下にある InternalsVisibleToAttribute Generator は、貼付けられた画面の通り、 InternalsVisibleTo の行を生成するためのちょっとしたアプリケーションである。
それにしても MSDNのInternalsVisibleToAttribute.AssemblyName プロパティのサンプルも、 明らかに公開キートークンのような長さを示しているので完全にだまされた。これだけで半日ぐらい悩むはめに。
テストプロジェクトで利用する鍵は、共通のものを使うとか、いっそ公開してしまっても特に問題はないはず。 「本当のリリースビルドでInternalsVisibleToをちゃんと外しておけば」という条件は必要だが。 そういう意味では NUnit のインストール時にNUnitと一緒に置いておくとよいかも。 でもVisualStudioでアセンブリの署名用の鍵を指定するのって、新規にするのも既存の鍵使うのもそんなに手間の差ないんだよな。
NUnit 2.2.8用コードスニペット(C#) を導入したらとても便利になった。 フレンドアセンブリとの合わせ技で VS2005 TeamSystem よりもいけてる感じに。
VS2005 TeamSystem の単体テストの場合、「テストする度に環境を構築して環境ごと全部保存しておく」というようなことをするので、 ちょっとしたテストをするには重すぎるところがあった。 TFSでテスト結果を取り込んで統計情報を取るようなことをすると必要になるんだろうけど。そこまでやらないんだったらヤリ過ぎだよなあ。
で、NUnit 2.2.8 の書き方は、TeamSystemのテストの書き方と基本的に同じにしてあった。 ただし Assert.AreEqual<int> のようなGenericメソッドは提供されていないようだ。近いうちに出来るようになるとは思うけど。 そんなわけで移行はほとんど手間なしで済みそう。
mdf 1ファイルあたり1GBまでではないか、という噂。
ASP.NETに毒されまくっているので ValidatorSummary とかの検証オブジェクトがないとやりずらーい。って前もやったな。
ErrorProvider か。
3007WFPが約12万円。そろそろうっかり買っちゃえる値段だ。なんか年末調整で結構返って来たからうっかり買っちゃおうかな。
2chによると15日ぐらいからこの値段になった模様。 Rev A02の在庫一掃処分。
グラボは X1650Pro 512MB あたりかしら。あるいはちょっと奮発して 7900GS。
いろいろいれたら年末調整の還付金は軽くふっとぶ…けどかなり欲しい。