21

我的解决方案引用出现了一些问题,因为有人把 NuGet 搞砸了……从源代码管理中恢复会使项目无法加载,我不得不花点时间才能最终加载。当我终于能够让我的项目正确加载时(在头痛之后),我有一个相当大的实验性混乱需要清理,现在什么都没有构建。

Nuget 认为我的依赖项已安装。Visual Studio 不同意。

在此处输入图像描述

我必须做些什么才能使 NuGet 和 Visual Studio 相互一致?

4

4 回答 4

14

这并不简单,但请尝试以下步骤:

  1. 在包管理器控制台中恢复您的 nuget 包
  2. 在记事本中打开 csproj 并检查路径是否正确。如果不修理它们。
  3. 如果上述步骤在包管理器控制台中不起作用,请重新安装所有包。
  4. 如果项目已打开,请卸载它,然后重新加载它。这会强制 Visual Studio 重新解析引用。

解释:

当 nuget 添加引用时,它会将其添加到 csproj 中,如下所示:

<Reference Include="Newtonsoft.Json">
  <HintPath>..\packages\Newtonsoft.Json.4.5.9\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>

这意味着包号在 HintPath 中。合并两个分支后,nuget 版本号可能会更改。这导致 HintPath 也应该更改为带有版本的正确路径。这就是为什么 Visual Studio 很难找到它们的原因。

于 2013-06-27T04:20:07.873 回答
3

VisualStudio 2017)。这里的建议都没有奏效...... - 直到我完全关闭 VisualStudio 并重新启动它。它比平时多花了几秒钟,但此后所有依赖关系都恢复了!

于 2017-08-11T15:41:22.510 回答
0

在 Visual Studio 2017 for Asp.Net Core 项目中,卸载然后重新加载 .csproj 文件就足够了

于 2017-04-14T03:13:04.080 回答
0

在 Visual Studio 解决方案文件夹中,打开“包”文件夹并删除该文件夹内的所有内容。然后恢复nuget包。

于 2017-05-05T14:20:54.180 回答