Cannot publishing a NuGet to TFS 2017

1.4k Views Asked by At

When I try to publish a NuGet to my TFS 2017 on-premises using a build step, I get following error messages:

2016-12-21T09:33:58.3510841Z [command]C:\Windows\system32\chcp.com 65001
2016-12-21T09:33:58.3667084Z Active code page: 65001
2016-12-21T09:34:00.7730379Z Detected NuGet version 3.3.0.212 / 3.3.0
2016-12-21T09:34:00.7730379Z SYSTEMVSSCONNECTION exists true
2016-12-21T09:34:00.7886681Z [command]C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\node_modules\nuget-task-common\NuGet\3.3.0\NuGet.exe push -NonInteractive C:\Agent\_work\1\s\Foo.1.4.3-build-20161221-1.nupkg -Source http://myServer:8080/tfs/My%20Team%20Projects/_packaging/our-nuget/nuget/v3/index.json -ApiKey VSTS -Verbosity Detailed
2016-12-21T09:34:01.4761938Z Please provide credentials for: http://myserver:8080/tfs/My%20Team%20Projects/_packaging/our-nuget/nuget/v3/index.json
2016-12-21T09:34:01.4761938Z UserName: System.InvalidOperationException: Cannot prompt for input in non-interactive mode.
2016-12-21T09:34:01.5074440Z ##[error]Error: C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\node_modules\nuget-task-common\NuGet\3.3.0\NuGet.exe failed with return code: 1
2016-12-21T09:34:01.5074440Z ##[error]Packages failed to publish

I have also try to run the NuGet.exe push ... command from a PowerShell script as a build step, and that also failed.

When I run it manually in a ordinary PowerShell console, it works without problems.

What is the runtime difference between running it from console compared to running it in a build step? How do I make it works?

Edit 1 I have change to NuGet 3.5 and created a verbose log. Se below:

agent.workFolder=C:\Agent\_work
loading inputs and endpoints
loading ENDPOINT_AUTH_$/
loading ENDPOINT_AUTH_PARAMETER_$/_ACCESSTOKEN
loading ENDPOINT_AUTH_PARAMETER_SYSTEMVSSCONNECTION_ACCESSTOKEN
loading ENDPOINT_AUTH_SCHEME_$/
loading ENDPOINT_AUTH_SCHEME_SYSTEMVSSCONNECTION
loading ENDPOINT_AUTH_SYSTEMVSSCONNECTION
loading INPUT_FEEDNAME
loading INPUT_NUGETFEEDTYPE
loading INPUT_NUGETVERSION
loading INPUT_SEARCHPATTERN
loading INPUT_VERBOSITY
loaded 11
check path : C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\task.json
set resource file to: C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\task.json
system.culture=en-US
check path : C:\Windows\system32\chcp.com
C:\Windows\system32\chcp.com=C:\Windows\system32\chcp.com
C:\Windows\system32\chcp.com arg: ["65001"]
exec tool: C:\Windows\system32\chcp.com
Arguments:
65001
C:\Windows\system32\chcp.com 65001
Active code page: 65001
searchPattern=C:\Agent\_work\1\s\**\*.nupkg;-:**\packages\**\*.nupkg;-:**\*.symbols.nupkg
System.DefaultWorkingDirectory=C:\Agent\_work\1\s
pattern: C:\Agent\_work\1\s\**\*.nupkg, isNegative: false
Matching glob pattern: C:\Agent\_work\1\s\**\*.nupkg
Index of first wildcard: 19
find root dir: C:\Agent\_work\1
find C:\Agent\_work\1
4456 matches.
pattern: C:\Agent\_work\1\s\**\packages\**\*.nupkg, isNegative: true
Matching glob pattern: C:\Agent\_work\1\s\**\packages\**\*.nupkg
Index of first wildcard: 19
find root dir: C:\Agent\_work\1
find C:\Agent\_work\1
4456 matches.
pattern: C:\Agent\_work\1\s\**\*.symbols.nupkg, isNegative: true
Matching glob pattern: C:\Agent\_work\1\s\**\*.symbols.nupkg
Index of first wildcard: 19
find root dir: C:\Agent\_work\1
find C:\Agent\_work\1
4456 matches.
connectedServiceName=null
feedName=http://sag-s02:8080/tfs/SAG%20Team%20Projects/_packaging/sag-nuget/nuget/v3/index.json
nuGetAdditionalArgs=null
verbosity=Detailed
nuGetFeedType=internal
nuGetPath=null
nuGetversion=3.5.0.1829
Agent.HomeDirectory=C:\Agent
looking for tool NuGet
looking for tool variant NuGet.exe
checking C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\node_modules\nuget-task-common\NuGet\3.5.0\NuGet.exe
SYSTEMVSSCONNECTION=http://sag-s02:8080/tfs/SAG Team Projects/
Detected NuGet version 3.5.0.1938 / 3.5.0
Quirks for 3.5.0.1938:
NoTfsOnPremAuthConfig
NuGet.ForceEnableCredentialProvider=undefined
NuGetTasks.IsHostedTestEnvironment=undefined
System.TeamFoundationCollectionUri=http://sag-s02:8080/tfs/SAG%20Team%20Projects/
Credential provider is enabled.
NuGet.ForceEnableCredentialConfig=undefined
NuGetTasks.IsHostedTestEnvironment=undefined
System.TeamFoundationCollectionUri=http://sag-s02:8080/tfs/SAG%20Team%20Projects/
Credential config is disabled due to on-prem quirks.
Getting credentials for local feeds
SYSTEMVSSCONNECTION exists true
SYSTEMVSSCONNECTION exists true
Got auth token
discovered URL prefixes: http://sag-s02:8080/tfs/SAG Team Projects/
NuGetTasks.ExtraUrlPrefixesForTesting=undefined
C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\node_modules\nuget-task-common\NuGet\3.5.0\NuGet.exe arg: push
C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\node_modules\nuget-task-common\NuGet\3.5.0\NuGet.exe arg: -NonInteractive
C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\node_modules\nuget-task-common\NuGet\3.5.0\NuGet.exe pathArg: C:\Agent\_work\1\s\Foo.1.4.3-build-20161222-5.nupkg
C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\node_modules\nuget-task-common\NuGet\3.5.0\NuGet.exe arg: C:\Agent\_work\1\s\Foo.1.4.3-build-20161222-5.nupkg
C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\node_modules\nuget-task-common\NuGet\3.5.0\NuGet.exe arg: ["-Source","http://sag-s02:8080/tfs/SAG%20Team%20Projects/_packaging/sag-nuget/nuget/v3/index.json"]
C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\node_modules\nuget-task-common\NuGet\3.5.0\NuGet.exe arg: ["-ApiKey","VSTS"]
C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\node_modules\nuget-task-common\NuGet\3.5.0\NuGet.exe arg: -Verbosity
C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\node_modules\nuget-task-common\NuGet\3.5.0\NuGet.exe arg: Detailed
credProviderPath = C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\node_modules\nuget-task-common\NuGet
exec tool: C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\node_modules\nuget-task-common\NuGet\3.5.0\NuGet.exe
Arguments:
push
-NonInteractive
C:\Agent\_work\1\s\Foo.1.4.3-build-20161222-5.nupkg
-Source
http://sag-s02:8080/tfs/SAG%20Team%20Projects/_packaging/sag-nuget/nuget/v3/index.json
-ApiKey
VSTS
-Verbosity
Detailed
C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\node_modules\nuget-task-common\NuGet\3.5.0\NuGet.exe push -NonInteractive C:\Agent\_work\1\s\Foo.1.4.3-build-20161222-5.nupkg -Source http://sag-s02:8080/tfs/SAG%20Team%20Projects/_packaging/sag-nuget/nuget/v3/index.json -ApiKey VSTS -Verbosity Detailed
NuGet Version: 3.5.0.1938
System.AggregateException: One or more errors occurred. ---> NuGet.Protocol.Core.Types.FatalProtocolException: Unable to load the service index for source http://sag-s02:8080/tfs/SAG%20Team%20Projects/_packaging/sag-nuget/nuget/v3/index.json. ---> System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized).
   at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
   at NuGet.Protocol.HttpSource.<>c__DisplayClass12_0.<<GetAsync>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Common.ConcurrencyUtilities.<ExecuteWithFileLockedAsync>d__2`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.HttpSource.<GetAsync>d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at NuGet.Protocol.ServiceIndexResourceV3Provider.<GetServiceIndexResourceV3>d__9.MoveNext()
   --- End of inner exception stack trace ---
   at NuGet.Protocol.ServiceIndexResourceV3Provider.<GetServiceIndexResourceV3>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.ServiceIndexResourceV3Provider.<TryCreate>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.Core.Types.SourceRepository.<GetResourceAsync>d__16`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.PackageUpdateResourceV3Provider.<TryCreate>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.Core.Types.SourceRepository.<GetResourceAsync>d__16`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.Core.Types.SourceRepository.<GetResourceAsync>d__15`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Commands.CommandRunnerUtility.<GetPackageUpdateResource>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Commands.PushRunner.<Run>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.CommandLine.PushCommand.<ExecuteCommandAsync>d__28.MoveNext()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at NuGet.CommandLine.Command.Execute()
   at NuGet.CommandLine.Program.MainCore(String workingDirectory, String[] args)
---> (Inner Exception #0) NuGet.Protocol.Core.Types.FatalProtocolException: Unable to load the service index for source http://sag-s02:8080/tfs/SAG%20Team%20Projects/_packaging/sag-nuget/nuget/v3/index.json. ---> System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized).
   at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
   at NuGet.Protocol.HttpSource.<>c__DisplayClass12_0.<<GetAsync>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Common.ConcurrencyUtilities.<ExecuteWithFileLockedAsync>d__2`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.HttpSource.<GetAsync>d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at NuGet.Protocol.ServiceIndexResourceV3Provider.<GetServiceIndexResourceV3>d__9.MoveNext()
   --- End of inner exception stack trace ---
   at NuGet.Protocol.ServiceIndexResourceV3Provider.<GetServiceIndexResourceV3>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.ServiceIndexResourceV3Provider.<TryCreate>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.Core.Types.SourceRepository.<GetResourceAsync>d__16`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.PackageUpdateResourceV3Provider.<TryCreate>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.Core.Types.SourceRepository.<GetResourceAsync>d__16`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.Core.Types.SourceRepository.<GetResourceAsync>d__15`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Commands.CommandRunnerUtility.<GetPackageUpdateResource>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Commands.PushRunner.<Run>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.CommandLine.PushCommand.<ExecuteCommandAsync>d__28.MoveNext()<---
rc:1
success:false
Error: C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\node_modules\nuget-task-common\NuGet\3.5.0\NuGet.exe failed with return code: 1
Processed: ##vso[task.issue type=error;]Error: C:\Agent\_work\_tasks\NuGetPublisher_333b11bd-d341-40d9-afcf-b32d5ce6f25b\0.2.21\node_modules\nuget-task-common\NuGet\3.5.0\NuGet.exe failed with return code: 1
task result: Failed
Packages failed to publish
Processed: ##vso[task.issue type=error;]Packages failed to publish
Processed: ##vso[task.complete result=Failed;]Packages failed to publish
2

There are 2 best solutions below

1
On

The error below indicates you need to provide credential to push the package:

Please provide credentials for: http://myserver:8080/tfs/My%20Team%20Projects/_packaging/our-nuget/nuget/v3/index.json
UserName: System.InvalidOperationException: Cannot prompt for input in non-interactive mode.

Check the solution here: log in as the user which will be running the builds, and update the nuget source reference (which will be in a user-specific appdata config file) with the password:

nuget sources update -Name <whatever you called it> -source http://your.nuget.repo/authed/feed/ -User <your username> -pass <your pwd>

This will save an encrypted password in a user-specific config file on that computer, and should mean you don’t get prompted for that source anymore.

Several more options are detailed over here: http://www.xavierdecoster.com/nuget-package-restore-from-a-secured-feed

0
On

Find the reason: the user name or password includes quotes when add feed source. Solution to deal with that issue:

  1. Download Nuget 3.5
  2. Open Command Prompt and navigate to Nuget.exe folder (CD)
  3. Update package source through this command (Do not include quotes to user name and password):

Command:

.\nugget.exe Sources update -name '[feedname]' -source "[feed address]" -username [user name] -password [password]
  1. Queue build to publish package

Note: Do not include quotes to user name and password, for example: ‘user1’, ”user1”, just use user1.