私のアプリケーションは3つのアセンブリで構成されています。2つのDLLを参照する1つのEXEです。DLLは私のアプリケーション専用であり、この実行可能ファイルによってのみ使用されます。
これらのアセンブリには強い名前を付ける必要がありますか?
FxCopは、現在作成しているすべてのアセンブリについて、次のことを行う必要があることを示唆しています。
CA2210:厳密な名前キーを使用して<アセンブリ>に署名します。
ただし、このアドバイスは次のように述べています。
一般に、アプリケーションのEXEアセンブリに厳密な名前を付けることは避けてください。
と
アプリケーション専用の厳密な名前のコンポーネントは避けたい場合があります。
これらのアセンブリに強い名前を付ける必要がありますか?この場合、そうする(またはそうしない)ことの利点は何ですか?
編集:
同様の構造を持ついくつかのアプリケーションを見ると、この問題についてのコンセンサスはないようです。Paint.NETとCrack.NETのバイナリには名前が付けられていませんが、 .NETReflectorとSnoopのバイナリには名前が付けられています。
興味深いことに、Expressionスイートでは、Microsoftは後者のアプローチを採用しています。たとえば、Expression Blendでは、Blend.exeと付随するDLL(Microsoft.Expression.Blend.dllなど)の両方に厳密な名前を付けることを選択しました。
「これらのアセンブリに強い名前を付ける必要がありますか?」という最初の質問に対する簡単な答えを受け取る可能性は低いようです。しかし、私の2番目の質問はまだ立っています:
この状況で強力な名前の署名バイナリにメリットはありますか?または、そうしないことの利点はありますか?
編集2:
どちらにせよ、圧倒的な理由がなければ、私は自分のアセンブリに強い名前を付ける傾向があります。したがって、私は誰かがこれを(最初のリンクから)拡張できるかどうかに興味があります:
「強い名前を付けると、依存関係の管理がより困難になり、プライベートコンポーネントに不要なオーバーヘッドが追加される可能性があります。」