.Net核心和NuGet
我从这个网站安装.net核心 。 玩它导致了一些相关的包pipe理问题:
-
dotnet restore
命令继续“安装”.net核心NuGet包。 这些软件包在哪里“安装”? 没有创build一个新的文件夹。 -
dotnet restore
为“hello world”最小的例子需要大约一百个NuGet包,其中99%可能与“hello world”应用程序无关。 诚然,一个.net本地生成将删除所有不需要的 – 但我希望restore
也可以抓住很less(三个或四个包,而不是一百)。 为什么这种行为? - 我创build了第二个“hello world”项目,并再次运行
dotnet restore
。 这一次没有安装任何软件包。 看来所有安装的软件包都是第一次进入全球某个位置共享。 我以为.net核心没有这样的工作。 我以为.NET核心项目在本地保留了所有的依赖关系。 我唯一的目标是dnxcore50
。 为什么这种行为? - 我想“卸载”所有这些全局包,然后重试(仅用于学习目的)。 这怎么可能完成? 请记住,如问题#1所述,我不知道所有这些文件的安装位置。
- 几乎所有通过
restore
命令安装的软件包都被列为beta版本。 奇。 我以为.NET核心是在RC1,而不是testing版。 被这个迷惑了。 为什么这种行为?
我也很好奇什么文件可以/将会向我解释这一切。 我试着对这些问题进行search,并没有发现任何东西(可能只是可怕的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全球位置有这些软件包,它跳过了恢复。
-
删除包文件夹下的所有内容(1中指示的位置)
-
一些testing包在那里。 你可以去project.json文件(在web根目录下),并使用dependencies部分。
我刚刚发现.NET核心项目中使用的NuGet包还有另一个位置。 它位于:
C:\Users\[User]\.nuget\packages
我认为这个位置包含常规的.NET Framework包。
更新:感谢brappleye3,这里是关于dotnet恢复的文档的链接 。