从 RC1 升级到 ASP.NET Core MVC RC2 时出现身份错误
Identity error when to ASP.NET Core MVC RC2 upgrading from RC1
我的 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>
错误是:
The call is ambiguous between the following methods or properties: 'Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions.AddIdentity(Microsoft.Extensions.DependencyInjection.IServiceCollection, System.Action)' and 'Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions.AddIdentity(Microsoft.Extensions.DependencyInjection.IServiceCollection, System.Action)' JobsLedger..NETCoreApp,Version=v1.0 C:\Users\simon\DEV\JobsLedger-RC2-FIrstAttempt\src\JobsLedger\Startup.cs 64 Active
我知道这是最前沿的,但如果有人对此有想法,我会洗耳恭听..
请检查 Whosebug 上的其他答案,有很多问题问完全相同的事情。
您的问题是混合了 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 版本。
您收到的错误消息是因为引用了两个具有不同名称的程序集,并且它们在同一名称空间中具有相同的扩展方法,因此编译器不知道选择哪一个。
我的 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>
错误是:
The call is ambiguous between the following methods or properties: 'Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions.AddIdentity(Microsoft.Extensions.DependencyInjection.IServiceCollection, System.Action)' and 'Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions.AddIdentity(Microsoft.Extensions.DependencyInjection.IServiceCollection, System.Action)' JobsLedger..NETCoreApp,Version=v1.0 C:\Users\simon\DEV\JobsLedger-RC2-FIrstAttempt\src\JobsLedger\Startup.cs 64 Active
我知道这是最前沿的,但如果有人对此有想法,我会洗耳恭听..
请检查 Whosebug 上的其他答案,有很多问题问完全相同的事情。
您的问题是混合了 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 版本。
您收到的错误消息是因为引用了两个具有不同名称的程序集,并且它们在同一名称空间中具有相同的扩展方法,因此编译器不知道选择哪一个。