【问题标题】:NuGet push to TFS Feed publishes nuget as V2 but TFS Build expect to restore V3NuGet 推送到 TFS Feed 将 nuget 发布为 V2,但 TFS Build 期望恢复 V3
【发布时间】:2017-12-09 16:38:54
【问题描述】:

我在 TFS 2017 Update 1 中设置了 NuGet 包源。 NuGet 源码如下

http://tfsserver:8080/tfs/defaultcollection/_packaging/NuGet-Feed/nuget/v3/index.json

按照连接到 TFS Package Feed 时的说明,我在本地添加了 NuGet 源,并尝试将包发布到 NuGet Feed,例如以下格式:

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 还原任务运行 TFS 构建:需要以下命令 来自不存在的 TFS Feed 的 nuget/V3/ 端点。 注意:TFS 构建中的 NuGet 还原任务已自定义为使用 NuGet 4.. 版本。

获取http://tfsserver:8080/tfs/DefaultCollection/_packaging/23093bd8-41aa-403d-9d3f-5c713b14ce32/nuget/v3/flat2/microsoft.aspnetcore.http.abstractions/1.1.2/microsoft.aspnetcore.http.abstractions.1.1.2.nupkg

我猜的问题是为什么 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 未找到

谢谢,

马雷兹

【问题讨论】:

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

标签: tfs nuget


【解决方案1】:

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

https://docs.microsoft.com/en-us/nuget/tools/nuget-exe-cli-reference#push

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

尝试:nuget.exe config DefaultPushSource 看看它的设置。

【讨论】:

    【解决方案2】:

    通过命令行在 TFS App-Tier 上运行也会发出一个错误,指出无法访问 NuGet 源。

    终于弄清楚正在使用哪个 NuGet.config 文件,结果,从 TFS 发布的 NuGet 开始在 App Tier 和 TFS 构建中工作。

    【讨论】:

      猜你喜欢
      • 2015-01-23
      • 2016-07-11
      • 2017-05-06
      • 2018-10-15
      • 2015-04-26
      • 2015-12-30
      • 2018-12-11
      • 2018-07-01
      • 2015-12-27
      相关资源
      最近更新 更多