アプリケーションで2つのダミープロジェクトを作成し、BAL
およびDAL
という名前を付けました。それらをビルドすると、正常にビルドされます。 BAL
への参照をDAL
プロジェクトに追加すると、うまく追加されました。しかし、DAL
参照をBAL
プロジェクトに追加すると、次のエラーが表示されます。
DALへの参照を追加できませんでした。このプロジェクトを参照として追加すると、循環依存関係が発生します。
誰でもこのエラーを解決するのに役立ちますか?
これがあなたがする必要があることです:
ソリューションエクスプローラーでDALプロジェクトを右クリックし、コンテキストメニューでプロジェクトの依存関係を選択します。
DALプロジェクトのプロジェクトの依存関係を示すウィンドウが表示されます。 BALがチェックされていないことを確認してください。
これで参照を追加できるはずです...
これが、できるだけシンプルで簡単なものにしようとするのに役立つことを願っています。
説明:
DALはBALにアクセスできません。コード参照の依存関係は次のようになります。
MVCプロジェクト-> BAL-> DAL
MVCプロジェクトはBALを参照する必要があり、BALはDALを参照する必要があります。このようにプロジェクトを設定します。動作させると、このセットアップが優れている理由をよりよく理解できます。
指定:
次を考慮してください: UIは、DALに基づいてdataを構成できるBALからinformationを取得する必要があります。
「レイヤー」の概念では、上位のレイヤーが下位のレイヤーに依存し、逆ではないことに暗黙のうちに関係しています。 2つの「レイヤー」が相互に依存している場合、一方は他方よりも高くなく、意味のある意味ではレイヤーではないため、同じレイヤーにあると見なすことができます。 Studioがプロジェクトの依存関係に適用するのと同じ基本的な原則が、アーキテクチャコンポーネントまたはモジュールにも当てはまります。この原則を使用する場合は、プロジェクトを設計モジュールとしてではなく、設計モジュールとして考えてください。すべてを単一のプロジェクトに投入するだけで、コードベースが適切に構成され、サイズが大きくなるにつれて問題がはるかに少なくなります。
1つの方法でしか参照できません。そうしないと、前述のようにエラーが発生します。これを行うだけです。DALからBLへの参照を削除し、BLからDALへの新しい参照を作成してください。
それは循環依存を引き起こします。代わりにおそらくやりたいことは、BALを参照し、BALがDALを参照するメインアプリケーションプロジェクトを持つことです。データアクセスでは、ビジネスロジックを参照する必要はありません。
これはちょうど私に起こった。循環依存関係があります。つまり、2つのプロジェクトが両方とも相互に参照しています。それらの1つを他から独立させる必要があります。少し時間がかかり、それはとても早く起こります。 1秒後に私は喜んでコーディングを行い、次の時間には45個のエラーが発生しました。少し時間がかかりましたが、アーキテクチャ/プログラム構造も改善され、依存関係を適切に整理できます。
この問題は、リポジトリインターフェイスレイヤー、リポジトリサービスレイヤー、SQLサービスレイヤー、レストサービスレイヤー、メインのWPF UIレイヤーなどの複数のレイヤーでWPFアプリケーションを構築しているときに発生しました。
================================================== ======================
結論:各プロジェクトの参照依存関係を確認し、不要な参照がないことを確認してください。サブレイヤーがリファレンス内のスタートアッププロジェクトを参照していないことを確認してください。
お役に立てば幸いです。
私の場合、新しいProjectGuid
を生成せずにプロジェクトファイルをコピーしました。 Visual StudioはProjectGuid
を使用してプロジェクトを一意に識別するため、プロジェクトが自分自身を参照しようとしていると想定していました。