【问题标题】:NuGet has problems with missing packages, how to restore?NuGet 有丢失包的问题,​​如何恢复?
【发布时间】:2016-10-30 16:25:56
【问题描述】:

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

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 包吗?

【问题讨论】:

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


    【解决方案1】:

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

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

    nuget restore YourSolution.sln
    

    2.如果你想reinstall the packages到之前安装的版本

    Update-Package -reinstall
    

    【讨论】:

    • nuget restore TestEnvi.sln give me the error The term 'restore' is not recognized as the name of a cmdlet, function, script
    • 有一个解决方法。在您的解决方案文件夹中应该有一个“包”目录。打开这个目录并删除所有目录,然后再次运行reinstall。
    • 命令 nuget restore mysolution.sln 在包管理器控制台窗口中对我不起作用,我收到此错误:“PM> nuget restore reco.sln nuget : The term 'nuget' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
    • 谢谢,第一次运行这个:Install-Package NuGet.CommandLine 然后上面对我有用
    • 'Update-Package -reinstall' 帮助了我。非常感谢。
    【解决方案2】:

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

    【讨论】:

    • 太正确了。一种解决方法是从您的项目中卸载软件包,然后重新安装它们。糟透了。
    • 现在是 2020 年,这仍然是破碎的
    • 2022 年还在继续。
    【解决方案3】:

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

    最初创建项目文件时,似乎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 恢复了包并再次正确构建了解决方案。

    【讨论】:

    • 谢谢,这为我解决了。不知道为什么将这个引用放在我的项目文件中。
    【解决方案4】:

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

    【讨论】:

    • 我试过了,但并没有解决问题(即使在重新启动 VS 之后)
    【解决方案5】:

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

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

    【讨论】:

      【解决方案6】:

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

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

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

      【讨论】:

        【解决方案7】:

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

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

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

        在文件的底部:

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

        【讨论】:

          【解决方案8】:

          在我的情况下,问题是通过删除“obj”文件夹然后重建解决方案来解决的。

          “obj”文件夹中有几个与 NuGet 相关的文件,这些文件仍然引用包的 0.0.2 版本,而解决方案中的所有项目都已使用该包的 1.0.0 版本。构建解决方案失败,并显示错误消息“找不到版本 0.0.2 的包”。包含构建文件夹的解决方案是最近从另一台机器复制的。

          【讨论】:

            【解决方案9】:

            嗯,这可能是一个不好的方法,但我发现如果我只是删除该行就可以了

            http://go.microsoft.com/fwlink/?LinkID=317567." HelpKeyword="BCLBUILD2001" />

            来自 project.csproj ,不确定这是否会在以后引起问题,但现在可以使用。

            【讨论】:

              猜你喜欢
              • 2020-11-06
              • 2013-07-21
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多