4

したがって、問題は非常に単純です。私のプロジェクトはアセンブリ X を参照していますが、Z は参照していません。しかし、アセンブリ X はアセンブリ Z を参照しています。アセンブリ Z はかなり頻繁に更新されるため、プロジェクトをビルドするときは常に、Z の最新バージョンも取得したいと考えています。 .

これまでのところ、私は3つのオプションを考え出しました:

  1. アセンブリ Z を参照します。これには、常に新しいバージョンを取得できるという利点があります。しかし、それはそこに厳密に必要とされていない何かで参照を汚染します.
  2. 必要な DLL を更新元からコピーするビルド後のイベントを追加します。複数の異なる DLL が必要になるまでは、これで問題ないと思います。これにより、スクリプトが非常に長くなり、維持するのが面倒になります。
  3. アセンブリ Z をリソースとして追加し、copy to output を true に設定します。DLL をプロジェクトに追加すると、Visual Studio が実際に (当時の) 現在のバージョンをプロジェクトにコピーし、元のソースへのリンクがないことを除いて、おそらくこれを好むでしょう。したがって、アセンブリが更新されても、これは私のプロジェクトにはまったく反映されません。このアプローチをオプション 2 と組み合わせない限り、オプション 2 だけを使用することもできます。

それで、私は何かが欠けていますか、それともこれらが私の唯一の選択肢ですか?

4

1 に答える 1

5

オプション 1 を使用します。依存関係が間接的である場合があるとしても、プロジェクトが依存するすべてのものを参照することは完全に合理的だと思います。

また、私には最も単純なオプションのように思えます-そして、アプリが必要とするコード依存関係のVisual Studioのビューに適合するオプションです...したがって、Visual Studioがそれらの依存関係で行うことは、あなたが考える必要はなく、自然に流れるはずですこれはあらゆる段階で。

編集:代替オプションとして、NuGetの使用を検討しましたか? そうすれば、プロジェクトの NuGet 依存関係内で X への依存関係のみを表現できますが、それが Z に依存していることを「認識」します。公開リポジトリではなく独自の NuGet ソースを設定できるため、内部プロジェクト。

于 2012-08-02T06:34:13.857 に答える