关于堆栈有一个类似的帖子,但它可能对我的问题没有帮助,因为我使用的是Visual Studio 2015。

如何在VS2015中显示“启用NuGet包恢复”选项?

我选择文件>新项目,并创建一个空ASP。NET Web应用程序。我在找这个菜单项。

我应该提到,我已经在我的项目文件夹中寻找任何预先存在的nuGet文件,没有。


当前回答

如果其他人在Visual Studio 2017中发现这个问题,请确保项目是通过.sln文件而不是文件夹打开的,因为Visual Studio如果按文件夹打开则不会拾取设置。如果您正在为git使用Visual Studio在线服务,则默认会发生这种情况。

其他回答

Ivan Branets的解决方案基本上为我解决了这个问题,但更多的细节可以分享。

在我的情况下,我在VS 2015使用自动包恢复和TFS。这些都是默认的东西。

问题是,当另一个开发人员试图从TFS获得解决方案时,一些包没有完全恢复。(为什么,我还不太确定。)但是packages文件夹包含了一个用于引用和NuGet包的文件夹,但是它没有被展开(比如一个包含.dll的lib文件夹丢失了)。这一半,但不是很正确的概念阻止了包装的恢复。

您可以认出这一点,因为该引用将有一个黄色感叹号,表示未被解析。

因此,删除包中的文件夹的解决方案消除了包恢复阻塞问题。然后,您可以在顶部解决方案级别上单击右键,以获得恢复包的选项,现在它应该可以工作了。

如果所有这些都失败了(或者在此之前),您可能需要检查并查看NuGet是否是包源代码。我安装了VS2017,默认情况下它不在那里。我觉得有点奇怪。

工具- NuGet包管理器-包管理器设置 点击对话框左侧导航的“包源”。 使用加号(+)添加Nuget URL: https://api.nuget.org/v3/index.json

您可以选择从“packages”文件夹中删除所有文件夹,并选择“Manage NuGet packages for Solution…”。在这种情况下,“恢复”按钮出现在NuGet Packages Windows上。

我也面临着同样的问题。我试图将在Visual Studio 2015上创建的MVC项目添加到我在Visual Studio 2019上做的解决方案中。

在Visual Studio 2019上已经有了现有的项目,所以添加这个我在VS 2015上创建的现有项目会触发同样的错误。我已经尝试了所有的答案,但都不能解决问题。

我所做的就是把。nuget文件夹放在解决方案文件夹上。原来文件夹的层次结构是这样的:

Solution Folder (VS 2019)
  -> MVC 1 Project
  -> MVC 2 Project
  -> MVC 3 Project (Project that I am adding)
         -> .nuget folder (It contains a .nuget folder)

所以当我移动解决方案文件夹本身的.nuget文件夹时,问题就解决了:

    Solution Folder (VS 2019)
  -> MVC 1 Project
  -> MVC 2 Project
  -> MVC 3 Project (Project that I am adding)
  -> .nuget folder (It contains a .nuget folder)

如果其他人在Visual Studio 2017中发现这个问题,请确保项目是通过.sln文件而不是文件夹打开的,因为Visual Studio如果按文件夹打开则不会拾取设置。如果您正在为git使用Visual Studio在线服务,则默认会发生这种情况。