約 10 個以上のアセンブリを含む製品があります。以前は、アセンブリに明確な名前を付けずに出荷していました。しかし、厳密な名前付けについて読んだ後、アセンブリに厳密な名前を付けるのは賢明な考えだと思います。知りたかったのは、プログラムで使用されるすべてのアセンブリに厳密な名前を付けるベスト プラクティスですか?
何かご意見は?
約 10 個以上のアセンブリを含む製品があります。以前は、アセンブリに明確な名前を付けずに出荷していました。しかし、厳密な名前付けについて読んだ後、アセンブリに厳密な名前を付けるのは賢明な考えだと思います。知りたかったのは、プログラムで使用されるすべてのアセンブリに厳密な名前を付けるベスト プラクティスですか?
何かご意見は?
はい、これはベストプラクティスであり、特にこのコードを顧客に出荷しているという事実を考慮して、実際に行う必要があります(内部またはWebベースのアプリケーションでは厳密な名前付けはそれほど重要ではないと思います)。
この理論的根拠の説明については、 Strong-NamedAssemblyを参照してください。
厳密な名前は、アセンブリのID(単純なテキスト名、バージョン番号、およびカルチャ情報(提供されている場合))に加えて、公開鍵とデジタル署名で構成されます。これは、対応する秘密鍵を使用して、アセンブリファイル(アセンブリマニフェストを含むファイル。アセンブリマニフェストには、アセンブリを構成するすべてのファイルの名前とハッシュが含まれます)から生成されます。Microsoft®VisualStudio®.NETおよびWindowsソフトウェア開発キット(SDK)で提供されるその他の開発ツールは、アセンブリに厳密な名前を割り当てることができます。同じ厳密な名前のアセンブリは同一であることが期待されます。
厳密な名前でアセンブリに署名することにより、名前がグローバルに一意であることを確認できます。特に、厳密な名前は次の要件を満たしています。
厳密な名前は、一意のキーペアに依存することで名前の一意性を保証します。ある秘密鍵で生成されたアセンブリは、別の秘密鍵で生成されたアセンブリとは異なる名前を持っているため、同じアセンブリ名を生成することはできません。
厳密な名前は、アセンブリのバージョン系統を保護します。厳密な名前を付けると、アセンブリの後続バージョンをだれも作成できないようになります。ユーザーは、ロードしているアセンブリのバージョンが、アプリケーションのビルドに使用されたバージョンを作成したのと同じ発行元からのものであることを確認できます。
厳密な名前は、強力な整合性チェックを提供します。.NET Frameworkのセキュリティチェックに合格すると、アセンブリがビルドされてから内容が変更されていないことが保証されます。ただし、厳密な名前自体は、たとえばデジタル署名やサポート証明書によって提供されるようなレベルの信頼を意味するものではないことに注意してください。
厳密な名前のアセンブリを参照すると、バージョン管理や名前付けの保護など、特定の利点が得られることが期待されます。厳密な名前のアセンブリが単純な名前のアセンブリを参照している場合、これらの利点はありません。厳密な名前のアセンブリを使用することで得られる利点が失われ、DLLの競合に戻ります。したがって、厳密な名前のアセンブリは、他の厳密な名前のアセンブリのみを参照できます。