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

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

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

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


当前回答

关闭VS.删除packages文件夹下的所有内容。重新打开解决方案。右键单击项目,选择“Manage nuget packages…”。您将看到一个黄色条出现在“Nuget包管理器”窗口的顶部,要求您恢复包。这对我来说很有效。

其他回答

如果你有任何问题或缺少任何包,你可以简单地右键单击你的项目,选择“管理NuGet包的解决方案…”。点击后,屏幕会打开,你会看到一个菜单栏上写着“还原”:

单击它,所需的软件包将自动安装。 我相信这就是你要找的,这解决了我的问题。

花了很长时间,但我最终找到了这个关于将msbuild集成解决方案迁移到自动包恢复的文档,我能够使用这里描述的方法解决这个问题。

去掉'。Nuget的解决方案目录从解决方案 删除对nuget的所有引用。目标从你的。csproj或。vbproj文件。虽然不受官方支持,但如果您有很多需要清理的项目,该文档会链接到一个PowerShell脚本。我手动编辑了我的,所以我不能就我的体验给出任何反馈。

当你手动编辑你的文件时,下面是你要找的:

方案文件(.sln)

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{F4AEBB8B-A367-424E-8B14-F611C9667A85}"
ProjectSection(SolutionItems) = preProject
    .nuget\NuGet.Config = .nuget\NuGet.Config
    .nuget\NuGet.exe = .nuget\NuGet.exe
    .nuget\NuGet.targets = .nuget\NuGet.targets
EndProjectSection
EndProject

项目文件(。Csproj / .vbproj)

  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
  </Target>

针对。net Core 3.1的VS 2019版本16.4.4解决方案

在尝试了这里提出的几乎所有解决方案之后,我关闭了VS。 当我重新打开它时,几秒钟后一切都恢复正常了……

帮助我通过工具>>> Nuget包管理>>>一般然后勾选选项允许Nuget下载丢失的包和自动检查丢失的包在visual studio中构建。

关闭VS.删除packages文件夹下的所有内容。重新打开解决方案。右键单击项目,选择“Manage nuget packages…”。您将看到一个黄色条出现在“Nuget包管理器”窗口的顶部,要求您恢复包。这对我来说很有效。