我们已将项目从Asp.Net核心RC1迁移到RC2。迁移后,我们在以下位置遇到2个编译错误。
First Issue位于startup.cs中,“以下方法或属性之间的调用不明确:”
public void ConfigureServices(IServiceCollection services)
{
...
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
...
}
错误详情:
Error CS0121 The call is ambiguous between the following methods or properties: 'Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions.AddIdentity<TUser, TRole>(Microsoft.Extensions.DependencyInjection.IServiceCollection)' and 'Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions.AddIdentity<TUser, TRole>(Microsoft.Extensions.DependencyInjection.IServiceCollection)' Firebolt.SecurityService..NETCoreApp,Version=v1.0 C:\Krishnan\RSI\SourceCode\Bluesky Developement\BlueSky Development\Firebolt.Security\src\Firebolt.Security\Startup.cs 58 Active
第二期:
[Microsoft.Data.Entity.Infrastructure.DbContext(typeof(ApplicationDbContext))]
[Migration("00000000000000_CreateIdentitySchema")]
partial class CreateIdentitySchema
{
protected override void BuildTargetModel(Microsoft.EntityFrameworkCore.ModelBuilder modelBuilder)
{
...
}
错误详情:
Error CS0115 'CreateIdentitySchema.BuildTargetModel(ModelBuilder)': no suitable method found to override Firebolt.SecurityService..NETCoreApp,Version=v1.0 C:\Krishnan\RSI\SourceCode\Bluesky Developement\BlueSky Development\Firebolt.Security\src\Firebolt.Security\Migrations\00000000000000_CreateIdentitySchema.Designer.cs 15 Active
这两个问题的解决方法是什么?任何想法
答案 0 :(得分:2)
我找到了两个问题的解决方案。我在这里发布它可能对其他人有用
第一期
Error CS0121 The call is ambiguous between the following methods or properties: 'Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions.AddIdentity<TUser, TRole>(Microsoft.Extensions.DependencyInjection.IServiceCollection)' and 'Microsoft.Extensions.DependencyInjection.IdentityServiceCollectionExtensions.AddIdentity<TUser, TRole>(Microsoft.Extensions.DependencyInjection.IServiceCollection)' Firebolt.SecurityService..NETCoreApp,Version=v1.0
问题在于Project.json中的以下2个配置条目。我用以下2替换了现有的条目,它解决了问题
"Microsoft.AspNetCore.Identity": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0-rc2-final",
第二期
Error CS0115 'CreateIdentitySchema.BuildTargetModel(ModelBuilder)': no suitable method found to override Firebolt.SecurityService..NETCoreApp,Version=v1.0
在所有与迁移相关的类
中查找/替换现有的使用名称空间using Microsoft.Data.Entity with using Microsoft.EntityFrameworkCore
答案 1 :(得分:2)
我在使用dot net core 2.0的迁移中也遇到了这个错误。希望这可以帮助某人。
错误CS0115'init.BuildTargetModel(ModelBuilder)':找不到合适的方法来覆盖
在重构之后,我的迁移类被移动了一个新的命名空间。我已经将它们从MyApp.Migrations
移到了MyApp.Web.Migrations
,而dot net则不喜欢它。
我将他们移回MyApp.Migrations
并且他们停止抱怨。
答案 2 :(得分:0)
我有与@span相同的解决方案 迁移已从 .Web。项目移至 .Database。项目。但是我的迁移仍然在Web中。它导致错误。按照@span解决方案,我只是更改了迁移的名称空间,它可以正常工作!
答案 3 :(得分:0)