尝试还原软件包时发生错误,请重试。

41
我正在尝试恢复缺失的NuGet程序包,但一直出现这个错误:

An error occurred while trying to restore packages. Please try again.

有没有解决这个问题的经验?我怎样才能找出导致错误的具体原因?

15个回答

33
这是我解决问题的步骤:
首先,我清除我的软件包缓存:

在此输入图像描述

其次,我确保我有正确的路径来源并单击可用的软件包来源:

在此输入图像描述


5
添加源解决了我的问题。由于某种原因,在包源下我没有任何源。 - Shai Petel

22

6
只需通过“工具”>“扩展和更新”检查更新即可。 - Jowen

12

我曾经遇到了与 Microsoft.Bcl.Build.1.0.14 NuGet 包类似的问题。我解决这个问题的方法是:

  1. 关闭 Visual Studio
  2. 使用资源管理器删除(或者更好的方法是将其移动到其他位置)包文件夹
  3. 重新启动 Visual Studio
  4. 打开 NuGet 包管理器,然后点击还原

11

如果您不想要这个软件包,只需双击打开 packages.config 文件,找到引用您不想要的软件包的行,然后删除该行即可。

如果您确实需要这个软件包,可以使用NuGet重新下载它,这将可能解决问题。


1
谢谢您的建议,它帮助我解决了同样的错误。虽然知道Nuget包恢复失败的真正原因会很好,但在我的情况下,我尝试恢复Entity Framework 6.1.3,但失败了。然后尝试从packages config中删除EF行并重新应用Install-Package EntityFramework,这给了我EF的版本6.2.0。所以我猜测EF的版本6.1.3找不到。 - Tore Aurstad

4

3
我通过将项目文件夹移动到字符更少的另一个文件夹来解决了这个问题(本地路径太长)。希望能对某些人有所帮助。

肯定有所帮助,谢谢!在我的情况下,微软提供的Google Test包名称太长了。最终只能将项目移动到可能的最高目录。 - DragonJawad
我也是这么认为,如果路径太长的话可能会出现问题。 - Mick P

2

一定是一个初学者的答案,但我会留下它,因为我没有在其他地方找到这个答案。确保 nuget.org 没有从您的软件包源中取消选中。

工具. 选项. Nuget软件包管理器. 软件包源。确保 “nuget.org” 已经被选中。


2

我的问题

在我的情况下,我们开发了自己的NuGet包。当我打开一个包含之前版本的NuGet包的解决方案时,这些包已被删除或移除或由于某种原因无法访问。这使得无法构建包含特定NuGet包的项目。我尝试安装/重新安装/升级NuGet包,但是没有成功,出现以下错误(请参见下面的图像),我还尝试了所有可能的答案,并确保包存在,但没有成功。

尝试恢复包时发生错误:找不到版本xxx..etc。

enter image description here

我的解决方法

  • Close your solution and find the path of the solution

  • Open all your projects .csproj files with notepad editor, that contain the packages that have the issue and remove all references that is shown in the error message, looks like this and save:

    <Reference Include="Xxx, Version=30.0.0.16927, Culture=neutral, processorArchitecture=MSIL">
        <HintPath>..\packages\Xxx.35.1.122605\lib\net461\Xxx.dll</HintPath>
    </Reference>
    
  • In each folder where your .csproj is located, you find packages.config file, open it with notepad editor and remove all packages that is shown in the error message, looks like this and save:

    <package id="Xxx" version="35.1.122605" targetFramework="net461" />
    
  • Start your solution, the error now should disappear, but you can not build because we have removed references and packages. So now you should be able to install your missing packages in fresh. When done build and all should work. Enjoy :)


1
我遇到了类似的问题,后来发现是由于我的NuGet缓存引起的。
清除缓存的命令:dotnet nuget locals all --clear 在清除缓存后尝试恢复。

0
对我而言,我克隆了一个解决方案(vs2015 / NuGet3.4),它依赖于一个已被淘汰的预发行软件包。Nuget无法还原预发布版本,也不允许我卸载或升级它。我通过手动编辑packages.config以针对旧版本的非预发布软件包为目标来处理它,然后再将其升级到我想要的版本。希望对你有帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接