nuget - Visual Studio 2015 是否支持 Nuget v1 提要

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

我有来自 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.propertiesteamcity.nuget.api.version=v2 来强制 TeamCity 使用 v2 TeamCity 数据目录中的文件。
  • 要了解您使用的版本,您可以浏览服务器上的 $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 文档,那么它就会崩溃并死掉。

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

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

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

关于nuget - Visual Studio 2015 是否支持 Nuget v1 提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31536547/

相关文章:

c# - 除非在项目属性中修改版本号,否则 Nuget 包不包含最新代码

c++ - 'Windows.h : No such file or directory"error when changing Platform Toolset to v140_xp

c++ - 为什么 MPI 在 Visual Studio 2015 中不起作用?

msbuild - 解决方案的 NuGet 包还原失败(仅在命令行上)

.net - 自定义 Nuget 配置找不到包

powershell - 将 NuGet 与 Visual Studio 2005 结合使用

visual-studio - 为什么 nuget Bootstrapper 使用如此多的链接类

nuget - 如何修复 nuget 包上元素 "Invalid Element ' 中的 'metadata' 许可证'

typescript - 构建 : Cannot find name Promise - Visual Studio 2015 w/MVC6 and Angular 2

nuget - 如何在特定文件夹中创建nuspec文件?