7

サード パーティのアセンブリを参照する際のベスト プラクティスとは何かを考えていました。少し前に、「依存関係と参照: 正確には何を参照すればよいですか?」という質問をしました。"そして、考えるべきことを受け取りましたが、私は完全に確信していません。プロジェクトを構築するために必要なサードパーティのアセンブリがあり、これまで読んだことによると、プロジェクトを構築するために必要なアセンブリのみを参照する必要があります。これにより、次の問題が残ります。サード パーティ アセンブリのランタイム依存関係. それらも参照すると、参照のリストが巨大になり (いくつかの依存関係があるため)、多くのアセンブリが含まれ、何をするのか見当がつかず、実際には自分のプロジェクトとは関係ありません. また、私はこれらのいずれかでパブリック メソッドを使用することを避け、メインのサードパーティ アセンブリのみを使用したい.どうすればこれをまともな方法で行うことができますか?私はかなり混乱しているので、どんな助けも感謝します.

ここで私が扱っていることのアイデアを与えるために、サードパーティのライブラリは、オフィスの相互運用アセンブリと共に休止状態と log4net を使用しています。

ありがとう。

4

3 に答える 3

3

GACに登録されていないライブラリを処理する必要がある場合は、次の方法を使用します。

  • すべてのサードパーティライブラリとその依存関係を含むフォルダ「Libs」を作成します
  • 必要なものを参照してください
  • 「Libs」フォルダー内のすべてのファイルを「bin/debug」(またはrelease)フォルダーにコピーするビルド後のアクションを作成します

依存関係がわからない場合は、DependencyWalkerを使用できます。

于 2008-11-20T11:12:06.593 に答える
2

私が多くの (C#) プロジェクトで使用してきた代替手段は次のとおりです。

  • ソリューション ディレクトリ (プロジェクト ディレクトリと同じレベル) に "Bin" フォルダーを作成します。
  • bin/debug または bin/release の代わりに、すべてのプロジェクトの出力を ../Bin にする
  • プロジェクトに応じて、ライブラリの依存関係、特定のデータファイルなど、ビルドの結果ではないファイルを「ビン」に入れます
  • 「Bin」の内容もソース管理に行きます(もちろん、ビルド出力なしで)
  • プロジェクトによって直接参照されるライブラリはすべて、「参照」または「Libs」フォルダーに移動します (Bin にも入れようとすることもありますが、この場合、追加時に出力ディレクトリへの参照のコピーを無効にすることを忘れないでください)。プロジェクトへの参照。大規模なプロジェクトでは面倒です)

それが良い解決策であるかどうかはよくわかりませんが、今まで私のために働いてきました。

于 2008-11-20T11:26:32.337 に答える
1

NDependを使用して、階層ライブラリから使用するものを正確に把握して制御することもできます。これについて記事を書きましたライブラリの使用を制御する

于 2008-11-21T09:23:24.643 に答える