2015-11-12 11 views
13

Sto tentando di eseguire una migrazione iniziale dopo aver aggiunto Entity Framework 7 al mio progetto Asp.Net 5. Sto seguendo questo documentation.L'attuale framework di destinazione runtime non è compatibile con il progetto

Nel mio project.json ho specificato:

"commands": { 
    "web": "Microsoft.AspNet.Server.Kestrel", 
    "ef": "EntityFramework.Commands" 
    }, 

    "frameworks": { 
    "dnxcore50": { } 
    } 

Sto tentando di eseguire il seguente comando nella directory del progetto tramite un prompt dei comandi:

dnx ef migrations add MyFirstMigration 

Ma io ottenere il seguente errore:

System.InvalidOperationException: The current runtime target framework is not compatible with ProjectName. The current runtime target framework: 'DNX, Version=v 4.5.1(dnx451) Please make sure the runtime matches a framework specified in project.json.

La cosa strana è che il mio project.json ha sicuramente come target dnxcore50. Inoltre ho controllato in global.json:

{ 
    "projects": [ "src", "test" ], 
    "sdk": { 
    "version": "1.0.0-beta8", 
    "architecture": "x86", 
    "runtime": "coreclr" 
    } 
} 

E il mio pacchetto dipendenze tutto beta8 di riferimento:

"dependencies": { 
    "EntityFramework.Commands": "7.0.0-beta8", 
    "EntityFramework.Core": "7.0.0-beta8", 
    "EntityFramework.SqlServer": "7.0.0-beta8", 
    "Hl7.Fhir.DSTU2": "0.90.2", 
    "Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta8", 
    "Microsoft.AspNet.Authentication.OpenIdConnect": "1.0.0-beta8", 
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta8", 
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-beta8", 
    "Microsoft.AspNet.Mvc": "6.0.0-beta8", 
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta8", 
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8", 
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta8", 
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta8", 
    "Microsoft.Dnx.Runtime": "1.0.0-beta8", 
    "Microsoft.Framework.Configuration.Json": "1.0.0-beta8", 
    "Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta8", 
    "Microsoft.Framework.Logging": "1.0.0-beta8", 
    "Microsoft.Framework.Logging.Console": "1.0.0-beta8", 
    "Microsoft.Framework.Logging.Debug": "1.0.0-beta8", 
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta8" 
    } 

risposta

17

È necessario aggiungere dnx451 ai quadri supportate del vostro progetto, o passare a una versione di .NET Nucleo.

"frameworks": { 
    "dnxcore50": { }, 
    "dnx451": { } 
    } 

o eseguire:

dnvm install latest -r coreclr

o

dnvm use default -r coreclr

+1

Non capisco il motivo per cui si sta lavorando ora. Ho già specificato 'dnxcore50' sotto i framework nel mio file' project.json'. Ho eseguito 'dnvm install latest -r coreclr' e ora funziona. Ma perché? Il comando ha dichiarato che avevo già installato l'ultimo runtime CLR di base. –

+1

L'installazione di coreclr fa 2 cose. Installa E usa. Ho aggiornato sopra per chiarire questo punto. In futuro, esegui 'dnvm list' per vedere quale runtime stai usando. Di default è selezionata la versione "CLR", non "CoreCLR" – natemcmaster