2016-08-02 25 views
2

Ich arbeite mit ASP.NET Core 1.0 und versuche, meinen DbContext für Migrationen zu konfigurieren. Ich habe diese Ausnahme:Konnte den Typ ServiceCollectionExtensions nicht laden

Typ konnte nicht 'Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionExtensions' Laden von Assembly ‚Microsoft.Extensions.DependencyInjection.Abstractions, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = adb9793829ddae60 ".

Ich bin mir nicht sicher, warum ich diesen Fehler bekomme. Weiß jemand was ich vermisse?

project.json

{ 
    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.0", 
     "type": "platform" 
    }, 
    "Microsoft.ApplicationInsights.AspNetCore": "1.0.0", 
    "Microsoft.AspNetCore.Diagnostics": "1.0.0", 
    "Microsoft.AspNetCore.Mvc": "1.0.0", 
    "Microsoft.AspNetCore.Razor.Tools": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
    }, 
    "Microsoft.EntityFrameworkCore.Design": { 
     "type": "build", 
     "version": "1.0.0-preview2-final" 
    }, 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", 
    "Microsoft.AspNetCore.StaticFiles": "1.0.0", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0", 
    "Microsoft.Extensions.Logging": "1.0.0", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", 
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0", 
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final", 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview1-final", 
    }, 

    "tools": { 
    "BundlerMinifier.Core": "2.0.238", 
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final", 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final", 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 
    }, 

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
     ] 
    } 
    }, 

    "buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true 
    }, 

    "runtimeOptions": { 
    "configProperties": { 
     "System.GC.Server": true 
    } 
    }, 

    "publishOptions": { 
    "include": [ 
     "wwwroot", 
     "Views", 
     "Areas/**/Views", 
     "appsettings.json", 
     "web.config" 
    ] 
    }, 

    "scripts": { 
    "prepublish": [ "bower install", "dotnet bundle" ], 
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
} 

Startup.cs

using Microsoft.AspNetCore.Builder; 
using Microsoft.AspNetCore.Hosting; 
using Microsoft.Extensions.Configuration; 
using Microsoft.Extensions.DependencyInjection; 
using Microsoft.Extensions.Logging; 
using OdeToFood.Services; 
using OdeToFood.Entities; 
using Microsoft.EntityFrameworkCore; 

namespace OdeToFood 
{ 
    public class Startup 
    { 
     public Startup(IHostingEnvironment env) 
     { 
      var builder = new ConfigurationBuilder() 
       .SetBasePath(env.ContentRootPath) 
       .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) 
       .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) 
       .AddEnvironmentVariables(); 

      if (env.IsDevelopment()) 
      { 
       // This will push telemetry data through Application Insights pipeline faster, allowing you to view results immediately. 
       builder.AddApplicationInsightsSettings(developerMode: true); 
      } 
      Configuration = builder.Build(); 
     } 

     public IConfigurationRoot Configuration { get; } 

     // This method gets called by the runtime. Use this method to add services to the container. 
     public void ConfigureServices(IServiceCollection services) 
     { 
      // Add framework services. 

      services.AddMvc(); 

      services.AddEntityFrameworkSqlServer() 
       .AddDbContext<OdeToFoodDbContext>(options => options.UseSqlServer("@Server = (localdb)\\MSSQLLocalDB; Database = OdeToFood; Trusted_Connection = True; MultipleActiveResultSets = true")); 
      services.AddSingleton(provider => Configuration); 
      services.AddApplicationInsightsTelemetry(Configuration); 
      services.AddScoped<IRestaurantData, InMemoryRestaurantData>(); 

     } 

     // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 
     public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
     { 
      loggerFactory.AddConsole(Configuration.GetSection("Logging")); 
      loggerFactory.AddDebug(); 

      app.UseApplicationInsightsRequestTelemetry(); 

      if (env.IsDevelopment()) 
      { 
       app.UseDeveloperExceptionPage(); 
       app.UseBrowserLink(); 
      } 
      else 
      { 
       app.UseExceptionHandler("/Home/Error"); 
      } 

      app.UseApplicationInsightsExceptionTelemetry(); 

      app.UseStaticFiles(); 

      app.UseMvc(routes => 
      { 
       routes.MapRoute(
        name: "default", 
        template: "{controller=Home}/{action=Index}/{id?}"); 
      }); 
     } 
    } 
} 

dbContext.cs

using Microsoft.EntityFrameworkCore; 

namespace OdeToFood.Entities 
{ 
    public class OdeToFoodDbContext:DbContext 
    { 
     public DbSet<Restaurant> Restaurants { get; set; } 

     //protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 
     //{ 
     // optionsBuilder.UseSqlServer("@Server = (localdb)\\MSSQLLocalDB; Database = OdeToFood; Trusted_Connection = True; MultipleActiveResultSets = true"); 
     //} 
    } 
} 

Antwort

4

Ihre project.j Sohn ist eine alte Version dieses Pakets Referenzierung:

"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final" 

es sein sollte:

"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0"