从RC1升级ASP.NET Core MVC RC2时出现标识错误

时间:2016-05-25 12:26:58

标签: asp.net-core asp.net-core-mvc asp.net-identity-3

我的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

我知道这是最前沿的,但如果有人可能对此有所了解,我全都听见了。

1 个答案:

答案 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版本。

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