Nuget更新包不支持';无法识别已安装的软件包-->;更新失败

Nuget更新包不支持';无法识别已安装的软件包-->;更新失败,nuget,Nuget,我已经在VS项目中安装了一个NuGet包(我们在项目中开发)。当我在nuget项目上运行更新包时,我得到: Update-Package : 'Project name' was not installed in any project. Update failed. At line:1 char:15 + Update-Package <<<< Project name + CategoryInfo : NotSpecified: (:) [

我已经在VS项目中安装了一个NuGet包(我们在项目中开发)。当我在nuget项目上运行更新包时,我得到:

Update-Package : 'Project name' was not installed in any project. Update failed.
At line:1 char:15
+ Update-Package <<<<  Project name
    + CategoryInfo          : NotSpecified: (:) [Update-Package], InvalidOperationException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.UpdatePackageCommand
更新包:“项目名称”未安装在任何项目中。更新失败。
第1行字符:15

+Update Package最近我遇到了一个非常类似的问题-原来packages/repositories.config丢失了(因为我们没有提交packages文件夹)。我在VS中做了一些事情(可能会向项目中添加一个新包),导致VS重新生成repositories.config文件,其中列出了所有项目中的所有包。之后,更新工作正常。

以下是我如何获得最新版本的软件包管理器:

  • 在管理模式下启动VS2010(以管理员身份运行)
  • 工具>加载项管理器>卸载NuGet
  • 重新启动Visual Studio
  • 安装NuGet

  • 希望这有帮助。

    我也有同样的问题。我们没有签入packages文件夹(nuget build任务下载所有包)


    我解决这个问题的唯一方法是删除packages文件夹,然后重建项目。

    我正在处理与Tomas相同的项目,我试图找出这个问题发生的时间和原因。当我们在packages文件夹中有一个或多个包的旧版本并尝试发出“updatepackage”命令时,似乎会发生这种情况

    在发出命令之前,我们的packages文件夹和配置如下所示:

    软件包文件夹:

    Common.WebApi.1.0.0.109
    Common.WebApi.1.0.0.110
    
    包配置:

    <packages>
        <package id="Common.WebApi" version="1.0.0.110" />
        <package id="System.Json" version="4.0.20126.16343" />
        <package id="System.Net.Http" version="2.0.20126.16343" />
    </packages>
    
    
    
    现在,当发布“update package Common.WebApi”时,我们得到错误:
    更新包:“OPF.Common.WebApi”未安装在任何项目中。更新失败

    为了解决这个问题,我从packages文件夹中删除了旧的包“Common.WebApi.1.0.0.109”,然后重新运行该命令,该命令就可以工作了

    显而易见的问题是:为什么我的packages文件夹中有一个旧包?这种情况发生在我们身上,因为我们没有将自己的包提交给源代码管理。相反,我们使用的方法如下所述:

    “旧包问题”出现在这种情况下:
    1.开发人员A更新包并将package.config提交给源代码管理
    2.开发人员B从源代码管理获取最新版本并接收更新的package.config
    3.开发人员B构建项目,并在其软件包文件夹中创建新软件包
    4.Nuget不会从他的packages文件夹中删除开发人员B的旧包,因此开发人员B现在在他的packages文件夹中既有旧包也有新包,但在package.config中只有对新版本的引用


    在我看来,Nuget似乎并不希望packages文件夹中有多个版本的包,当您尝试更新[在packages文件夹中]有多个版本的包时,会感到困惑,即使您仅从package.config中引用了一个包。

    另一种情况是:

  • 未还原包(例如使用ReSharper 2016.2版本)
  • 尝试在/packages中不存在有问题的包版本时进行更新/

  • 要修复此问题,请以某种方式运行还原包

    My/packages/repositories.config没有对错误中命名的项目的packages.config的引用。我最近向这个项目添加了packages.config,而repositories.config没有签出并且是只读的,因此没有更新以添加引用

    我手动编辑了repositories.config以将路径添加到新的packages.config

    为了避免上述版本冲突,我还临时删除了respositories.config中的所有其他条目。我还备份/删除了/packages/下的所有文件夹,只保留repositories.config。(关闭VS以避免任何文件打开/锁定冲突)


    然后我重新打开了解决方案,并为该项目运行了updatepackage-Reinstall命令,结果成功了。然后,我将彼此项目的packages.config路径添加回repositories.config。我还比较了每个packages.config,以确保在多个项目引用它们时使用相同版本的包。

    在同一文件夹中是否有多个解决方案共享一个packages文件夹?是否将包提交到源代码管理?否。我们不会在解决方案之间共享packages文件夹,也不会将有问题的包提交到源代码管理。然而,这不再是一个问题。我刚刚删除了所有有问题的包的旧文件夹,它又开始工作了。我想我可能在包文件夹中安装了一个与package.config中指定的版本不同的版本(因为我们没有签入它们),也许这有什么要说的?听起来这就是问题所在。顺便说一句,这是怎么发生的?我们已经建立了teamcity来构建我们自己的nuget软件包,并将它们存储在文件共享中。当我们安装自己的nuget软件包时,我们不会将这些软件包提交给源代码管理,因为我们控制着这些软件包。我猜我做了一个“获取最新版本”-->new package.config,然后在构建之前尝试更新。如果我做了一个构建,它可能已经工作了,因为我们正在使用NuGetPowerTools在构建中安装软件包,如David Ebbo所述:。无论哪种方式,错误消息都有点错误。长话短说:确保
    packages
    文件夹中没有未使用的软件包版本。删除这些修复了问题。与您的情况类似-我下载了4次vsix文件,并附加了名称(1)、(2)和(3)。一旦删除并留下一个名为NuGet.Tools.vsix的文件,它就工作了。(我相信当您尝试更新nugget时,如果出现错误,您将无法再从nugget安装它。至少这是我的经验。相同。感谢上帝提供了源代码管理。我删除了\packages fol的内容。)