次の構造を持つソリューションがあるとします。
- Project.DAL - データ アクセス レイヤーは、下位レベルのライブラリに依存します。たとえば、Oracle.DataAccess w/copy local = true
- Project.BLL - ビジネス ロジック層、Project.DAL をプロジェクトとして参照
- Project.UI - UI レイヤー、実行可能ファイルにコンパイル、Project.BLL を参照、既定のプロジェクト
Project.UI がコンパイルされると、VS は Project.DAL.dll を出力ディレクトリにコピーするほどスマートですが、クライアントに配布するために Oracle.DataAccess を出力ディレクトリにもコピーする必要があることを理解するほどスマートではありません。 .
なぜそうなのか、誰か説明できますか?それは、GAC で Oracle.DataAccess を認識し、クライアントが GAC にもそれを持っていると想定しているためですか?
それほど大したことではありませんが、新しいアセンブリ参照を追加するたびに、それをローカルにコピーするように設定し、それをビルド スクリプトにもコピーするための項目を追加する必要があるのはちょっと面倒です。