You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux系统下为Rider配置Azure DevOps Artifacts源的问题求助

解决Linux下Rider配置Azure DevOps Artifacts NuGet源的401授权问题

我之前在Linux Mint 22(基于Ubuntu 24.04)上用Rider配置Azure DevOps Artifacts源时,踩过和你一模一样的坑——反复弹出凭证输入窗口、日志报401未授权,试了界面添加源、复制NuGet配置文件都没用,最后靠这几个亲测有效的方法搞定了,分享给你:

方案1:手动配置NuGet.config + 安装Azure凭证提供程序

Linux下NuGet默认的凭证存储机制和Windows不同,Rider经常无法正确读取密钥环里的凭证,用Azure官方的凭证提供程序能解决这个问题:

  1. 安装Azure Artifacts Credential Provider:
    你可以从微软官方仓库下载Microsoft.NuGet.CredentialProvider.tar.gz压缩包,解压后将整个plugins目录下的内容复制到用户目录的~/.nuget/plugins/netcore文件夹中(如果没有这个目录就手动创建)。
  2. 编辑NuGet.config文件:
    找到用户目录下的.nuget/NuGet/NuGet.config(没有的话直接新建),添加以下配置:
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <!-- 替换成你的Azure DevOps源地址 -->
        <add key="AzureDevOps-Frameworks" value="https://[DEVOPS_URL]/_packaging/Frameworks/nuget/v3/index.json" />
      </packageSources>
      <packageSourceCredentials>
        <AzureDevOps-Frameworks>
          <!-- Username可以填任意非空字符串,比如你的邮箱,Azure DevOps实际只认PAT -->
          <add key="Username" value="your-email@example.com" />
          <!-- 替换成你的Azure DevOps PAT令牌 -->
          <add key="ClearTextPassword" value="your-azure-devops-pat-token" />
        </AzureDevOps-Frameworks>
      </packageSourceCredentials>
    </configuration>
    
  3. 重启Rider,尝试恢复NuGet包,这时候应该不会再弹出凭证窗口,也能正常下载工件了。

方案2:用dotnet CLI直接配置源(最省心)

Rider默认会使用系统的dotnet环境,用dotnet CLI配置的源会被Rider自动识别,而且能避开凭证存储的坑:

  1. 打开终端,执行以下命令添加源(替换括号里的内容):
    dotnet nuget add source https://[DEVOPS_URL]/_packaging/Frameworks/nuget/v3/index.json \
    --name AzureDevOps-Frameworks \
    --username any-non-empty-string \
    --password your-azure-devops-pat-token \
    --store-password-in-clear-text
    
    这里的--store-password-in-clear-text在Linux下是必须的——因为默认的密钥环权限问题,Rider可能无法读取加密存储的凭证,明文存储反而能正常工作。
  2. 执行完命令后重启Rider,直接尝试恢复包即可,不需要再在Rider界面里手动添加源。

方案3:调整Rider的NuGet设置

有时候Rider会使用内置的NuGet版本,导致无法读取系统配置,需要调整:

  1. 打开Rider的设置(File → Settings → NuGet → NuGet Settings)
  2. 在NuGet executable选项中,选择Use system NuGet(推荐),放弃使用内置的NuGet版本
  3. 确保Credential providers部分勾选了Use NuGet credential providers from NuGet plugins directory

为什么之前的方法失效?

你遇到的401错误核心原因是Linux下NuGet的凭证逻辑:

  • Windows下NuGet用系统凭据管理器存储凭证,但Linux下默认用密钥环,而Rider的权限经常无法访问密钥环里的内容
  • 直接复制配置文件的话,没有配套的凭证提供程序处理Azure DevOps的授权逻辑,导致凭证无法被正确传递

按照上面的方案操作,应该能彻底解决反复要求凭证和无法下载工件的问题,我自己用Rider 2024版本测试过,完全适配Linux Mint 22环境。

内容的提问来源于stack exchange,提问作者stadi6661

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 06:34:28