.Net Core和NuGet

Bre*_*ias 61 .net nuget .net-core

从这个站点安装了.net核心.使用它导致了许多相关的包管理问题:

  1. dotnet restore命令继续"安装".net核心NuGet包.那些包装"安装"在哪里?未创建新文件夹.
  2. dotnet restore为"Hello World"的最小要求的约一百名的NuGet包,其中99%的人想必无关的"Hello World"的应用实例.当然,.net本机构建将删除所有不需要的东西 - 但我预计它restore也会抓住很少(三个或四个包,而不是一百个).为什么会这样?
  3. 我创建了第二个"hello world"项目并再次运行dotnet restore.这次没有安装任何软件包.似乎所有安装的软件包都是第一次安装到一些全球位置进行共享.我以为.Net Core没有那样工作.我认为.Net Core项目将所有依赖项保存在本地.我定位的唯一框架是dnxcore50.为什么会这样?
  4. 我想"卸载"所有这些全局包,然后再试一次(仅用于学习目的).怎么可能完成?请记住,正如问题#1所述,我不知道所有这些文件的安装位置.
  5. 几乎所有通过restore命令安装的软件包都列为beta版.奇.我以为.Net Core在RC1,而不是beta.对此感到困惑.为什么会这样?

我也很好奇哪些文档可以/将要解释所有这些对我来说.我尝试使用谷歌搜索这些问题,并没有发现任何东西(也许只是可怕的google-fu?).

Viv*_*k N 51

更新:

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

在NuGet 3+中,您可以使用NuGet CLI的以下命令获取global-packages文件夹位置

nuget locals global-packages -list
Run Code Online (Sandbox Code Playgroud)

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


  1. 默认的ASP.Net模板有很多包.自从您第一次尝试以来,它尝试获得所有这100个包

  2. 您已经在nuget全局位置拥有这些软件包,它会跳过恢复.

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

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

  • `dotnet restore`是为"hello world"控制台应用程序而不是ASP.Net应用程序执行的.所以#2必须有不同的答案.对于#3,是的,我同意他们去了一个全球位置......但这不是NuGet的默认行为,也不是.Net Core的广告行为.所以#3仍然需要更多调查.但是,我会将你的回答标记为答案 - 我将再次提出一个单独的堆栈溢出问题. (2认同)

Dib*_*ran 13

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

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

我认为这个位置包含常规的.NET Framework包.

更新:感谢brappleye3,这里有关于dotnet还原的文档的链接.

  • 我将包添加到.NET Core项目中,它们最终位于此位置而不是接受的答案中的位置. (3认同)