Visual studio 2015 Nuget包存在,但缺少引用

Visual studio 2015 Nuget包存在,但缺少引用,visual-studio-2015,nuget,Visual Studio 2015,Nuget,在TFS中分支后,VS2015更新2缺少对所有Nuget包的引用。软件包还原显示“packages.config中列出的所有软件包都已安装。” 我可以手动添加对\packages文件夹中所有包的引用,但为什么VS还没有在那里进行检查?您需要使用包管理器控制台中的NuGet命令行: Update-Package -reinstall 强制将包引用重新安装到项目中 NuGet Restore仅还原packages目录(\packages文件夹)中的文件,但不还原项目中的文件或修改项目。 例如,如果

在TFS中分支后,VS2015更新2缺少对所有Nuget包的引用。软件包还原显示“packages.config中列出的所有软件包都已安装。”


我可以手动添加对\packages文件夹中所有包的引用,但为什么VS还没有在那里进行检查?

您需要使用包管理器控制台中的NuGet命令行:

Update-Package -reinstall
强制将包引用重新安装到项目中

NuGet Restore仅还原packages目录(\packages文件夹)中的文件,但不还原项目中的文件或修改项目。 例如,如果某个包在项目中添加了一些引用DLL或其他文件,如果删除了其中任何一个文件,则在还原此包时不会重新添加这些文件。这可能会导致项目在生成时无法找到缺少的依赖项


因此,使用“更新包-重新安装”命令强制将包引用和内容文件重新安装到project中。

正如Shivam()为VS2013找到的那样,我在VS2017中的解决方案是从以下位置清除Nuget缓存: 选项->NugetPackageManager->清除所有NuGet缓存

这对我来说很有效:

  • 从解决方案中卸载项目
  • 编辑csproj文件并从csproj文件中删除熔核条目 (项目组)
  • 重新加载项目

如果您从git存储库克隆了项目,并且克隆时创建的文件夹中包含“%20”。然后重命名文件夹,除去“%20”。这应该有助于在项目中找到包dll。

我最近不得不将一个项目添加到一个非常大的解决方案中,该解决方案包含来自多个源的多个NugGet包。我的解决方案是在PackageManager控制台中运行更新包-重新安装。完成后,所有现有项目将得到更新。如果您使用的是GIT,我建议您进入团队资源管理器,撤消对其他已更新项目的所有更改,但保留对新项目的更改。你的参考资料会在那里,你的“使用”语句不会有令人讨厌的扭曲的红线:)

转到->

  • 工具->Nuget软件包管理器->软件包管理器设置
  • 在Nuget软件包管理器->常规选项卡下
  • 是否清除缓存
  • 重新启动Visual studio并还原所有Nuget软件包
  • 这将刷新所有引用

  • 我在尝试安装软件包时遇到问题并遇到此问题后,清除了nuget缓存。。。我所有的包都在那里,但到处都有引用错误。我也无法卸载/重新安装软件包,nuget控制台命令也无法工作,例如
    Update package-reinstall-ProjectName Your.Project.Name
    。也没有手动尝试从csproj文件中删除它们,也没有通过ide中解决方案菜单树上的“添加引用”直接浏览到package.dll来手动添加它们

    幸运的是,那天早上我通过一个直接的.zip备份了我的整个项目文件夹。我被迫将我的VS 2019版本更新为最新版本(当时的版本为16.10.1),然后恢复到我的备份,并已修复


    我再也不会清除nuget缓存了

    如果某些(但不是所有)包的引用都已损坏,您也可以重新安装特定的包。重新安装后,查看.csproj文件中的差异,找出需要更改的内容。对我来说,这是一个包裹的快捷方式。我们已将.packages文件夹向上移动了一级,以便在不同的Repo之间共享,但此项目未更新。此项目是否安装每个包的最新版本,还是安装最初安装的版本(无论是否已损坏)?@mrtumnus,最初安装的版本。Update-Package-ProjectName MyProject-为特定项目重新安装,在没有项目协议的情况下运行此版本时出错
    >“nuget”不被识别为内部或外部命令,
    >dotnet Update Package-重新安装未找到匹配命令“dotnet Update Package”的可执行文件
    谢谢,这也解决了我的问题,但我也做了“更新包-重新安装”,以防万一