【问题标题】:TFS - 409 Conflict during package uploadTFS - 409 包上传期间发生冲突
【发布时间】:2017-05-23 10:35:43
【问题描述】:

在 nuget 的包上传过程中,我遇到了 TFS(版本 15.105.25910.0)的问题:

    ******************************************************************************
Starting task: NuGet Publisher
******************************************************************************
Set workingFolder to default: C:\BuildSystem\TfsAgent\tasks\NuGetPublisher\0.2.21
C:\Windows\system32\chcp.com 65001
Active code page: 65001
Detected NuGet version 3.3.0.212 / 3.3.0
SYSTEMVSSCONNECTION exists true
C:\BuildSystem\TfsAgent\tasks\NuGetPublisher\0.2.21\node_modules\nuget-task-common\NuGet\3.3.0\NuGet.exe push -NonInteractive C:\BuildSystem\TfsAgent\_work\6\s\myfolderPackage\bin\Release\mypackage.1.16.1905.nupkg -Source HunextPackages -ApiKey VSTS
Pushing mypackage 1.16.1905 to 'https://mytfsurl.com:444/tfs/DefaultCollection/_packaging/9ebd459f-9a02-456e-9243-c8d0f989c871/nuget/v2/'...
Failed to process request. 'Conflict'. 
The remote server returned an error: (409) Conflict..
Error: C:\BuildSystem\TfsAgent\tasks\NuGetPublisher\0.2.21\node_modules\nuget-task-common\NuGet\3.3.0\NuGet.exe failed with return code: 1
Packages failed to publish
******************************************************************************
Finishing task: NuGetPublisher
******************************************************************************
System.Exception: Task NuGetPublisher failed. This caused the job to fail. Look at the logs for the task for more details.
at Microsoft.TeamFoundation.DistributedTask.Worker.JobRunner.Run(IJobContext jobContext, IJobRequest job, IJobExtension jobExtension, CancellationTokenSource tokenSource)
Worker Worker-bbe2b68d-3dfb-4b56-8546-bc2935a3ffe1 finished running job bbe2b68d-3dfb-4b56-8546-bc2935a3ffe1
******************************************************************************
Finishing Build
******************************************************************************

我在 TFS 上使用包管理,远程服务器返回 409 冲突,但在包列表中我没有看到我的“mypackage 01.16.1905”。 包裹实际存放在哪里? 谢谢。

【问题讨论】:

  • 你上传的是同一个版本的包吗?
  • 是的 @Eddie-MSFT 是同一版本的软件包。我在上传过程中运行了 sql server profiler,得到了用作存储的表,但操作逻辑对我来说非常复杂。你有什么想法吗?谢谢

标签: tfs nuget packages nuget-server


【解决方案1】:

对于故障排除,您可以尝试在普通的 PowerShell 控制台中手动运行它,而不是在构建步骤中运行它。

根据您的日志,看起来您正在使用 nuget 3.3。由于 3.5 中的一些身份验证修复,请尝试使用 nuget 3.5 或更高版本来使用 TFS 打包功能。您将在构建定义的 Nuget 任务选项中找到版本切换。

尝试更新到 3.5 看看是否还有问题。还要确保您没有任何 nuget 可以使用凭据发送到服务器的身份验证问题。


更新

无法覆盖 TFS 上的现有包。 Nuget.exe 允许通配符进行推送,所以你可以使用nuget push *.nupkg -Source ....为此,它将发布最新版本。

【讨论】:

  • 我尝试使用此版本dist.nuget.org/win-x86-commandline/v3.5.0/NuGet.exe 更新 nuget 控制台应用程序,但我在本地遇到了同样的问题。这可能是由于“包的不变性”? visualstudio.com/it-it/docs/package/feeds/immutability。谢谢
  • 是的,这应该是根本原因。因为你在本地也有同样的问题。正如链接所说,nuget 将在您的计算机上保留本地包缓存。一旦客户端缓存了特定的 package@version,它将在未来的安装/恢复请求中返回该副本。
  • 无法覆盖 TFS 上的现有包。 Nuget.exe 允许 wildcards 进行推送,因此您可以使用nuget push *.nupkg -Source .... 为此,它将发布最新版本。
  • 好的,不可能覆盖云上的现有包(VSTS),但使用本地 TFS 我可以访问我系统的任何部分(数据库、缓存 ecc)。上传到 TFS 的软件包列表存储在哪里?非常感谢您的帮助。
  • @cirio 我认为上传到 TFS 的包应该存储在数据库的某个地方。它不应存储在服务器上的缓存文件夹或文件系统中。比如你迁移了数据库,包肯定不会丢。至于存储包的数据库中具体路径是什么,抱歉,我也不确定。
猜你喜欢
  • 2021-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-25
  • 2017-03-22
  • 1970-01-01
  • 1970-01-01
  • 2011-05-21
相关资源
最近更新 更多