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

dotnet run --project触发NuGet 401未授权,如何传入授权参数?

解决dotnet run命令NuGet未授权(401)问题

原因说明

Rider或Visual Studio会自动读取系统凭据存储(比如Windows凭据管理器、macOS钥匙串)里的NuGet私有源凭据,但命令行环境可能没正确加载这些凭据,导致恢复包时触发401错误。

解决方案

1. 手动配置NuGet凭据文件

打开用户目录下的NuGet配置文件:

  • Windows:%userprofile%\.nuget\NuGet\NuGet.Config
  • macOS/Linux:~/.nuget/NuGet/NuGet.Config

在文件中添加或修改私有源的凭据配置,示例如下:

<packageSources>
  <!-- 先确保私有源已添加 -->
  <add key="你的私有源名称" value="https://你的私有源地址/v3/index.json" />
</packageSources>
<packageSourceCredentials>
  <你的私有源名称>
    <add key="Username" value="你的用户名" />
    <add key="ClearTextPassword" value="你的API密钥或密码" />
  </你的私有源名称>
</packageSourceCredentials>

保存后重新运行dotnet run命令即可。

2. 用dotnet命令添加凭据

不想手动改配置文件的话,直接用命令行操作:

  1. 先添加私有源(如果还没加):
    dotnet nuget add source https://你的私有源地址/v3/index.json --name 你的私有源名称
  2. 设置此源的凭据:
    dotnet nuget update source 你的私有源名称 --username 你的用户名 --password 你的API密钥或密码 --store-password-in-clear-text

3. 临时命令行传参(仅临时测试用)

如果只是临时跑一次,可通过环境变量或build参数传递,注意这种方式不安全,别在公共环境使用:

  • 方式一:用环境变量
    NUGET_CREDENTIALPROVIDER_SESSIONTOKEN=你的API密钥 dotnet run --project myProjectXYZ
  • 方式二:先build再run,传递NuGet参数
    dotnet build --project myProjectXYZ /p:NuGetUsername=你的用户名 /p:NuGetPassword=你的API密钥 && dotnet run --project myProjectXYZ

4. 检查系统凭据存储

  • Windows:打开「凭据管理器」→「Windows凭据」,找到对应私有源的条目,确认凭据有效。
  • macOS:打开「钥匙串访问」,搜索NuGet相关条目,确保命令行有读取权限。

验证步骤

先执行dotnet restore --project myProjectXYZ测试包恢复是否正常,restore成功后再运行dotnet run命令即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 09:57:46