.Net 核心和 NuGet
.Net Core and NuGet
我installed .net core from this site。使用它导致了一些相关的包管理问题:
dotnet restore
命令执行到 "install" .net 核心 NuGet 包。那些包裹 "installed" 在哪里?未创建新文件夹。
- "hello world" 最小示例的
dotnet restore
需要大约一百个 NuGet 包,其中 99% 可能与 "hello world" 应用无关。 G运行ted,.net 本机构建将删除所有不需要的内容 - 但我预计 restore
也只会获取很少的内容(三四个包,而不是一百个)。为什么会出现这种行为?
- 我创建了第二个 "hello world" 项目,然后又 运行
dotnet restore
。这次根本没有安装任何软件包。似乎第一次安装的所有软件包都进入了某个全球位置以进行共享。我认为 .Net Core 不是那样工作的。我认为 .Net Core 项目将所有依赖项都保留在本地。我唯一针对的框架是 dnxcore50
。为什么会有这种行为?
- 我想 "uninstall" 所有这些全局包,然后再试一次(仅用于学习目的)。如何实现?请记住,如问题 #1 所述,我不知道所有这些文件的安装位置。
- 几乎所有通过
restore
命令安装的软件包都被列为测试版。奇怪的。我以为 .Net Core 在 RC1 中,而不是测试版。对此感到困惑。为什么会出现这种行为?
我也很好奇是什么文档 could/would 向我解释了这一切。我尝试用谷歌搜索这些问题中的每一个,但一无所获(也许只是可怕 google-fu?)。
更新:
- nuget 包安装在全球位置。默认情况下,它曾经是 ..\Users\[YourUserFolder]\.dnx\packages 但它似乎已更改为 ..\Users\[YourUserFolder]\.nuget\packages
在 NuGet 3+ 中,您可以使用 NuGet CLI 的以下命令获取全局包文件夹位置
nuget locals global-packages -list
查看以下链接以了解有关 NuGet 的更多详细信息
https://docs.nuget.org/ndocs/consume-packages/configuring-nuget-behavior
https://docs.nuget.org/ndocs/tools/nuget.exe-cli-reference#locals
默认的ASP.Net模板有这么多包。由于您是第一次尝试,它尝试获取所有这 100 个包
您的 nuget 全局位置中已经有这些包,它跳过了恢复。
删除packages文件夹下的所有内容(位置在1中)
一些测试包在那里。您可以转到 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\
我installed .net core from this site。使用它导致了一些相关的包管理问题:
dotnet restore
命令执行到 "install" .net 核心 NuGet 包。那些包裹 "installed" 在哪里?未创建新文件夹。- "hello world" 最小示例的
dotnet restore
需要大约一百个 NuGet 包,其中 99% 可能与 "hello world" 应用无关。 G运行ted,.net 本机构建将删除所有不需要的内容 - 但我预计restore
也只会获取很少的内容(三四个包,而不是一百个)。为什么会出现这种行为? - 我创建了第二个 "hello world" 项目,然后又 运行
dotnet restore
。这次根本没有安装任何软件包。似乎第一次安装的所有软件包都进入了某个全球位置以进行共享。我认为 .Net Core 不是那样工作的。我认为 .Net Core 项目将所有依赖项都保留在本地。我唯一针对的框架是dnxcore50
。为什么会有这种行为? - 我想 "uninstall" 所有这些全局包,然后再试一次(仅用于学习目的)。如何实现?请记住,如问题 #1 所述,我不知道所有这些文件的安装位置。
- 几乎所有通过
restore
命令安装的软件包都被列为测试版。奇怪的。我以为 .Net Core 在 RC1 中,而不是测试版。对此感到困惑。为什么会出现这种行为?
我也很好奇是什么文档 could/would 向我解释了这一切。我尝试用谷歌搜索这些问题中的每一个,但一无所获(也许只是可怕 google-fu?)。
更新:
- nuget 包安装在全球位置。默认情况下,它曾经是 ..\Users\[YourUserFolder]\.dnx\packages 但它似乎已更改为 ..\Users\[YourUserFolder]\.nuget\packages
在 NuGet 3+ 中,您可以使用 NuGet CLI 的以下命令获取全局包文件夹位置
nuget locals global-packages -list
查看以下链接以了解有关 NuGet 的更多详细信息
https://docs.nuget.org/ndocs/consume-packages/configuring-nuget-behavior
https://docs.nuget.org/ndocs/tools/nuget.exe-cli-reference#locals
默认的ASP.Net模板有这么多包。由于您是第一次尝试,它尝试获取所有这 100 个包
您的 nuget 全局位置中已经有这些包,它跳过了恢复。
删除packages文件夹下的所有内容(位置在1中)
一些测试包在那里。您可以转到 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\