-2

次のシナリオがあります。プロジェクト A は A1 および A2 DLL を参照しています。プロジェクト A は、すべてのアプリケーションで使用できる共通のデータ関連機能を含むライブラリ プロジェクトです。ソリューション X のプロジェクト B とソリューション Y のプロジェクト C は、データ関連の機能を使用するためにプロジェクト A に依存しています。今、次のオプションがあります。

オプション1:

ソリューション X と Y の両方にプロジェクト A を追加し、それぞれのソリューションのプロジェクト B と C にプロジェクト A を「プロジェクト参照」として追加させます。これにより、A.dll、A1.dll、A2.dll が bin フォルダーにコピーされます。 B と C を自動的に投影します。

長所:

  1. Proj A で何かを変更すると、Proj B と C に自動的に反映されます。
  2. 前述したように、Proj B と Proj C の bin フォルダーに A.dll だけでなく、A1.dll と A2.dll もコピーされます。

短所:

  1. Proj A の場所を変更した場合は、両方のソリューションでこれを修正し、Proj A をプロジェクト参照として使用しているすべてのソリューションをビルドする必要があります。

オプション 2:

すべての共通ライブラリ プロジェクトを含む個別の中央ソリューションを作成します。プロジェクト CommonLib を作成し、すべてのライブラリ プロジェクトをプロジェクト参照として追加して、CommonLib がプロジェクト A をプロジェクト参照として参照するようにします。これにより、 CommonLib プロジェクトの bin フォルダーに A.dll 、 A1.dll 、および A2.dll がコピーされます。ここで、ソリューション X および Y のプロジェクト B および C は、プロジェクト CommonLib の bin フォルダーから A.dll を参照する必要があります。

長所:

  1. プロジェクト A の場所を変更しても、Sol X と Y の修正には影響しません。CommnLib ソリューションである 1 つの場所だけを修正する必要があるためです。

短所:

  1. proj B の commonlib bin フォルダーから A.dll を参照すると、proj B の bin フォルダーに A1.dll と A2.dll が自動的にコピーされません。に依存しています。

CommonLib プロジェクトの bin フォルダーから A.dll を参照すると、A1.dll と A2.dll が含まれないのはなぜですか? これに対する任意の解決策。

[注: GAC は使いたくない]

4

1 に答える 1

0

選択肢 1 が最適 選択肢 2 が最適ではない

于 2012-08-04T12:17:52.380 に答える