2016-07-14 35 views
11

Ho creato un nuovo progetto .NET Core con il comando dotnet new -t lib. È una libreria di classi per il mio contesto EF. Questo è il mio project.json:EF 7 Errore strumenti .NET Core

{ 
    "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" 
     } 
    } 
    } 
} 

Quando eseguo dotnet restore comando sto ottenendo questo errore:

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: 

Come posso usare EF Codice Prima con netstandard1.6?

+0

Attenzione che utilizzando gli utensili per Enity Framework non supporta ancora le librerie di classi Così facendo 'dotnet ef' fallirà. Vedere https://docs.efproject.net/en/latest/miscellaneous/cli/dotnet.html#targeting-class-library-projects-is-not-supported per soluzioni alternative. –

+0

@JohanB Viene in parte risolto usando la soluzione '--startup-project', ad esempio:' dotnet ef --startup-project ../ProjectThatCanRunCommand/ migrations add InitDb', dai un'occhiata a questo: [Parametrizza le directory usate da dotnet-ef] (https://github.com/aspnet/EntityFramework/pull/5680) –

+0

@HamidMosalla Questa è una soluzione che stavo cercando. Potresti aggiornare la tua risposta con questo commento in modo da poterlo contrassegnare come una risposta corretta? – alexxjk

risposta

14

Secondo this, Il "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" dovrebbe essere registrati in una sezione strumenti in project.json:

{ 
"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" 
} 
} 

Inoltre è una buona idea usare imports, perché alcuni dei dipendenze del Nucleo EF ancora non lo sanno supporto .NET Standard, ma nel tuo caso ho controllato e funziona anche senza importazioni.

Per quanto riguarda il commento di Johan B, in cui si afferma strumenti EF non può essere utilizzato con le librerie di classi, per ora, è in parte affrontato utilizzando --startup-project soluzione, ad esempio: dotnet ef --startup-project ../ProjectThatCanRunCommand/ migrations add InitDb, maggiori informazioni: Parameterize directories used by dotnet-ef.

Problemi correlati