Visual Studio 2015 是否支持 Nuget v1 提要

Does Visual Studio 2015 support Nuget v1 feeds

我有来自 Team City 的 v1 Nuget 提要。

我已经安装了VS 2015

我正在尝试安装现有包,但在查找包时收到以下错误

不是有效的 NuGet v2 服务响应

VS2015 是否不再支持 V1 提要?或者有没有我可以更改的配置。

我在 TeamCity nuget 提要中遇到了类似的问题。

回答你的第一个问题,是的,我相信VS2015还是支持Nuget的API V1.

这是我目前所知道的:

  • TeamCity 可以使用 Nuget 的 v1 或 v2 API。
  • FindPackagesById 在 Nuget API v2 而不是 v1 中实现(您可以通过向 TeamCity 数据目录中的 internal.properties 文件添加一行 teamcity.nuget.api.version=v2 来强制 TeamCity 使用 v2。
  • 要了解您使用的版本,您可以浏览服务器上的 $metadata 端点(例如 http://mybuildmachine.com/httpAuth/app/nuget/v1/FeedService.svc/$metadata)。 FindPackagesById 方法的存在将表明您正在使用 v2。 url 中的版本号不变。是的,这很混乱。
  • TeamCity returns 204 No ContentFindPackagesById returns 没有包。 Nuget.org returns 没有结果,但包含在 XML 文档中。

下面的源代码,在 ASP.NET 源代码中,一切都出错了。如果无法解析来自响应的 XML 文档,那么它就会崩溃并死掉。

https://github.com/aspnet/dnx/blob/37575f3197c0b65d42e3a1db240d636aeab5a1e6/src/Microsoft.Framework.PackageManager/Restore/NuGet/NuGetv2Feed.cs#L230

我找不到 Nuget 规范的副本来确定什么被认为是对 FindPackagesById 的有效响应,但如果 204 响应违反了规范,那么这可能是 TeamCity 错误.

我当前使用多个包源时的解决方法只是在安装特定包时暂时禁用不相关的源。