.Net 核心和 NuGet

.Net Core and NuGet

installed .net core from this site。使用它导致了一些相关的包管理问题:

  1. dotnet restore 命令执行到 "install" .net 核心 NuGet 包。那些包裹 "installed" 在哪里?未创建新文件夹。
  2. "hello world" 最小示例的 dotnet restore 需要大约一百个 NuGet 包,其中 99% 可能与 "hello world" 应用无关。 G运行ted,.net 本机构建将删除所有不需要的内容 - 但我预计 restore 也只会获取很少的内容(三四个包,而不是一百个)。为什么会出现这种行为?
  3. 我创建了第二个 "hello world" 项目,然后又 运行 dotnet restore。这次根本没有安装任何软件包。似乎第一次安装的所有软件包都进入了某个全球位置以进行共享。我认为 .Net Core 不是那样工作的。我认为 .Net Core 项目将所有依赖项都保留在本地。我唯一针对的框架是 dnxcore50。为什么会有这种行为?
  4. 我想 "uninstall" 所有这些全局包,然后再试一次(仅用于学习目的)。如何实现?请记住,如问题 #1 所述,我不知道所有这些文件的安装位置。
  5. 几乎所有通过 restore 命令安装的软件包都被列为测试版。奇怪的。我以为 .Net Core 在 RC1 中,而不是测试版。对此感到困惑。为什么会出现这种行为?

我也很好奇是什么文档 could/would 向我解释了这一切。我尝试用谷歌搜索这些问题中的每一个,但一无所获(也许只是可怕 google-fu?)。

更新:

  1. nuget 包安装在全球位置。默认情况下,它曾经是 ..\Users\[YourUserFolder]\.dnx\packages 但它似乎已更改为 ..\Users\[YourUserFolder]\.nuget\packages

在 NuGet 3+ 中,您可以使用 NuGet CLI 的以下命令获取全局包文件夹位置

nuget locals global-packages -list

查看以下链接以了解有关 NuGet 的更多详细信息


  1. 默认的ASP.Net模板有这么多包。由于您是第一次尝试,它尝试获取所有这 100 个包

  2. 您的 nuget 全局位置中已经有这些包,它跳过了恢复。

  3. 删除packages文件夹下的所有内容(位置在1中)

  4. 一些测试包在那里。您可以转到 project.json 文件(在网络根目录下可用)并使用依赖项部分。

我刚刚发现 .NET 核心项目中使用的 NuGet 包还有另一个位置。它位于:

C:\Users\[User]\.nuget\packages

我认为此位置包含常规 .NET Framework 包。

更新:感谢 brappleye3,这里是关于 dotnet restore 的文档link

我正在使用 .Net Core 2.x,我认为 NuGet 4.x。在此处找到包裹位置:

C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\