【问题标题】:What happened to Package Restore between 2.7 and 2.8?2.7 和 2.8 之间的包还原发生了什么?
【发布时间】:2014-03-11 01:13:02
【问题描述】:

我们正在为许多包裹使用内部供稿。今天我们注意到包还原不再起作用。每个包都失败,并出现如下错误:

找不到包“...”的版本“...”。

有问题的项目在 2013 年 10 月 4 日首次提交,当时 NuGet 的版本为 2.7
多人成功克隆了根本没有二进制文件的源代码控制存储库,没有人记得软件包还原有任何问题。所以要么我们所有人都疯了,要么这很好。
当我今天尝试做一个新的克隆并更新到第一个提交时,我得到了上面的错误。与最近的提交相同。这是 NuGet 2.8

These are the docs concerning Package Restore changes in 2.7:

然而,在采取上述任何步骤之前,NuGet 会验证 同意分为两个层面:

  1. Visual Studio 配置为“允许 NuGet 下载丢失的包”
  2. Visual Studio 配置为“在 Visual Studio 中构建期间自动检查丢失的包”

这两项都在 VS 选项中勾选。

这种包还原方法有几个优点:

  1. 无需为您的项目或解决方案启用它。 Visual Studio 将在您的项目完成之前自动下载缺失的包 构建和团队成员不需要了解 NuGet 包还原。

然而,这正是我们今天设法解决问题的方法:右键单击解决方案并启用包还原。这导致了多个层面的变化。

.csproj 级别

+    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
+    <RestorePackages>true</RestorePackages>

.sln 级别

+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{6FE1C500-523A-4E05-B72E-28F14DEDB055}"
+   ProjectSection(SolutionItems) = preProject
+       .nuget\NuGet.Config = .nuget\NuGet.Config
+       .nuget\NuGet.exe = .nuget\NuGet.exe
+       .nuget\NuGet.targets = .nuget\NuGet.targets
+   EndProjectSection
+EndProject

最后,.nuget\NuGet.Config.nuget\nuget.exe.nuget\NuGet.targets 的创建。

作为测试,我还创建了一个新的解决方案和项目。现在我

  1. 添加一个内部包
  2. 构建
  3. 关闭解决方案
  4. 删除packagesbinobj 目录(就像我们的忽略文件一样)
  5. 打开解决方案
  6. 重新编译,得到问题开头提到的错误

当我使用官方 repo 中的包重复这些步骤时,一切正常。完全没有错误。

我查看了2.7.12.7.22.8.0 的发行说明,但我没有看到与此相关的任何内容。怎么回事?

【问题讨论】:

  • 你说它在官方回购中没有错误;也许你的内部回购已经死了?或者可能需要对其进行更新以支持最新的 NuGet(也许提要规范已更改?)。

标签: visual-studio visual-studio-2012 nuget


【解决方案1】:

它是当前 NuGet 版本中的 confirmed bug,但在夜间构建中已修复。

目前的解决方法是在 Package Manager Console 中将 Package source 设置为 All

【讨论】:

    【解决方案2】:

    这可能是由以下问题引起的:https://nuget.codeplex.com/workitem/4000

    与此问题相关,nuget.exe 客户端不会遵循重定向,因此如果您的内部 NuGet 服务器在尝试下载包时返回 302,则客户端不会遵循它并且不会导致任何事情发生。值得使用 Fiddler 跟踪仔细检查 VS 扩展是否具有相同的行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-17
      • 1970-01-01
      • 2019-12-12
      • 2014-08-12
      • 1970-01-01
      • 2013-10-05
      • 1970-01-01
      • 2019-07-03
      相关资源
      最近更新 更多