在TFS中分支后,VS2015 Update 2缺少对所有Nuget包的引用。包恢复说" packages.config中列出的所有包都已安装。"
我可以手动添加对\ packages文件夹中所有软件包的引用,但为什么还没有VS在那里检查?
答案 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)
转到->
答案 4 :(得分:0)
这对我有用:
答案 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)