从 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 版本。

您收到的错误消息是因为引用了两个具有不同名称的程序集,并且它们在同一名称空间中具有相同的扩展方法,因此编译器不知道选择哪一个。