NuGet有缺少包的问题,​​如何恢复?

Thi*_*ser 18 c# visual-studio nuget nuget-package-restore visual-studio-2015

当我尝试编译我的程序时,我收到以下错误:

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=317567.    
Run Code Online (Sandbox Code Playgroud)

现在,当我右键单击解决方案并按下

All packages are already installed and there is nothing to restore.
Run Code Online (Sandbox Code Playgroud)

我尝试手动重新安装每个没有解决问题的包,我尝试重新安装NuGet,但这也没有帮助,我甚至尝试重新安装visual studio.

我也试过从tfs文件夹移动包文件夹来覆盖我的包文件夹但是没有解决任何问题.我也尝试用这个包丢失来重新加载它们,这也没有解决问题.

有谁知道如何恢复nuget包?

Rah*_*ate 19

Package Manager Console在Visual Studio中使用以运行此命令.

1.这将从解决方案中恢复所有包

nuget restore YourSolution.sln
Run Code Online (Sandbox Code Playgroud)

2.如果要将软件包重新安装到与先前安装的版本相同的版本

Update-Package -reinstall
Run Code Online (Sandbox Code Playgroud)

  • Update-Package -reinstall对我有用,谢谢 (3认同)
  • 有一个解决方法。在您的解决方案文件夹中,应该有一个“ packages”目录。打开此目录并删除所有目录,然后再次运行重新安装。 (2认同)
  • 命令`nuget restore mysolution.sln`在包管理器控制台窗口中对我不起作用,我收到此错误:“`PM> nuget restore reco.sln nuget:术语“nuget”未被识别为cmdlet、函数、脚本文件或可运行的程序。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。`" (2认同)
  • 谢谢你,第一次运行这个:Install-Package NuGet.CommandLine然后上面为我做了把戏 (2认同)
  • “更新包-重新安装”帮助了我。多谢。 (2认同)

And*_*ers 10

当我尝试在解决方案根目录中不存在包文件夹的计算机上构建我的项目时遇到了这个问题。

最初创建项目文件时,VS2019似乎在项目文件中添加了以下内容:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use 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('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
</Target>
Run Code Online (Sandbox Code Playgroud)

据我了解,这些设置现在已被弃用,不知道为什么 VS 首先插入它。

无论如何,在删除这些行之后,VS 恢复了软件包并再次正确构建了解决方案。


Ras*_*era 9

老实说,无论是谁为VS开发了NuGet命令,都需要回到绘图板上。他们完全错过了有时这些DLL和/或文件损坏或删除的事实。“ NuGet Get-Packages -Force”选项确实可以节省培根。我看到的唯一GAP是VS和Package控制台不允许您从NuGet调用强制下载。即使通过VS清除缓存也没有用。

  • 已经2020年了,这还是坏的 (9认同)
  • 2022 年并且还在继续。 (7认同)
  • 2023 年并且还在继续。 (3认同)