この記事では、この API のリファレンス ドキュメントに補足的な解説を提供します。
デスクトップ アプリでは、 SatelliteContractVersionAttribute 属性によって、メイン アセンブリとそのすべてのサテライトとの間にコントラクトが確立されます。 この属性をメイン アセンブリに適用し、メイン アセンブリのこのバージョンで動作するサテライト アセンブリのバージョン番号を渡します。 リソース マネージャー (ResourceManager オブジェクト) がリソースを検索すると、この属性で指定されたサテライト バージョンがメイン アセンブリに明示的に読み込まれます。
メイン アセンブリを更新すると、そのアセンブリのバージョン番号がインクリメントされます。 ただし、既存のサテライト アセンブリがアプリと互換性がある場合は、サテライト アセンブリの新しいコピーを発送したくない場合があります。 この場合は、メイン アセンブリのバージョン番号をインクリメントしますが、サテライト コントラクトのバージョン番号は同じままにします。 リソース マネージャーは、既存のサテライト アセンブリを使用します。
サテライト アセンブリを変更するが、メイン アセンブリを変更しない場合は、サテライトのバージョン番号をインクリメントします。 この場合は、新しいサテライト アセンブリが古いサテライト アセンブリと下位互換性があることを示すサテライト アセンブリと共にパブリッシャー ポリシー アセンブリを出荷します。 リソース マネージャーは、 SatelliteContractVersionAttribute 属性に基づいてメイン アセンブリに書き込まれた古いコントラクト番号を引き続き使用します。ただし、ローダーはポリシー アセンブリで指定されたサテライト アセンブリバージョンにバインドされます。
共有コンポーネントのベンダーは、パブリッシャー ポリシー アセンブリを使用して、リリースされたアセンブリの特定のバージョンに関する互換性ステートメントを作成します。 発行元ポリシー アセンブリは、 policy.<major>.<minor>.<ComponentAssemblyName>形式の名前を持ち、 グローバル アセンブリ キャッシュ (GAC) に登録されている厳密な名前のアセンブリです。 パブリッシャー ポリシーは、Al.exe < ツールを使用して XML 構成ファイル (>bindingRedirect 要素を参照) から生成されます。 アセンブリ リンカーは、xml 構成ファイルをマニフェスト アセンブリにリンクするために、 /link オプションと共に使用され、グローバル アセンブリ キャッシュに格納されます。 発行元ポリシー アセンブリは、ベンダーがバグ修正を含むメンテナンス リリース (Service Pack) を出荷するときに使用できます。
Windows 8.x ストア アプリ
パッケージ リソース インデックス (PRI) ファイルにはバージョン管理セマンティクスがないため、Windows 8.x ストア アプリではこの属性は無視されます。 さらに、Windows 8.x ストア パッケージ モデルでは、サテライト アセンブリや PRI ファイルを再デプロイする可能性がなく、すべてのリソースを同じパッケージに発送する必要があります。
.NET