私たちは、独特でつらい状況に直面しています。従来、GAC とポリシー ファイルを使用して、.NET アプリケーションの DLL バージョンを制御してきました。ただし、非常に特殊な状況であり、一部のアプリケーションがポリシー ファイルを尊重しないため、これに関して大きな問題が発生しています。具体的には、ポリシー ファイルを持つ .NET 1.1 dll を参照する .NET 2.0 アプリケーションです。
Windows アプリケーションと多数の Web アプリケーションで動的に実行される (リフレクションを介して読み込まれる) 項目が混在しています。GAC のバージョン管理について心配するよりも、「集中型 DLL ストア」に移行することを検討しています。しかし、アプリケーションに「ここで DLL を探す」ように指示する方法が見つからないようです。
いくつかのアセンブリ情報ノード ( http://msdn.microsoft.com/en-us/library/twy1dw1e.aspx ) を見ると、途中までは取得できますが、ルックアップする必要があるすべての DLL をそれぞれ定義する必要があります。これは、共有 DLL のバージョンを更新する際に web.config を定期的に更新する必要がある約 200 の異なるアプリケーションがあるため、不可能です。
DLL 参照を移動する方法を知っている人はいますか? アプリケーションで新しいバージョンの共有 DLL を使用する必要がある場合があるため、CopyLocal はオプションではありません。少なくとも現時点では、GAC も実際にはオプションではありません。