TFS 构建代理 nuget 从 cmd 工作,但在 TFS 上出现授权错误
TFS build agent nuget works from cmd but getting authorization error on TFS
我们在 TFS 上实现了 CI 进程。此 CI 过程的第一步是 Nuget 还原。
该项目具有一些依赖性,这些依赖性存储在同一 TFS 实例上的 nuget 提要中。在恢复过程中发生 401 授权要求错误。
2017-08-22T14:45:56.9497847Z [command]d:\path.5.0\NuGet.exe restore
-NonInteractive D:\somepath\project.sln -Verbosity Detailed
2017-08-22T14:46:03.5127467Z Error downloading 'dependency.4.1.1' from 'http://URL:80/tfs/TFSCollection/_packaging/path/dependency.4.121.1.nupkg'.
2017-08-22T14:46:03.5127467Z Response status code does not indicate success: 401 (Unauthorized).
但是当我尝试从命令行显示在日志中的相同命令时。正在成功安装依赖项。
我检查过这里有一个 nupkg:
'http://URL:80/tfs/TFSCollection/_packaging/path/dependency.4.121.1.nupkg'
我已经检查过以下命令在同一台机器上从命令行成功运行。
d:\path.5.0\NuGet.exe restore
-NonInteractive D:\somepath\project.sln -Verbosity Detailed
我们正计划向微软开票。但是,在我看来,有一个我们看不到的简单技巧。你有没有这样的经历。为什么相同的命令可以从命令行运行但不能从 TFS 运行。你有什么主意吗?
根据报错信息“401(未授权)”,应该是授权问题
请检查代理计算机上的 NuGet.Config 文件,通常它应该位于 C:\Users\{user}\AppData\Roaming\NuGet
,确保您已添加自定义提要并且为提要设置 packageSourceCredentials
。
请参阅以下文章了解更多信息:
更新:
根据官方文档,您必须为自定义提要设置凭据。使用下面的命令,它会将凭据存储在 Nuget.config 文件中。目前,没有办法不将凭据放入配置文件
与UserName/Password:
nuget sources add -name {your feed name} -source {your feed URL} -username {your domain username} -password {your domain password}
使用 PAT:(在上面第二个 link 中提到)。请参阅 this link 了解如何生成 PAT
nuget.exe sources add -name {your feed name} -source {your feed URL} -username {anything} -password {your PAT}
我们在 TFS 上实现了 CI 进程。此 CI 过程的第一步是 Nuget 还原。
2017-08-22T14:45:56.9497847Z [command]d:\path.5.0\NuGet.exe restore
-NonInteractive D:\somepath\project.sln -Verbosity Detailed
2017-08-22T14:46:03.5127467Z Error downloading 'dependency.4.1.1' from 'http://URL:80/tfs/TFSCollection/_packaging/path/dependency.4.121.1.nupkg'.
2017-08-22T14:46:03.5127467Z Response status code does not indicate success: 401 (Unauthorized).
但是当我尝试从命令行显示在日志中的相同命令时。正在成功安装依赖项。
我检查过这里有一个 nupkg:
'http://URL:80/tfs/TFSCollection/_packaging/path/dependency.4.121.1.nupkg'
我已经检查过以下命令在同一台机器上从命令行成功运行。
d:\path.5.0\NuGet.exe restore
-NonInteractive D:\somepath\project.sln -Verbosity Detailed
我们正计划向微软开票。但是,在我看来,有一个我们看不到的简单技巧。你有没有这样的经历。为什么相同的命令可以从命令行运行但不能从 TFS 运行。你有什么主意吗?
根据报错信息“401(未授权)”,应该是授权问题
请检查代理计算机上的 NuGet.Config 文件,通常它应该位于 C:\Users\{user}\AppData\Roaming\NuGet
,确保您已添加自定义提要并且为提要设置 packageSourceCredentials
。
请参阅以下文章了解更多信息:
更新:
根据官方文档,您必须为自定义提要设置凭据。使用下面的命令,它会将凭据存储在 Nuget.config 文件中。目前,没有办法不将凭据放入配置文件
与UserName/Password:
nuget sources add -name {your feed name} -source {your feed URL} -username {your domain username} -password {your domain password}
使用 PAT:(在上面第二个 link 中提到)。请参阅 this link 了解如何生成 PAT
nuget.exe sources add -name {your feed name} -source {your feed URL} -username {anything} -password {your PAT}