当前位置:  开发笔记 > 编程语言 > 正文

无法恢复/删除/更新NuGet包,因为上述版本不再可用

如何解决《无法恢复/删除/更新NuGet包,因为上述版本不再可用》经验,为你挑选了2个好方法。

我试图给SignalR Sample一个测试驱动器,但它似乎引用了一个不再可用的旧版SignalR.实际的问题是NuGet无法在没有首次恢复的情况下删除不可用的包!

PM> Install-Package Microsoft.AspNet.SignalR
Install-Package : Some NuGet packages are missing from the solution. The packages need to be restored in order to build the dependency graph. Restore the packages before performing any operations.
At line:1 char:1
+ Install-Package Microsoft.AspNet.SignalR
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Install-Package], InvalidOperationException
    + FullyQualifiedErrorId : NuGetMissingPackages,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

然后会有一个Restore按钮Package Manager Console,按下它将导致以下错误:

An error occurred while trying to restore packages: Unable to find version '2.1.0-pre-131116-b279' of package 'Microsoft.AspNet.SignalR.Client'

如果找不到当前版本,如何安装较新版本的寻址包?

我正在使用:

Microsoft Visual Studio Community 2015
Version 14.0.24720.00 Update 1
Microsoft .NET Framework
Version 4.6.01038
NuGet Package Manager   3.3.0

[UPDATE]

当我尝试卸载麻烦的包时:

PM> Uninstall-Package -Id Microsfot.AspNet.SignalR -RemoveDependencies -Force
Uninstall-Package : Some NuGet packages are missing from the solution. The packages need to be restored in order to build the dependency graph. Restore the packages before performing any operations.
At line:1 char:1
+ Uninstall-Package -Id Microsfot.AspNet.SignalR -RemoveDependencies -F ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Uninstall-Package], InvalidOperationException
    + FullyQualifiedErrorId : NuGetMissingPackages,NuGet.PackageManagement.PowerShellCmdlets.UninstallPackageCommand

Joe Hawkins.. 30

您可以通过以下方式手动删除依赖项

    关闭Visual Studio(不是硬性要求,但很有帮助)

    在文本编辑器中,从packages.config中删除依赖项

    从packages /目录中删除包

    在文本编辑器中,从.csproj文件中删除对包的所有引用

    启动Visual Studio

    通过NuGet重新安装包

Upvoted,因为它的工作...但这是疯了!如果NuGet包不再可用,肯定有一个更容易处理的方法吗? (13认同)


小智.. 12

如果您知道Feed中当前存在的版本,则可以使用更简单的解决方案.该解决方案可以修复每个项目中的每个包.

打开packages.config文件(如果你有多个项目,为每个packages.config文件执行此操作)

将版本更新为正确的版本(即更改版本属性)

在程序包管理器控制台中,键入 Update-Package -Reinstall

希望能帮助到你



1> Joe Hawkins..:

您可以通过以下方式手动删除依赖项

    关闭Visual Studio(不是硬性要求,但很有帮助)

    在文本编辑器中,从packages.config中删除依赖项

    从packages /目录中删除包

    在文本编辑器中,从.csproj文件中删除对包的所有引用

    启动Visual Studio

    通过NuGet重新安装包


Upvoted,因为它的工作...但这是疯了!如果NuGet包不再可用,肯定有一个更容易处理的方法吗?

2> 小智..:

如果您知道Feed中当前存在的版本,则可以使用更简单的解决方案.该解决方案可以修复每个项目中的每个包.

打开packages.config文件(如果你有多个项目,为每个packages.config文件执行此操作)

将版本更新为正确的版本(即更改版本属性)

在程序包管理器控制台中,键入 Update-Package -Reinstall

希望能帮助到你


这对我不起作用,Update-Package只是出现“解决方案中缺少某些NuGet软件包。需要还原这些软件包才能构建依赖关系图。请在执行任何操作之前还原这些软件包。”。那是他们去那里的好机会22。
是的,这比接受的答案容易得多.一旦我发誓永远不再这样做,我就这样做了,唉.永远不要说永远,但这使得它变得更加容易,特别是对于数百个项目的解决方案.+1(但它会重新安装一切)
推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有