2015-07-21 124 views
3

我有Team City的v1 Nuget饲料。Visual Studio 2015支持Nuget v1饲料

我已经安装了VS 2015

我试图安装和现有的包,我收到关于发现包以下错误

不是有效的NuGet V2服务响应

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

+0

我正在使用团队城市的v1 Nuget feed,但没有出现在包中,没有错误。 :(这是TC 9.1.5 – tofutim

回答

4

我有一个与TeamCity nuget feed类似的问题。

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

这里就是我想我知道到目前为止:

  • 的TeamCity可以使用V1或API的NuGet的V2。
  • FindPackagesById中的NuGet API中实现2版不是第一版(你可以强制的TeamCity添加一行teamcity.nuget.api.version=v2internal.properties文件中的TeamCity的数据目录使用V2。
  • 要找出你使用,你可以浏览什么版本$metadata端点您的服务器(例如http://mybuildmachine.com/httpAuth/app/nuget/v1/FeedService.svc/ $元数据)上。该FindPackagesById方法的存在将显示您正在使用V2,在URL中的版本号不会改变。是的,这是令人困惑的。
  • 的TeamCity返回204 No ContentFindPackagesById回报没有包,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。

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

+2

这是Teamcity的跟踪问题: https://youtrack.jetbrains.com/issue/TW-39211和原始github问题:https://github.com/NuGet/Home/issues/1759 – ciriarte