Gre*_*rdt 2 continuous-integration nuget jenkins azure-devops azure-artifacts
我们有一个在 Jenkins 中工作的 CI 构建。我们在 Azure DevOps 中有一个 NuGet 包源,并且401 Unauthorized在构建期间恢复 NuGet 包时出现错误:
https://pkgs.dev.azure.com/X/_packaging/FeedName@Release/nuget/v3/index.json:无法加载源https://pkgs.dev.azure.com/X/的服务索引_packaging/FeedName@Release/nuget/v3/index.json。响应状态代码不表示成功:401(未授权)。
詹金斯设置:
我在 Jenkins 机器上安装了 NuGet Credential Provider,但我在以我自己的身份登录时安装了它。我复制了我在笔记本电脑上采取的步骤来解决同样的问题。我的笔记本电脑正在工作。Jenkins 服务器不是,我认为它与不适用于“本地系统”帐户的 NuGet 凭据提供程序有关,但不知道如何解决此问题。
构建由 PowerShell 脚本控制,NuGet 恢复命令如下所示:
& "$solutionPath"\.nuget\NuGet.exe restore "$solutionFile"
Run Code Online (Sandbox Code Playgroud)
$solutionPath 是 Visual Studio 的 .sln 文件所在的文件夹$solutionFile 是 .sln 文件的确切文件名在阅读如何在 VSTS nuget restore 中为外部 nuget feeds 指定凭据后,我还通过以下方式向本地 NuGet 安装添加了一个新的“源”:
.\.nuget\NuGet.exe sources add -name "FeedName" -source "https://pkgs.dev.azure.com/X/_packaging/FeedName@Release/nuget/v3/index.json" -username <my username> -password <my personal access token> -configfile .\.nuget\NuGet.config
Run Code Online (Sandbox Code Playgroud)
我试过的用户名:
.,像詹金斯的配置需要与Azure中的DevOps认证通过TFVC获取最新版本的我们的代码时该-password参数是对 Azure DevOps 工件源具有读/写权限的个人访问令牌的复制和粘贴。
但同样,当我这样做时,我作为我的用户名远程进入 Jenkins 机器,我仍然遇到同样的问题。
401 Unauthorized当包来自 Azure DevOps 工件 NuGet 源时,如何在 Jenkins 构建期间恢复 NuGet 包时修复?
小智 6
尝试使用个人访问令牌 (PAT) 的名称作为用户名。这是您在创建 PAT 时为其指定的名称。
编辑.nuget/NuGet.config并添加以下代码:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<packageSources>
<add key="MyPackages" value="https://pkgs.dev.azure.com/OrganizationName/_packaging/FeedName@Release/nuget/v3/index.json" />
</packageSources>
<packageSourceCredentials>
<!-- Tag name 'MyPackages' matches 'key' attribute under packageSources -->
<MyPackages>
<!-- Username is the name you gave your Personal Access Token in Azure -->
<add key="Username" value="NameOfPersonalAccessToken" />
<!-- Choose one of the tags below: -->
<!-- Use Password if PAT is encrypted -->
<add key="Password" value="EncryptedPersonalAccessTokenGoesHere" />
<!-- Use ClearTextPassword if PAT is encrypted -->
<add key="ClearTextPassword" value="PlainTextPersonalAccessTokenGoesHere" />
</MyPackages>
</packageSourceCredentials>
</configuration>
Run Code Online (Sandbox Code Playgroud)
更多信息:https : //docs.microsoft.com/en-us/nuget/reference/nuget-config-file#packagesourcecredentials
| 归档时间: |
|
| 查看次数: |
2215 次 |
| 最近记录: |