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

时间:2016-06-28 11:09:22

标签: c# visual-studio visual-studio-2015 nuget nuget-package-restore

当我尝试编译程序时,出现以下错误:

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.    

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

All packages are already installed and there is nothing to restore.

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

我还尝试从tfs文件夹中移动包文件夹来覆盖我的包文件夹,但这并没有解决任何问题。我还尝试重新加载它们,因为这个软件包丢失了,而且没有。解决这个问题。

有人知道如何恢复nuget包吗?

8 个答案:

答案 0 :(得分:14)

在Visual Studio中使用Package Manager Console来运行此命令。

1.这将来自解决方案restore all packages

nuget restore YourSolution.sln

2.如果您希望reinstall the packages版本与之前安装的版本相同

Update-Package -reinstall

答案 1 :(得分:7)

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

最初创建项目文件时,似乎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>

据我了解,如今这些设置已被弃用,不知道为什么VS首先将其插入。

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

答案 2 :(得分:4)

老实说,任何为VS开发NuGet命令的人都需要回到绘图板。他们完全错过了有时这些DLL和/或文件被破坏或删除的事实。 a&#34; NuGet Get-Packages -Force&#34;选项真的会保存他们的培根。我看到的唯一GAP是VS和Package控制台不允许你从NuGet调用强制下载。即使通过VS清除缓存也没用。

答案 3 :(得分:1)

通过删除此目录中的内容来清除Nuget缓存可能是个好主意:C:\Users\{your_username}\AppData\Local\NuGet

答案 4 :(得分:0)

嗯,这可能是一个糟糕的方式,但我发现如果我删除该行

就可以了

http://go.microsoft.com/fwlink/?LinkID=317567。“HelpKeyword =”BCLBUILD2001“/&gt;

来自project.csproj的

,不确定这是否会在以后引起问题,但它现在有效。

答案 5 :(得分:0)

您只需要: 打开包管理器控制台并运行以下命令:Update-Package -reinstall

P.S:VS2017 及更高版本 NuGet 包管理器包含在 Visual Studio 中,无需安装任何其他东西。

答案 6 :(得分:0)

NuGet 包的功能问题也可能是由于NuGet 包需要项目不满足的某些依赖项造成的。

NuGet 包可以在 依赖项 部分中声明依赖项,例如.NETFramework,Version=v.4.6.2 而项目针对的是旧版本(目标框架:.NET Framework 4.6.1。)。

NuGet 系统没有通知用户这一事实,而是该项目根本没有编译。

答案 7 :(得分:0)

就我而言,我有不同的 Nuget 配置,不知何故项目文件中的 HintPath 不适合。

enter image description here

也许您应该检查 HintPath 是否指向正确的 NuGetPackages 文件夹。

您还应该检查文件顶部的以下条目: enter image description here

在文件底部: enter image description here

所有这些路径都应该指向文件结构中正确的 NuGetPackage 文件夹。