Nuget包在那里,但缺少参考

时间:2017-03-14 00:33:55

标签: visual-studio-2015 nuget

在TFS中分支后,VS2015 Update 2缺少对所有Nuget包的引用。包恢复说" packages.config中列出的所有包都已安装。"

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

8 个答案:

答案 0 :(得分:71)

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

Update-Package -reinstall

强制将包引用重新安装到项目中。

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

所以使用" Update-Package -reinstall"命令强制将包引用和内容文件重新安装到项目中。

答案 1 :(得分:2)

由Shivam(https://stackoverflow.com/a/46763556/1034160)发现VS2013,我在VS2017中的解决方案是从以下位置清除Nuget缓存:  选项 - > NugetPackageManager - >清除所有NuGet缓存

答案 2 :(得分:2)

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

答案 3 :(得分:1)

转到->

  1. 工具-> Nuget软件包管理器->软件包管理器设置
  2. 在Nuget软件包管理器下->“常规”选项卡
  3. 清除缓存
  4. 重新启动Visual Studio并还原所有Nuget程序包。
  5. 这将刷新所有参考。

答案 4 :(得分:0)

这对我有用:

  • 从解决方案中卸载项目
  • 编辑csproj文件并从csproj文件中删除块项 (ItemGroup)。
  • 重新加载项目

答案 5 :(得分:0)

我最近不得不将一个项目添加到一个非常大的解决方案中,该解决方案包含来自多个来源的多个NugGet软件包。我的解决方案是在Package Manager控制台中运行Update-Package -reinstall。完成后,所有现有项目都将获得更新。如果您使用的是GIT,建议您进入“团队资源管理器”,然后撤消对已更新的其他项目的所有更改,但是保留新项目的更改。您的引用将在那里,并且您的“使用”语句将不会有恼人的蠕动的红线:)

答案 6 :(得分:0)

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

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

我再也不会清除nuget缓存

答案 7 :(得分:0)

对我有用的一种解决方案是:

  1. 转到“工具”>“NuGet 包管理器”>“包管理器设置”。
  2. 在左侧窗格中,单击 Nuget 包管理器下的包源。
  3. 然后确保您有这些设置:

enter image description here

然后重启VS并恢复软件包。