我的RC1版本:
services.AddIdentity<User, Role>(options =>
{
// configure identity options
options.Password.RequireDigit = false;
options.Password.RequireLowercase = false;
options.Password.RequireUppercase = false;
options.Password.RequiredLength = 3;
options.User.AllowedUserNameCharacters = null;
})
.AddEntityFrameworkStores<JobsDbContext, int>()
.AddUserStore<UserStore<User, Role, JobsDbContext, int>>()
.AddRoleStore<RoleStore<Role, JobsDbContext, int>>()
.AddDefaultTokenProviders();
我在第一行特别是这一部分得到错误:
AddIdentity<User, Role>
错误是:
以下方法或属性之间的调用是不明确的:&#39; Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions.AddIdentity(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action)&#39;和&#39; Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions.AddIdentity(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action)&#39; JobsLedger..NETCoreApp,Version = v1.0 C:\ Users \ simon \ DEV \ JobsLedger-RC2-FIrstAttempt \ src \ JobsLedger \ Startup.cs 64 Active
我知道这是最前沿的,但如果有人可能对此有所了解,我全都听见了。
答案 0 :(得分:2)
请检查StackOverflow上的其他答案,有十几个问题询问完全相同的事情。
您的问题是混合使用RC1和RC2库。这不行!所有堆栈库(ASP.NET/MVC/EF/Identity)必须是1.0.0-rc2-final
,不是 1.0.0-rc2-*
或rc1。 阅读annoncements ,其中包含所有重大更改。
经常过时的软件包名称是一个问题(即Microsoft.AspNet.Mvc
已过时,您必须使用Microsoft.AspNetCore.Mvc
,因为第一个将拖动旧的依赖项。
您的其他一些依赖项(即Swashbuckle.Swagger等)仍可能引用旧的rc1库。它们都需要升级到最新的rc2版本。
您获得的错误消息是因为引用了两个具有不同名称的程序集,并且两个程序集在同一名称空间中具有相同的扩展方法,因此编译器不知道选择哪一个。