持续集成 - 将 NuGet 部署到来自 TeamCity 的 Visual Studio 在线提要

Continuous Integration - Deploying NuGet to Visual Studio Online Feed from TeamCity

我是 运行 TeamCity 10.0.5,作为我们持续集成构建的一部分,我想将一些 Dll 打包在一起并将它们发布到 Visual Studio Online 托管的 NuGet 提要。 ..

发布步骤当前无法通过 Nuget 提要进行身份验证,构建日志中的这段摘录证明了这一点...

Step 4/7: Publish BL, DAL and Entities nuget (NuGet Publish) (4s)
[13:31:30][Step 4/7] push: Publish package OutputPackages\KeyedIn.Project.BLandDAL.1.0.0.nupkg (4s)
[13:31:30][push] NuGet command: C:\TeamCity\buildAgent\plugins\nuget-agent\bin\JetBrains.TeamCity.NuGetRunner.exe C:\TeamCity\buildAgent\tools\NuGet.CommandLine.4.0.0\tools\NuGet.exe push C:\TeamCity\buildAgent\work\dc03049e2a33b930\OutputPackages\KeyedIn.Project.BLandDAL.1.0.0.nupkg %%teamcity_nuget_api_key_1491222690775%% -Source https://keyedincleckheaton.pkgs.visualstudio.com/_packaging/NuGet_Feed/nuget/v3/index.json
[13:31:30][push] Starting: C:\TeamCity\buildAgent\temp\agentTmp\custom_script1071157934831391257.cmd
[13:31:30][push] in directory: C:\TeamCity\buildAgent\work\dc03049e2a33b930\OutputPackages
[13:31:31][push] JetBrains TeamCity NuGet Runner 8.0.42677.9
[13:31:31][push] Registered additional extensions from paths: C:\TeamCity\buildAgent\plugins\nuget-agent\bin\plugins-2.0
[13:31:31][push] Starting NuGet.exe 4.0.0.2283 from C:\TeamCity\buildAgent\tools\NuGet.CommandLine.4.0.0\tools\NuGet.exe
[13:31:32][push] WARNING: Failed to load C:\TeamCity\buildAgent\plugins\nuget-agent\bin\plugins-2.0\JetBrains.TeamCity.NuGet.ExtendedCommands.2.0.dll
[13:31:32][push] Could not load type 'NuGet.Commands.Command' from assembly 'NuGet, Version=4.0.0.2283, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
[13:31:32][push] 
[13:31:34][push] Please provide credentials for: https://keyedincleckheaton.pkgs.visualstudio.com/_packaging/NuGet_Feed/nuget/v3/index.json
[13:31:34][push] Unable to load the service index for source https://keyedincleckheaton.pkgs.visualstudio.com/_packaging/NuGet_Feed/nuget/v3/index.json.
[13:31:34][push]   Response status code does not indicate success: 401 (Unauthorized).
[13:31:34][push] UserName: 
[13:31:34][push] Process exited with code 1
[13:31:34][Step 4/7] Step Publish BL, DAL and Entities nuget (NuGet Publish) failed

我正在尝试确定我做错了什么 - 日志显示没有提供用户名,但我在屏幕上看不到任何地方可以输入用户名:

在线阅读,似乎身份验证问题很常见 - 谁能提供任何指导?

谢谢

您需要将带有用户名和密码的相应 VSTS 提要添加到 Nuget 源文件中。

  1. 创建个人访问令牌
  2. 将提要添加到源(nuget.exe sources add -name {your feed name} -source {your feed URL} -username {anything} -password {your PAT}
  3. 运行 在 TeamCity 中构建

之后,您可以在%APPDATA%\NuGet\NuGet.config文件中查看相关的feed源。

注意:API键可以是你想要的任何非空字符串,例如key,vsts。

也可以通过添加 NuGet Feed Credentials 构建功能并在 NuGet 步骤中添加包源来使用 VSTS NuGet feed 进行身份验证。还使用 PAT 来实现此构建功能。