Я настроил запуск проекта для консольного приложения. Когда я изменил стартовый проект на приложение API, ошибка исчезла.
аюсь запустить команду Add-Migration InitialCreate из консоли диспетчера пакетов из приложения .NET Core 2.0 MVC. После просмотра всех возможных источников все еще не удалось решить проблему с описанием ошибки как:
PM> Add-Migration InitialCreate
Произошла ошибка при вызове метода BuildWebHost для класса «Программа». Продолжая без поставщика услуг приложения. Ошибка: метод не найден: 'System.Collections.Generic.Dictionary2<System.String,System.Object> Microsoft.Extensions.Configuration.IConfigurationBuilder.get_Properties()'. System.IO.FileLoadException: Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.2.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) File name: 'System.Diagnostics.DiagnosticSource, Version=4.0.2.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' at Microsoft.EntityFrameworkCore.Infrastructure.EntityFrameworkServicesBuilder.TryAddCoreServices() at Microsoft.Extensions.DependencyInjection.SqlServerServiceCollectionExtensions.AddEntityFrameworkSqlServer(IServiceCollection serviceCollection) at Microsoft.EntityFrameworkCore.Infrastructure.Internal.SqlServerOptionsExtension.ApplyServices(IServiceCollection services) at Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.ApplyServices(IDbContextOptions options, ServiceCollection services) at Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.<>c__DisplayClass4_0.<GetOrAdd>b__2(Int64 k) at System.Collections.Concurrent.ConcurrentDictionary
2.GetOrAdd (клавиша TKey, Func2 valueFactory) at Microsoft.EntityFrameworkCore.DbContext..ctor(DbContextOptions options) at MvcMovie.Models.MvcMovieContext..ctor(DbContextOptions
1 вариант) в C: \ Users \ Neha \ source \ repos \ MvcMovie \ MvcMovie \ Data \ MvcMovieContext.cs: строка 12 в MvcMovie.ToDoContextFactory.CreateDbContext (String [] args) в C: \ Users \ Neha \ source \ repos \ MvcMovie \ MvcMovie \ ToDoContextFactory.cs: строка 17 в Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext (Func1 factory) at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(String contextType) at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration(String name, String outputDir, String contextType) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String name, String outputDir, String contextType) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0
1.b__0 () в Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute (Действие действия)
Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.2.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Мой Program.cs выглядит так:
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseApplicationInsights()
.Build();
host.Run();
}
public static IWebHost BuildWebHost(string[] args) =>
new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
}
Также добавлена реализация для
IDesignTimeDbContextFactory
public class ToDoContextFactory : IDesignTimeDbContextFactory<MvcMovieContext>
{
public MvcMovieContext CreateDbContext(string[] args)
{
var builder = new DbContextOptionsBuilder<MvcMovieContext>();
builder.UseSqlServer("Server=(local);Database=MvcMovieContext;Trusted_Connection=True;MultipleActiveResultSets=true");
return new MvcMovieContext(builder.Options);
}
}
Может кто-нибудь помочь мне с описательной пошаговой процедурой добавления инструментов модели и Entity Framework в приложение .NET Core2.0.