Visual Studio 2010 はよく知っていますが、Visual Studio 2012 を使い始めたとき、これまで使ったことのない Nuget が自動的に使用されることに気付きました。インターネットからライブラリを取得するパッケージ マネージャーであることだけは知っています。たとえば、空の ASP.NET MVC 4 プロジェクトを作成すると、プロジェクトには 11 個のエントリを含む packages.config ファイルが含まれ、ソリューション フォルダーの下に 11 個のライブラリを含む packages ディレクトリが作成されます。
ここに私が得られないものがあります。
最初の質問は修辞的な質問かもしれませんが、なぜですか? 空のプロジェクトでも 10 MB 以上のパッケージが含まれており、何も使用していなくても、非常にばかげているようです。
たとえば、packages の下に System.Web.Mvc.dll があります。しかし、それは私の GAC にもあり、.NET フレームワークの不可欠な部分だと思います。どちらもまったく同じバージョン (4.0.20710.0) ですが、ファイルが異なります。プロジェクトで .NET/GAC ではなく Nuget のこの DLL を使用するのはなぜですか? ファイルが異なるのはなぜですか?プロジェクトを IIS サーバーに配置すると、この DLL のコピーも存在するため、これらの DLL をプロジェクトの一部として使用してもまったく役に立たないように見えます。展開パッケージが肥大化することは言うまでもありません。
ちなみに膨満。Newtonsoft.Json.4.5.11 への参照があります。これは、.NET 2、3.5、4、Silverlight、および同じもののすべてのバージョン、合計 9 が含まれているため、それ自体が 8 MB 以上あります。プロジェクトを作成するときに、.NET 4.5 を使用することを指定します。そのため、すべてのものがハード ドライブにある理由がまったくわかりません。
最後に、この Nuget は私のプロジェクトまたはソリューションにどのように関連していますか? VS にパッケージ フォルダーが表示されず、.sln ファイルにそのフォルダーが表示されません。プロジェクトにはpackages.configファイルが含まれていますが、ビルドプロセスとはまったく関係がなく、自重のようです。Nugetへの参照があれば簡単に削除できたのですが、参照がないので混乱しているので、これを尋ねます。