VS2015 中的 Restore Nuget Packages 命令,只恢复 XML 而不是 DLL

Restore Nuget Packages command in VS2015, restoring only XMLs not the DLLs

我买了一台 Visual Studio 2015 年的新笔记本电脑。我有一个现有的 VS 解决方案,在我以前的笔记本电脑上运行良好。

在我的新笔记本电脑中,我遇到了 Nuget 恢复问题,它只恢复了 XML 文件,而不是大多数程序集的 DLL。请检查我执行的以下步骤。

在"Nuget Package manager->General"我checked/enabled以下选项。

  1. 允许 Nuget 下载丢失的包
  2. 自动检查列表项是否缺少包裹

执行的步骤:

  1. 我已从源代码管理下载解决方案,包文件夹为空

  2. 我右键单击解决方案并选择 "Restore Nuget Package"

  3. 它创建了 Package 文件夹和所有程序集相关的子文件夹
  4. 但是,当我进入某些文件夹时,例如 Newtonsoft.Json.8.0.1 文件夹,它包含一个名为 lib\net45 的子文件夹,其中只有 Newtonsoft.Json.xml它但没有 DLL
  5. 子文件夹中缺少 Newtonsoft.Json.dll
  6. 子文件夹中缺少大部分 DLL,并且子文件夹中只有 XML 个文件

请告诉我如何解决它。

Please let me know how to resolve it.

首先关闭Visual Studio的所有实例。当在 VS 之外做任何会影响 VS 认为正在发生的事情时,这通常是一个好主意。

然后尝试清除本地包缓存nuget.exe locals all -clear

您可以按照以下步骤清除本地包:

首先,从here下载nuget命令行工具。

接下来,打开命令提示符并 cd 到下载 nuget.exe 的目录。

您可以使用此命令列出本地缓存:

nuget locals all -list

您可以使用此命令清除所有缓存:

nuget locals all -clear

此外,尝试 仅使用 nuget.org(工具->选项->NuGet 包管理器->包源)

我有一个 的 NuGet 似乎正在恢复但没有下载 DLL。

原来这不是 NuGet,而是我设置版本控制的方式。我忘记将 NuGet package 目录添加到我的 VCS 的忽略列表中。在这种情况下,Mercurial 上传了 packages 文件夹,但默认情况下忽略了 DLL。当另一台机器构建项目时,NuGet 假设包已经下载,因为文件夹在那里,尽管它们缺少 DLL。

删除包文件夹并让 NuGet 下拉它们解决了这个问题,不过下次我会确保在设置项目时将包文件夹放在忽略列表中。