2017-02-06 8 views
0

リユアブルマルチティアアプリケーションの作成を試みています。マルチティアアプリケーション内のアセンブリ依存関係

私は、ビジネスレイヤプロジェクトによって参照されるデータアクセスレイヤプロジェクトを作成しました。ビジネスレイヤープロジェクトを参照するWebサイトを作成し、これを他の多くのWebサイトで使用する予定です。

私は準拠したビジネスレイヤプロジェクトのDLLをWebサイトのbinフォルダにドロップし、ファイル参照を行いました。ビジネスレイヤーを呼び出すと、データアクセスアセンブリを読み込めません。これを解決するために、データアクセスDLLをWebサイトのbinフォルダにドロップし、すべてが機能します。

将来、私はビジネスレイヤーがさまざまなプロジェクトへの参照を多くすることを期待しているので、ビジネスレイヤーが参照するすべてのプロジェクトDLLを各Webサイトのbinフォルダーに追加する予定です。これは私がこれをやっている正しい方法ですか、これに単純化されたアプローチがありますか?

+0

ビジネスレイヤのbinフォルダにDLLをドロップするのではなく、データアクセスレイヤプロジェクトDLLへの参照を設定しないのはなぜですか?コンパイラは、あなたのためにDLLファイルの周りのシャッフルを処理する必要があります。 – itsme86

+0

理想的には、何かを「落とす」必要はありません。原子セットアップにすべてを組み込む必要があります –

答えて

0

これを処理するには2通りの方法があります。

1)プロジェクト参照を追加します。

Webプロジェクトで参照を追加 - >プロジェクトオプション - >ソリューション - >ビジネスレイヤーをクリックをクリックします。

データレイヤプロジェクト参照を追加するには、ビジネスレイヤで同じ操作を行う必要があります。

2)アプローチは、ナゲットパッケージを使用しています。共有するcsproj用のnugetパッケージを作成することができます。これは、複数のプロジェクト間でDLLを共有し、異なるプロジェクト間でバージョン管理が必要な場合に非常に便利です。 csprojからnugetパッケージを作成するコマンド。

nuget pack BusinessLayer.csproj 
+0

ありがとうございます。私はNuGetパッケージエクスプローラを使用して、共有リポジトリに格納するパッケージを作成する方法を検討しました。 – Kogroth

0

フォルダを作成します(例:BusinessLayer)。このフォルダ内にサブフォルダを作成します。これらのフォルダ内にクラスライブラリを作成し、フォルダ名に反映される名前空間を作成します。データアクセスとレイヤーの表示についても同様の操作を行います。ビジネスレイヤの参照データアクセス名前空間とビューレイヤのビジネスレイヤ名前空間。可能であれば、データアクセスレイヤがインターフェイスを介してビジネスレイヤに通話することを確認します。 APIウェブサイト/アプリなどは、これらの3つの層の上に座ることができます。

関連する問題