web-dev-qa-db-ja.com

プロジェクトリファレンスVS NuGet

同じソリューションでproject Aから別のproject Bを参照するにはどうすればよいですか?
次の場合、何が得られ、何が失われますか。

  • project Aへの参照をプロジェクト参照として追加します。
  • project Aproject BのNuGetパッケージをインストールします。

気になるのは、ビルドの依存関係、バージョン管理などです。
または、これはソリューションの目的を完全に破壊しますか?

13
grmbl

最初のアプローチでは、ProjectA nugetパッケージの新しいバージョンを生成する必要がないため、その中で行うすべての変更(ProjectA.nupkgなど)が簡単になります。

ただし、2番目のアプローチでは、同じnugetパッケージを他のプロジェクト/ソリューションと簡単に共有できるため、移植性が向上します。

個人的には、他のソリューションと共有することを目的とするプロジェクトに対してのみ、nugetパッケージを作成しています。 (例:ライブラリとフレームワーク)。

これがあなたの決定に役立つことを願っています!

7
Maicon Heck

プロジェクトリファレンスVS NuGet

プロジェクト参照またはNuGetは、開発プロセスにおいて非常に一般的な問題です。実際の状況に基づいて、どちらを使用するかを選択する必要があります。

たとえば、参照されているプロジェクトAが開発プロセス中に頻繁に変更される場合は、プロジェクト参照を使用することをお勧めします。 nugetを使用する場合は、参照プロジェクトを再構築し、nugetパッケージを再作成し、そのnugetパッケージをプロジェクトBに再インストールする必要があるため、サーバーに公開する必要があります。これにより、多くの不要な作業が発生し、参照されたプロジェクトAを変更した後、nugetパッケージを更新し忘れることがよくあります。プロジェクト参照を使用する場合、これらの問題は発生しません。変更された参照プロジェクトAは、プロジェクトBをビルドする前に自動的に更新されます。

一方、参照先のプロジェクトAをソリューション外で共有する場合、またはそのプロジェクトを他の人と共有する場合は、nugetの方が適しています。より移植性があります。

したがって、同じソリューションでプロジェクトBから別のプロジェクトAを参照する場合は、プロジェクト参照が推奨されます。ソリューションから参照プロジェクトを共有する場合、またはプロジェクトを他のユーザーと共有する場合は、ナゲットがより適切です。

さらに、Visual Studioの拡張機能 NuGet Reference Switcher があります。これにより、NuGetアセンブリ参照がプロジェクト参照に、またはその逆に自動的に切り替えられます。

お役に立てれば。

13
Leo Liu-MSFT