【问题标题】:Does Visual Studio 2015 support Nuget v1 feedsVisual Studio 2015 是否支持 Nuget v1 提要
【发布时间】:2015-07-21 10:28:29
【问题描述】:

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

我已经安装了 VS 2015。

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

不是有效的 NuGet v2 服务响应

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

【问题讨论】:

  • 我正在使用来自 Team City 的 v1 Nuget 提要,但包中没有任何内容,没有错误。 :( 这是 TC 9.1.5

标签: nuget visual-studio-2015 nuget-package-restore


【解决方案1】:

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

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

这是我目前所知道的:

  • TeamCity 可以使用 Nuget API 的 v1 或 v2。
  • 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/$元数据)。 FindPackagesById 方法的存在将表明您正在使用 v2。 url 中的版本号不会改变。是的,这令人困惑。
  • FindPackagesById 未返回任何包时,TeamCity 将返回 204 No Content。 Nuget.org 不返回任何结果,而是包装在 XML 文档中。

下面的源代码,在 ASP.NET 源代码中是所有错误的地方。如果响应中的 XML 文档无法解析,那么它就会崩溃并死掉。

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

我找不到 Nuget 规范的副本以确定对 FindPackagesById 的有效响应,但如果 204 响应违反规范,那么这可能是 TeamCity 错误。

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

【讨论】:

猜你喜欢
  • 2015-11-19
  • 1970-01-01
  • 1970-01-01
  • 2016-06-05
  • 2019-05-12
  • 1970-01-01
  • 1970-01-01
  • 2015-11-29
  • 2015-10-17
相关资源
最近更新 更多