NuGet推送到TFS提要将NuGet发布为V2,但TFS构建预期将恢复V3

NuGet推送到TFS提要将NuGet发布为V2,但TFS构建预期将恢复V3,tfs,nuget,Tfs,Nuget,我已经在TFS 2017更新1中设置了一个NuGet程序包提要。 NuGet源代码如下所示 按照连接到TFS包提要时所述的说明,我在本地添加了NuGet source,并尝试以以下格式将包发布到NuGet提要作为示例: nuget.exe push -Source "NuGet-Feed" -ApiKey INCTX Microsoft.AspNetCore.Http.Abstractions.1.1.2.nupkg 执行上述命令的结果如下: Pushing Microsoft.AspNe

我已经在TFS 2017更新1中设置了一个NuGet程序包提要。 NuGet源代码如下所示

按照连接到TFS包提要时所述的说明,我在本地添加了NuGet source,并尝试以以下格式将包发布到NuGet提要作为示例:

nuget.exe  push -Source "NuGet-Feed" -ApiKey INCTX Microsoft.AspNetCore.Http.Abstractions.1.1.2.nupkg
执行上述命令的结果如下:

Pushing Microsoft.AspNetCore.Http.Abstractions.1.1.2.nupkg to 'http://tfsserver:8080/tfs/DefaultCollection/_packaging/23093bd8-41aa-403d-9d3f-5c713b14ce32/nug
et/v2/'...
  PUT http://mtrlpqdc2av-053:8080/tfs/DefaultCollection/_packaging/23093bd8-41aa-403d-9d3f-5c713b14ce32/nuget/v2/
  Accepted http://mtrlpqdc2av-053:8080/tfs/DefaultCollection/_packaging/23093bd8-41aa-403d-9d3f-5c713b14ce32/nuget/v2/ 1702ms
Your package was pushed.
如图所示,包被发布到“nuget/v2”端点

使用NuGet Restore任务运行TFS生成:以下命令需要 nuget/V3/来自不存在的TFS源的端点。 注意:TFS构建中的NuGet还原任务是定制为使用NuGet 4。。版本

得到

我想问题是为什么NuGet Push会发布到'NuGet/v2/'端点

TFS生成NuGet还原任务输出:

2017-07-06T15:58:13.0657118Z CredentialProvider.TeamBuild: URI: http://tfsserver:8080/tfs/defaultcollection/_packaging/INCTX-NuGet-Feed/nuget/v3/index.json
2017-07-06T15:58:13.0657118Z CredentialProvider.TeamBuild:是否重试:False

2017-07-06T15:58:13.0657118Z CredentialProvider.TeamBuild:匹配前缀:

2017-07-06T15:58:13.2688422Z CredentialProvider.TeamBuild:仅此提供程序 处理生成的团队项目集合中的URI

2017-07-06T15:58:13.6125991Z GET tfsserver:8080/tfs/DefaultCollection/_packaging/23093bd8-41aa-403d-9d3f-5c713b14ce32/nuget/v3/flat2/microsoft.netcore.app/index.json

2017-07-06T15:58:13.6125991Z GET tfsserver:8080/tfs/DefaultCollection/_packaging/23093bd8-41aa-403d-9d3f-5c713b14ce32/nuget/v3/flat2/microsoft.netcore.app/index.json

2017-07-06T15:58:13.7219799Z未找到

谢谢


Mamrez

您可能需要检查您的nuget.config并参考以下内容:

Pushing Microsoft.AspNetCore.Http.Abstractions.1.1.2.nupkg to 'http://tfsserver:8080/tfs/DefaultCollection/_packaging/23093bd8-41aa-403d-9d3f-5c713b14ce32/nug
et/v2/'...
  PUT http://mtrlpqdc2av-053:8080/tfs/DefaultCollection/_packaging/23093bd8-41aa-403d-9d3f-5c713b14ce32/nuget/v2/
  Accepted http://mtrlpqdc2av-053:8080/tfs/DefaultCollection/_packaging/23093bd8-41aa-403d-9d3f-5c713b14ce32/nuget/v2/ 1702ms
Your package was pushed.

它表示您可以在推送时指定它,也可以在配置中定义DefaultPushSource。我可能怀疑您的v2源在配置中被定义为DefaultPushSource


请尝试:
nuget.exe config DefaultPushSource
查看它设置为什么。

通过命令行在TFS应用层上运行时也发出了一个错误,表明无法访问nuget源


最终确定了使用的是哪个NuGet.config文件,因此,来自TFS的NuGet发布开始在应用层和TFS构建中工作。

详细错误消息是什么?地址正确,您可以转到源页面,然后选择该软件包并检查安装[package]部分的详细信息。I事件使用NuGet 4.*版本。包推送,发布到nuget/v2端点,我不知道为什么?。TFS Build NuGet Restore任务正在运行我前面提到的“GET”命令,正在查找NuGet/v3。在提要页面中,选择包也会引用nuget/v3端点。正如我提到的,推送会对nuget/v2进行PUT,我不知道为什么要这样做。使用TFS构建任务的更多结果更新了问题。我使用了NuGet 4.0,推送端点为nugget/v2,还原端点为nugget/v3,但对我来说效果很好。你能通过Nuget.exe安装软件包吗?源URL是什么?尝试创建一个新包并推送至订阅源,然后使用此包进行尝试。您可以在OneDrive上共享一个包。我可以通过NuGet 4.0在我的笔记本电脑上使用NuGet/v3还原终结点安装该包。但是TFS NuGet Restore任务在NuGet/v3端点中找不到,这很奇怪。我在NuGet构建还原任务中使用NuGet 4.0,我将NuGet 4.0放在构建控制器上。