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

如何授权Heroku部署构建访问Azure Artifacts私有包

解决Heroku部署ASP.NET项目访问Azure Artifacts私有NuGet包的授权问题

核心问题分析

你遇到的NU1301错误和之前的凭据解析错误,根源在于两点:

  • nuget.config里的环境变量语法不符合Heroku Linux构建环境的要求
  • 存在nuget.config位置不当、PAT权限配置不足的潜在问题

分步解决方案

1. 修正nuget.config的环境变量语法

Heroku构建环境基于Linux,环境变量需用$env:变量名的POSIX风格引用,而非Windows的%变量名%格式。修改凭据配置如下:

<packageSourceCredentials>
    <MySourceName>
        <add key="Username" value="any-non-empty-string" /> <!-- Azure Artifacts不校验用户名,填任意非空值即可 -->
        <add key="ClearTextPassword" value="$env:HerokuPersonalAccessToken" />
    </MySourceName>
</packageSourceCredentials>

2. 调整nuget.config的存放位置

将nuget.config移动到解决方案根目录,而非单个API项目目录下,确保Heroku构建整个解决方案时能正确读取配置。

3. 在Heroku中配置环境变量

  1. 登录Heroku控制台进入你的项目
  2. 切换到「Settings」标签页,找到「Config Vars」区域
  3. 添加新变量:
    • KEY: HerokuPersonalAccessToken
    • VALUE: 你在Azure生成的PAT(需确保该PAT拥有Packaging Read权限)

4. 验证Azure PAT的权限

在Azure DevOps中检查你的PAT:

  • 确认PAT的作用域包含「Packaging (Read)」权限
  • 检查PAT未过期,且关联账户有权访问目标私有包源

5. 触发测试构建

推送代码到GitHub生产分支,触发Heroku自动构建,此时应该能正常拉取Azure Artifacts的私有包。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:15:32