次の方法で共有


厳密な名前付きアセンブリ

アセンブリに厳密な名前を付けると、アセンブリの一意の ID が作成され、アセンブリの競合を防ぐことができます。

厳密な名前付きアセンブリを作成する理由

厳密な名前付きアセンブリは、アセンブリと共に配布される公開キーとアセンブリ自体に対応する秘密キーを使用して生成されます。 アセンブリにはアセンブリ マニフェストが含まれています。このマニフェストには、アセンブリを構成するすべてのファイルの名前とハッシュが含まれます。 厳密な名前が同じアセンブリは同じにする必要があります。

Visual Studio またはコマンド ライン ツールを使用して、アセンブリに厳密な名前を付けることができます。 詳細については、「 方法: 厳密な名前またはSn.exe を使用してアセンブリに署名 する (厳密な名前ツール)」を参照してください。

厳密な名前のアセンブリが作成されると、アセンブリの単純なテキスト名、バージョン番号、省略可能なカルチャ情報、デジタル署名、署名に使用される秘密キーに対応する公開キーが含まれます。

Warnung

セキュリティのために厳密な名前に依存しないでください。 一意の ID のみが提供されます。

アセンブリに厳密な名前を付けます。

.NET Framework の場合、厳密な名前のアセンブリは次のシナリオで役立ちます。

  • アセンブリを厳密な名前付きアセンブリから参照できるようにするか、他の厳密な名前のアセンブリからアセンブリに friend アクセスできるようにする必要があります。

  • アプリは、同じアセンブリの異なるバージョンにアクセスする必要があります。 つまり、競合することなく、同じアプリ ドメイン内で複数のバージョンのアセンブリを並べて読み込む必要があります。 たとえば、同じ単純な名前を持つアセンブリに API の異なる拡張機能が存在する場合、厳密な名前付けでは、アセンブリのバージョンごとに一意の ID が提供されます。

  • アセンブリを使用してアプリのパフォーマンスに悪影響を及ぼしたくないので、アセンブリをドメインに依存しないようにします。 ドメインに依存しないアセンブリをグローバル アセンブリ キャッシュにインストールする必要があるため、厳密な名前付けが必要です。

  • 発行元ポリシーを適用してアプリのサービスを一元化する必要があります。つまり、アセンブリをグローバル アセンブリ キャッシュにインストールする必要があります。

.NET Core および .NET 5 以降では、厳密な名前付きアセンブリには重要な利点はありません。 ランタイムは厳密な名前のシグネチャを検証せず、アセンブリ バインドに厳密な名前を使用しません。

オープン ソース開発者で、.NET Framework との互換性を高めるために厳密な名前付きアセンブリの ID の利点が必要な場合は、アセンブリに関連付けられている秘密キーをソース管理システムにチェックインすることを検討してください。

こちらも参照ください