为什么.my NET Core解决方案包含文件夹中没有包文件夹?

Pro*_*ofK 53 nuget nuget-package-restore .net-core

包是否现在缓存在某个更共享的位置或什么?

我的解决方案文件夹,没有任何packages文件夹:

解包文件夹没有包文件夹

MSC*_*MSC 54

每个项目:引用 - > Nuget指示引用和恢复的包.但是,正如Eastrall所提到的,packages文件夹现在是全局的,位于您的用户文件夹中:C:\Users\[YourUsername]\.nuget\packages

  • 当然,这是一种有趣的方法.没有GAC那么糟糕,我们的想法是您的PC /用户可以缓存许多项目和解决方案中引用的软件包集合.这是一种节省存储的增强功能.如果您在许多项目中工作,它实际上很有用.没有"运行时解析",他们只是将包文件夹整合到用户级别的一个包文件夹中. (7认同)
  • 微软再次做出如此糟糕的架构决策 - 我们回到GAC :(而不是容器方法...... (6认同)
  • 1.减少nuget服务器的负载.2.减少当地的空间消耗.3.构建时间优化 - 不将任何nugets复制到bin文件夹. (6认同)
  • @GeorgeAnisimov Dev 和 prod 不会有什么不同,只要您在构建服务器上使用 '--self-contained true' 和 dotnet 发布。我这样做是作为创建部署包的一部分。 (2认同)
  • 如果需要从程序包文件夹中复制某些内容(可能需要构建活动),则最好使内容相对于sln。在这种情况下,@ CJBS [方法](/sf/answers/3701658761/)会更好。 (2认同)

CJB*_*JBS 23

强制使用./packages文件夹进行解决

要强制将packages文件夹的下载作为.NET Core项目的解决方案文件夹的子级,请按照下列步骤操作:

  1. NuGet.Config在与文件相同的目录中创建一个.sln文件。

  2. 将以下内容复制到 NuGet.Config文件中:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="globalPackagesFolder" value=".\packages" />
  </config>
</configuration>
Run Code Online (Sandbox Code Playgroud)
  1. 配置NuGet以通过以下方式下载丢失的软件包:

    3.1。在Visual Studio中:Tools -> Options

    3.2。筛选依据nuget(对话框左上方)。选择General

    3.3。确保Allow NuGet to download missing packages已检查

在此处输入图片说明

  1. 关闭并重新打开解决方案。NuGet将下载所需的软件包。

注意:还可以通过从NuGet程序包管理器控制台(Tools -> NuGet Package Manager -> Package Manager Console)执行以下命令来实现NuGet.Config配置:

PM> nuget config -set globalPackagesFolder=.\packages -configfile "$(pwd)\NuGet.Config"
Run Code Online (Sandbox Code Playgroud)


Eas*_*all 11

packages的.net-core解决方案中仍然有文件夹,但全局包位于:C:\Users\[YourUsername]\.nuget\packages


Eri*_*ric 10

您可以查看我问的问题,看看答案是否有用.

如何在我的.Net Core项目解决方案中包含NuGet包?

您可以返回该包文件夹,但您可能对结果不满意,因为.Net Core项目依赖于如此多的NuGet包.我的徘徊在1 GB左右.

https://docs.microsoft.com/en-us/nuget/schema/nuget-config-file#config-section