【问题标题】:Restore Nuget Packages command in VS2015, restoring only XMLs not the DLLs在 VS2015 中恢复 Nuget Packages 命令,只恢复 XML 不恢复 DLL
【发布时间】:2017-06-07 15:33:37
【问题描述】:

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

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

在“Nuget Package manager->General”中,我检查/启用了以下选项。

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

执行的步骤:

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

  2. 我右键单击解决方案并选择“恢复 Nuget 包”

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

请告诉我如何解决它。

【问题讨论】:

    标签: .net dll visual-studio-2015 msbuild nuget-package-restore


    【解决方案1】:

    请告诉我如何解决它。

    首先关闭 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 包管理器->包源)

    【讨论】:

    • 感谢 Leo 成功了!我也重装了VS2015
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多