Sto cercando di aggiornare il mio progetto core di rete a 1.1-preview e core EF alla stessa versione. Il ripristino di project.json funziona correttamente, ma quando provo a utilizzare comandi come Add-Migration fallisce con questo errore:
Commands could not invoke on target framework 'netcoreapp1.1'.
Commands on ASP.NET Core and .NET Core projects currently only support .NET Core ('netcoreapp1.0') or .NET Framework (e.g. 'net451') target frameworks.
project.json della piccola console App da testare
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.1.0-preview1-*"
},
"Microsoft.EntityFrameworkCore": "1.1.0-preview1-final",
"Microsoft.EntityFrameworkCore.Design": "1.1.0-preview1-final"
},
"tools": {
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview3-final"
},
"frameworks": {
"netcoreapp1.1": {
"imports": "dnxcore50"
}
}
}
Sto usando Visual Studio 2015. Mi manca qualcosa o EF / .net Core 1.1 non è supportato dagli strumenti di Visual Studio in questo momento?
Su EF / .net 1.0 non riconosce già i comandi Add-Migration o dotnet-ef, quindi per farli funzionare devo inizializzare manualmente gli strumenti EF come descritto qui: https://stackoverflow.com/a/37876143 / 3506081
Ho anche provato a utilizzare Microsoft.EntityFrameworkCore.Tools.DotNet come suggerito nel post di rilascio ma ha lo stesso problema che non riconosce dotnet-ef.
Qualcuno ha problemi simili?
Ho scoperto che è possibile farlo utilizzando la riga di comando, quindi non all'interno della console di Gestione pacchetti di Visual Studio (strano non so perché). Tieni presente che i comandi non sono esattamente gli stessi, quindi per la creazione di una migrazione, ad esempio, questo è come lo faresti:
dotnet ef migrations add InitialMigration
Sto anche usando:
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final"
e rimosso i vecchi strumenti.
Credo che gli strumenti non siano ancora stati aggiornati per funzionare con Preview 1.1 di Core 1 di Entity Framework. Quindi, quello che ho fatto è di cambiare la versione di framework in netcoreapp1.0, fare i comandi che voglio eseguire sul database, quindi ripristinare l'ultimo framework mirato.
Questo thread fa luce su questa situazione.
Gli strumenti dipendono da una determinata versione di MSBuild, quindi assicurati che la versione degli strumenti abbia la stessa versione. L'ho eseguito su Mac OSX Sierra
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet">
<Version>1.0.0-msbuild1-final</Version>
</DotNetCliToolReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet">
<Version>1.0.0-msbuild1-final</Version>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools">
<Version>1.0.0-msbuild1-final</Version>
</PackageReference>
Dopo aver cambiato il file .csproj, assicurati di eseguire dotnet clean && dotnet restore
. Se fallisce, prova rm -rf obj/
Anche