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

.NET Core生成Identity脚手架遇CS0121歧义调用错误怎么解决?

解决Identity脚手架生成时AddDefaultTokenProviders方法歧义的CS0121错误

问题根源

这个错误是因为项目中引用了多个版本的Microsoft.AspNetCore.Identity相关包,或者同时引入了包含该方法的不同命名空间程序集,导致编译器无法确定调用哪个版本的方法。

具体解决步骤

1. 统一Identity相关包版本

打开你的entityFrameworkSQL.csproj文件,检查所有以Microsoft.AspNetCore.Identity开头的包(比如Microsoft.AspNetCore.Identity、Microsoft.AspNetCore.Identity.EntityFrameworkCore等),确保它们的版本完全一致。

举例:如果项目基于.NET 6,所有Identity相关包的版本都要统一为6.x.x;如果是.NET 7则统一为7.x.x,绝对不能混合不同大版本的包。

2. 显式指定方法的命名空间

如果统一版本后问题仍存在,在Program.cs中调用AddDefaultTokenProviders时,直接指定完整命名空间消除歧义:

// 替换原本的builder.Services.AddDefaultTokenProviders();
Microsoft.AspNetCore.Identity.IdentityBuilderExtensions.AddDefaultTokenProviders(builder.Services.AddIdentity<IdentityUser, IdentityRole>());

3. 移除冗余包引用

检查csproj文件,删除重复或不必要的Identity相关包引用,比如同时引用了Microsoft.AspNetCore.Identity和Microsoft.AspNetCore.Identity.UI但实际用不到其中一个的情况。

4. 清理NuGet缓存并重新还原

打开命令行,执行以下命令清理缓存并重新还原项目依赖:

dotnet nuget locals all --clear
dotnet restore

5. 重新生成Identity脚手架

完成上述操作后,再次运行脚手架生成命令:

dotnet aspnet-codegenerator identity -dc entityFramework.Models.MyBlogContext

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 13:32:04