NuGet 不更新项目引用

NuGet not updating project references

我最近将我所有的 Visual Studio 2013 项目迁移到 Visual Studio 2015,并按照 Nuget 在 article 中记录的步骤进行操作,以确保自动包恢复仍在工作,在短

我在更新 Nuget 包时遇到问题,它没有更新项目引用以指向最新的 dll 版本。我可以看到安装了最新的软件包。此问题也与具体包无关

有没有其他人遇到过这样的问题?

NuGet 包还原不会修改项目文件。它只是下载 NuGet 包并将其解压缩到包目录。

如果您尝试编辑 packages.config 文件然后更新项目,则必须使用包管理器控制台和 运行:

Update-Package -reinstall

这将卸载并再次安装包并更新项目的引用。

我们意识到我们的一些初级开发人员只为解决方案中的一个项目安装了所需的 Nuget 包,然后他们通过浏览到 dll 在磁盘上的物理位置来为所有其他项目添加对所需 dll 的引用。这显然导致了问题,因为解决方案中只有一个项目在其 packages.config 文件中包含 Nuget 包的条目,而解决方案中的其余项目包含 none。

当使用 Update-Package 命令更新所有包时,只有一个包含 packages.config 文件中条目的项目使用正确的项目引用进行了更新。

即使这不是 Nuget 错误,而是由于缺乏经验引起的问题,我还是用 Nuget 记录了一个 issue,看看他们是否可以改进软件以防止这些类型的问题。

所以我最近也有一个非常相似的问题,不幸的是卸载并重新安装没有用。希望这对其他人有帮助,因为这非常令人沮丧。

步骤:

  1. 转到或启动快速启动功能。
  2. 类型包管理器
  3. select "tools->Nuget PackageManager-> Package Manager Settings"
  4. 在弹出的选项window中。点击 "Clear All Nuget Cache(s)"
  5. 右键单击解决方案并select恢复 Nuget 包。

希望对您有所帮助。

我遇到了 Newtonsoft.Json 的 NuGet 包问题,如下所示:

我尝试了所有可能的解决方案,但下面提到的 none 可行:

  • 清洁液
  • 重建解决方案
  • 正在清除 NuGet 包缓存

最后我意识到它与我的 C# 项目所针对的 .NET Framework 版本有关。似乎有些不匹配。当我将项目的 .NET Framework 版本升级到最新版本时,Newtonsoft.Json 包依赖项及其引用立即生效。

我刚刚注意到的事情,我不确定这是否对您或其他阅读本文的人有帮助,但这个问题确实让我伤透了脑筋。问题是我正在安装我在 Windows 上使用 NuGet 包资源管理器自己创建的包。

事实证明,我相信在更新 NuGet Package Explorer 之后,它不再将我包含的 DLL 放入 lib 文件夹。一旦我开始手动将 lib 文件夹添加回 Package Explorer 中的包,然后上传到 NuGet 并在使用项目中重新安装,引用将再次开始出现。

我不确定是什么导致了这种行为 - 这可能是我自己的错,但我现在才真正弄清楚 - 因此不得不回去重新做一大堆 NuGet 包的好处过去一个月我已经完成了。哎哟

希望这至少能减轻一些人的痛苦。

以上的

None 对我有用。

有效的方法是直接编辑项目文件并删除现有引用。当我重新加载项目时,该包随后作为 Nuget 包出现在引用中。

我碰巧遇到了同样的问题。我尝试了所有可能的解决方案但找到了解决方案 - 只需在文本编辑器中打开 .proj 文件并检查包 Version 和 [= Reference 标签中的 13=]HintPath。有时会出现不匹配,更正它然后 Visual studio 将识别。我希望每个人都能节省很多时间。这里有一个例子可以参考

<Reference Include="nunit.framework, Version=3.4.1.0, Culture=neutral, PublicKeyToken=2638cd05610744eb">
      <HintPath>..\packages\NUnit.3.4.1\lib\net45\nunit.framework.dll</HintPath>
</Reference>