Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 无法还原/删除/更新NuGet软件包,因为所述版本不再可用_Visual Studio_Nuget - Fatal编程技术网

Visual studio 无法还原/删除/更新NuGet软件包,因为所述版本不再可用

Visual studio 无法还原/删除/更新NuGet软件包,因为所述版本不再可用,visual-studio,nuget,Visual Studio,Nuget,我试图给一个试驾,但它似乎引用了一个旧版本的信号不再可用。实际的问题是,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.

我试图给一个试驾,但它似乎引用了一个旧版本的信号不再可用。实际的问题是,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
然后,
Package Manager控制台上会有一个
还原
按钮,按下该按钮将导致以下错误:

尝试还原程序包时出错:找不到程序包“Microsoft.AspNet.signar.Client”的版本“2.1.0-pre-131116-b279”

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

我正在使用:

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
[更新]

当我尝试卸载这个麻烦的软件包时:

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

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

  • 关闭Visual Studio(这不是一个硬性要求,但很有帮助)
  • 在文本编辑器中,从所有packages.config文件中删除依赖项
  • 从包/目录中删除包
  • 在文本编辑器中,从所有.csproj文件中删除对包的所有引用
  • 启动Visual Studio
  • 通过NuGet重新安装软件包

  • 如果您知道提要中当前存在的版本,那么有一个更简单的解决方案。此解决方案可以修复每个项目中的每个包

    • 打开packages.config文件(如果您有多个项目,请对每个packages.config文件执行此操作)
    • 将版本更新为正确的版本(即更改版本属性)
    • 在软件包管理器控制台中,键入
      更新软件包-重新安装
    希望它对我有帮助,对我有用的是:

    一,。转到packages.config文件

    二,。查找“…id=“Microsoft.AspNet.signal.Client”version=“”targetFramework=“net45”…”

    三,。更改为现有版本,如“2.2.0”

    四,。保存


    五,。转到Nuget,并更新至最新版本。

    由@ferarias在评论中提到-如果您使用的是
    Nuget.exe
    ,请尝试更新或下载


    对我来说,从
    v4.4.1
    升级到
    v4.6.2
    足以修复
    一些NuGet包丢失的错误。

    在我的情况下,我重新启动了visual studio。然后我从package.config中删除了nuget包条目


    之后,我可以恢复依赖关系。

    尝试
    删除packages文件夹中的所有文件夹。
    在Nuget Package Manager中更新所有软件包。
    @Webruster我已经做过几次了,那没用。你确定所有文件夹都被删除了吗?我已经删除了
    软件包
    文件夹以防万一。它没有帮助。谢谢,但是没有
    packages.json
    ,只有
    packages.config
    ,它是XML格式的。当它工作时,它被选中。。。但这太疯狂了!如果NuGet包不再可用,那么肯定有更简单的方法来处理这个问题?您可以在VisualStudio中执行此操作。没有理由关闭它。只需删除引用,从包(config或json)文件中删除包行。然后刷新Nuget,并安装您想要的版本。@JoeHawkins我们没有任何办法强迫Nuget将软件包更新到最新版本?@hiule我不知道。已经有三年没有参与.Net游戏了。你最好的Google和我的一样好。这对我不起作用,更新包只是说“解决方案中缺少一些NuGet包。需要还原这些包才能构建依赖项gr aph。在执行任何操作之前还原这些包。”。这是一个很好的第22条军规。你试过更新你的NuGet.exe版本吗?试试nuget.exe update-SelfYea这比公认的答案简单得多。我做过一次,我发誓再也不做了,唉。永远不要说“永不”,但这会让它变得更容易,尤其是对于一个包含数百个项目的解决方案+1(但它会重新安装所有内容)我同意@ppumkin。这可能需要一段时间,但它确实有效job@ppumkin你不必让它重新安装所有东西。如果使用包名添加-id参数,那么它只会在一个包中执行该操作。