Ubuntu下运行vsts-npm-auth报错:找不到VSS.NuGet.Authentication程序集
问题
在Ubuntu 22.04.3 LTS系统上使用Azure DevOps的npm认证工具vsts-npm-auth时,执行命令vsts-npm-auth -config .npmrc出现程序集缺失错误:
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'VSS.NuGet.Authentication, Version=0.42.1.0, Culture=neutral, PublicKeyToken=<my-token>' or one of its dependencies. File name: 'VSS.NuGet.Authentication, Version=0.42.1.0, Culture=neutral, PublicKeyToken=<my-token>' [ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'VSS.NuGet.Authentication, Version=0.42.1.0, Culture=neutral, PublicKeyToken=<my-token>' or one of its dependencies. File name: 'VSS.NuGet.Authentication, Version=0.42.1.0, Culture=neutral, PublicKeyToken=<my-token>'
已尝试重置工具、安装最新版vsts-npm-auth@0.43.0,问题仍未解决,同时找不到工具的源码仓库用于提交Issue。
解决方案
1. 检查并安装.NET运行时依赖
vsts-npm-auth基于.NET构建,Linux环境下需要对应版本的.NET Runtime支持:
- 执行以下命令安装.NET 6 Runtime(适配多数
vsts-npm-auth版本):sudo apt update sudo apt install -y dotnet-runtime-6.0 - 安装完成后重新运行
vsts-npm-auth命令测试。
2. 彻底清理并重装vsts-npm-auth
- 全局卸载工具:
npm uninstall -g vsts-npm-auth - 删除残留配置文件:
rm -rf ~/.vsts-npm-auth # 若需保留其他npm配置,可先备份.npmrc再清理 # mv ~/.npmrc ~/.npmrc.bak - 重新安装最新版本:
npm install -g vsts-npm-auth@latest
3. 手动配置npm认证(替代工具方案)
由于vsts-npm-auth在Linux环境存在兼容性问题,可手动通过个人访问令牌(PAT)配置:
- 在Azure DevOps中生成具有**Packaging (Read & Write)**权限的PAT。
- 将PAT转换为Base64编码:
echo -n "你的PAT值" | base64 - 在
~/.npmrc中添加以下配置(替换[组织名]、[Feed名]和[Base64编码的PAT])://pkgs.dev.azure.com/[组织名]/_packaging/[Feed名]/npm/registry/:username=任意字符串 //pkgs.dev.azure.com/[组织名]/_packaging/[Feed名]/npm/registry/:_password=[Base64编码的PAT] //pkgs.dev.azure.com/[组织名]/_packaging/[Feed名]/npm/registry/:email=npm requires email to be set but doesn't use the value //pkgs.dev.azure.com/[组织名]/_packaging/[Feed名]/npm/:username=任意字符串 //pkgs.dev.azure.com/[组织名]/_packaging/[Feed名]/npm/:_password=[Base64编码的PAT] //pkgs.dev.azure.com/[组织名]/_packaging/[Feed名]/npm/:email=npm requires email to be set but doesn't use the value
4. 提交Issue的路径
vsts-npm-auth的源码托管在Azure DevOps的Microsoft组织仓库:https://dev.azure.com/microsoft/DotNetCore/_git/NuGet.Authentication,可在此仓库的Issues板块提交问题,或通过Azure DevOps官方支持渠道反馈。
内容的提问来源于stack exchange,提问作者smartmouse
相关产品推荐
相关产品推荐

