.NET Core项目引用Azure Artifacts类库时出现NU1605包降级错误
错误原因
这是典型的NuGet依赖版本冲突触发的NU1605错误,触发逻辑非常明确:
- 你引用的
Authorization类库依赖Microsoft.Identity.Web 1.10.0,而该版本的Microsoft.Identity.Web自身对Azure.Identity的最低版本要求为**>= 1.3.0** - 你的第二个类库、以及当前
RepositoryLayer项目中直接引用的Azure.Identity版本仅为1.2.3,低于依赖链要求的最低版本,NuGet检测到被动降级风险就会抛出该错误。
解决方案
按优先级从高到低推荐以下方案:
- 方案1(最稳妥):将第二个类库、以及
RepositoryLayer项目中引用的Azure.Identity版本升级到1.3.0或更高的兼容版本,匹配Microsoft.Identity.Web的依赖要求即可解决报错。 - 方案2(兼容特殊场景):如果你的业务逻辑必须使用
Azure.Identity 1.2.3版本,可以在RepositoryLayer.csproj的<PropertyGroup>节点中添加配置关闭NU1605告警:
<NoWarn>NU1605</NoWarn>
注意:该方案仅屏蔽报错,运行时可能因为版本不兼容出现未知异常,非必要不建议使用。
- 方案3(类库层面优化):如果你不希望修改最终项目的配置,可以在推送至Azure Artifacts的两个类库中统一
Azure.Identity的依赖版本,避免传递依赖出现版本差。
另外注意检查类库拼写:错误日志中显示的依赖类库名为Authorisation,你创建的类库名为Authorization,确认没有拼写错误导致引用了错误的类库版本。
内容的提问来源于stack exchange,提问作者Mr Perfect
相关产品推荐
相关产品推荐

