关于堆栈有一个类似的帖子,但它可能对我的问题没有帮助,因为我使用的是Visual Studio 2015。
如何在VS2015中显示“启用NuGet包恢复”选项?
我选择文件>新项目,并创建一个空ASP。NET Web应用程序。我在找这个菜单项。
我应该提到,我已经在我的项目文件夹中寻找任何预先存在的nuGet文件,没有。
关于堆栈有一个类似的帖子,但它可能对我的问题没有帮助,因为我使用的是Visual Studio 2015。
如何在VS2015中显示“启用NuGet包恢复”选项?
我选择文件>新项目,并创建一个空ASP。NET Web应用程序。我在找这个菜单项。
我应该提到,我已经在我的项目文件夹中寻找任何预先存在的nuGet文件,没有。
当前回答
去visual studio的参考,看看哪些包丢失了。 现在在可视化中右键单击解决方案,然后在文件资源管理器中单击打开的文件夹。 现在打开包文件夹,删除丢失的包文件夹。 打开visual studio并构建解决方案。所有丢失的包都将被恢复。 如果我帮忙了,请把这个标记为答案。
其他回答
包管理器控制台(Visual Studio, Tools > NuGet包管理器>包管理器控制台):运行Update-Package -重装-ProjectName命令,其中是在解决方案资源管理器中显示的受影响项目的名称。使用Update-Package -重装自行恢复解决方案中的所有包。看到更新包。如果需要,还可以重新安装单个包。
从https://learn.microsoft.com/en-us/nuget/quickstart/restore
您可以选择从“packages”文件夹中删除所有文件夹,并选择“Manage NuGet packages for Solution…”。在这种情况下,“恢复”按钮出现在NuGet Packages Windows上。
针对。net Core 3.1的VS 2019版本16.4.4解决方案
在尝试了这里提出的几乎所有解决方案之后,我关闭了VS。 当我重新打开它时,几秒钟后一切都恢复正常了……
如果你有任何问题或缺少任何包,你可以简单地右键单击你的项目,选择“管理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>