2016-07-14 4 views
11

Ich habe ein neues .NET Core-Projekt mit dotnet new -t lib Befehl erstellt. Es ist eine Klassenbibliothek für meinen EF-Kontext. Das ist mein project.json:EF 7 .NET Core Tools Fehler

{ 
    "version": "1.0.0-*", 
    "buildOptions": { 
    "debugType": "portable" 
    }, 
    "dependencies": {}, 
    "frameworks": { 
    "netstandard1.6": { 
     "dependencies": { 
     "NETStandard.Library": "1.6.0", 
     "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0", 
     "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 
     } 
    } 
    } 
} 

Wenn ich dotnet restore Befehl ausführen ich diesen Fehler:

error: Package Microsoft.EntityFrameworkCore.Tools 1.0.0-preview2-final is not compatible with netstandard1.6 (.NETStandard,Version=v1.6). Package Microsoft.EntityFrameworkCore.Tools 1.0.0-preview2-final supports: 

Wie ich EF-Code zunächst mit netstandard1.6 verwenden kann?

+0

Beachten Sie, dass die Werkzeuge mit für Enity Framework unterstützt Klassenbibliotheken noch nicht. Daher wird 'dotnet ef' fehlschlagen. Siehe https://docs.efproject.net/en/latest/miscellaneous/cli/dotnet.html#targeting-class-library-projects-is-not-supported für Problemumgehungen. –

+0

@JohanB Es wird teilweise mit '--startup-project' Abhilfe gefunden, zum Beispiel:' dotnet ef --startup-project ../ProjectThatCanRunCommand/ migrations add 'InitDb', schau dir das an: [Parametriere Verzeichnisse, die von dotnet-ef] (https://github.com/aspnet/EntityFramework/pull/5680) –

+0

@HamidMosalla Dies ist eine Lösung, nach der ich gesucht habe. Könnten Sie Ihre Antwort mit diesem Kommentar aktualisieren, damit ich sie als richtige Antwort markieren kann? – alexxjk

Antwort

14

Nach this, The "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" sollte in einem Werkzeugabschnitt in project.json registriert werden:

{ 
"version": "1.0.0-*", 
"description": "Class Library", 
"frameworks": { 
    "netstandard1.6": { 
    "imports": [ 
    "dnxcore50" 
    ] 
} 
}, 

"dependencies": { 
"NETStandard.Library": "1.6.0", 
"Microsoft.EntityFrameworkCore": "1.0.0", 
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0" 
}, 
"tools": { 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 
} 
} 

Auch ist es eine gute Idee, imports zu verwenden, da einige der Abhängigkeiten des EF-Core noch nicht tun Unterstütze .NETStandard, aber in deinem Fall habe ich überprüft und es funktioniert auch ohne Importe.

In Bezug auf die Bemerkung des Johan B, die ef Tools Zustände können jetzt nicht mit Klassenbibliotheken verwendet werden, ist es teilweise durch die Verwendung --startup-project Abhilfe angesprochen wird, zum Beispiel: dotnet ef --startup-project ../ProjectThatCanRunCommand/ migrations add InitDb, weitere Informationen: Parameterize directories used by dotnet-ef.

Verwandte Themen