我有来自 Team City 的 v1 Nuget 提要。
我已经安装了 VS 2015。
我正在尝试安装现有包,但在查找包时收到以下错误
不是有效的 NuGet v2 服务响应
VS2015 是否不再支持 V1 提要?或者是否有我可以更改的配置。
最佳答案
我在 TeamCity nuget 提要中遇到了类似的问题。
回答你的第一个问题,是的,我相信 VS2015 仍然支持 Nuget API V1。
这是我目前所知道的:
- TeamCity 可以使用 Nuget API 的 v1 或 v2。
- FindPackagesById 在 Nuget API v2 而不是 v1 中实现(您可以通过在
internal.properties中添加一行
TeamCity 数据目录中的文件。teamcity.nuget.api.version=v2
来强制 TeamCity 使用 v2 - 要了解您使用的版本,您可以浏览服务器上的
$metadata
端点(例如 http://mybuildmachine.com/httpAuth/app/nuget/v1/FeedService.svc/ $metadata)。FindPackagesById
方法的存在将表明您正在使用 v2。 url 中的版本号不会改变。是的,这很困惑。 - 当
FindPackagesById
未返回包时,TeamCity 返回204 No Content
。 Nuget.org 不返回结果,但包装在 XML 文档中。
下面的源代码,在 ASP.NET 源代码中,一切都出错了。如果无法解析来自响应的 XML 文档,那么它就会崩溃并死掉。
我找不到 Nuget 规范的副本来确定什么被认为是对 FindPackagesById
的有效响应,但是如果 204
响应违反了规范,那么这可能成为 TeamCity 错误。
我目前在使用多个包源时的解决方法是在安装特定包时暂时禁用不相关的源。
关于nuget - Visual Studio 2015 是否支持 Nuget v1 提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31536547/