繁体   English   中英

Nuget Package ...在项目中不存在...包...已经存在于文件夹中

[英]Nuget Package … does not exist in project … Package … Already exists in folder

我一直在与这个错误斗争几个小时,无法找到一个有效的解决方案。

我在一个多项目解决方案中有一个ASP.Net API,它的参考/依赖项配置不正确,我一直试图修复它两天。

问题是( 我相信 )API缺少System.Web.Http / System.Web.Http.WebHost,它显然包含在Microsoft.AspNet.WebApi.Core中(每多个其他Stack Overflow问题)。 当试图通过Nuget安装它时,我尝试解决依赖关系时收到以下错误。 此外,我每次都遇到此错误(请参阅本问题后面的疑难解答):

Package Manager控制台的屏幕截图

我没有按特定顺序完成以下步骤(各种组合多次):

  • 运行'Update-package Microsoft.AspNet.WebApi.Core -reinstall'
  • 删除解决方案范围的“Packages”文件夹并删除项目的packages.config并尝试还原包
  • 从物理驱动器和TFS中删除整个项目,并从头开始重新创建它(它创建时引用不正确)
  • 通过命令行和Nuget GUI安装软件包
  • 检查解决方案到我硬盘上的不同位置,尝试尽可能新鲜
  • 重新启动计算机/重新启动Visual Studio

在这一点上,只要修复它,我就可以使用非干净的修复程序。 API在某一点上工作,但后来我将其检入TFS,创建了一个分支,现在正在分支机构工作。 可能有一些依赖项没有被包括在内(?)但是即使是这种情况,似乎我采取的步骤应该可以解决问题。

关闭解决方案,然后转到硬盘驱动器上的packages文件夹并删除其所有内容。 在Visual Studio中再次打开您的应用程序,它将自动尝试还原包。 清理解决方案并构建它。

清除缓存为我解决了问题。 可以选择清除工具>选项> NuGet包管理器>常规菜单中的缓存 ,称为清除所有NuGet缓存

首先,通过包管理器控制台卸载特定的NuGet包

然后,请右键单击 - >卸载项目,卸载引用此nugget包的项目。

卸载后右键单击项目并选择“编辑{项目名称} .csproj”

在先前卸载的XML中找到NuGet包条目并将其删除。

从包管理器控制台再次安装包...

没有其他答案对我有用。 它一直在无限循环的安装,恢复,重启VS,从未取得任何进展。

我最终要做的是:

  1. 关闭VS.
  2. 从packages文件夹中删除有问题的包。
  3. 手动编辑packages.config文件,添加我需要安装的软件包名称和版本。
  4. 当我再次打开解决方案时,我右键单击该项目并说“管理NuGet包”并单击横幅上显示的“恢复”按钮。 这安装了拒绝安装的软件包。

大声喊叫! 微软需要从纱线上吸取教训,了解如何正确地进行包管理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM