.NET Framework (2.0) が依存アセンブリを解決する方法について質問があります。
現在、大規模な ASP.NET アプリケーションとさまざまなサテライト実行可能ファイルを少し書き直しています。解決するために新しい API を開発した基礎クラスには、いくつかの厄介な問題もあります。これまでのところ、これは通常の更新ですが、広範囲に及んでいます。
私たちの階層は次のとおりです。
- ASP.NET (aspx)
- ビジネス ロジック (DLL)
- 基礎クラス (DLL)
そのため、ASP.NET は適合しません。一部の DLL (特に基礎クラス) には、古い名前空間/関数を含むリダイレクト レイヤーがあり、それらを新しい API に転送します。DLL を置き換えたとき、ASP.NET はそれらを正常に検出しました (おそらく、再コンパイルがトリガーされたためです)。
ただし、両方の DLL セットに同じ名前空間とクラスが含まれていても、プリコンパイル済みアプリケーションはそうではありません。ファイルの名前が変更された場合でも、assemblyname 属性が異なる (必要に応じて変更する必要がある) ことについて不平を言います。同じアセンブリの異なるバージョンにリダイレクトできることは知っていますが、完全に異なるアセンブリにリダイレクトする方法はありますか?
別の方法としては、アプリケーションを再コンパイルするか (アプリケーション自体は変更されていないため、あまりやりたくない)、新しい基本 DLL を参照するスタブを使用して古い基本 DLL を再コンパイルします (新しいダミー DLL はファイル システムが乱雑です)。