Quando utilizzo gli strumenti dotnet ef nella console di Gestione pacchetti di VS 2017, viene visualizzato un messaggio di avviso relativo alla necessità di aggiornare gli strumenti di EF Core:
PM> dotnet ef migrations list -s ../RideMonitorSite
The EF Core tools version '2.1.1-rtm-30846' is older than that of the runtime '2.1.2-rtm-30932'. Update the tools for the latest features and bug fixes.
20180831043252_Initial
Ma il mio file csproj ha questa voce:
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.1.2" />
</ItemGroup>
Ho confermato che la versione installata è, infatti, obsoleta:
PM> dotnet ef --version
Entity Framework Core .NET Command-line Tools
2.1.1-rtm-30846
Quindi cosa devo fare per aggiornare gli strumenti? A proposito, ho visto in altre risposte che un file global.json non aggiornato può causare questo problema. Ma non ho un file global.json da nessuna parte nella soluzione.
Utilizzare la riga di comando, Cmd o PowerShell per una versione specifica :
dotnet tool update --global dotnet-ef --version 3.1.0
o per l'utilizzo dell'ultima versione (funziona anche per la reinstallazione) :
dotnet tool update --global dotnet-ef
Ho rimandato questo problema al team di sviluppo su github . Risulta che questo è un problema noto negli attuali tool o pacchetti di nuget che vengono caricati quando si crea un sito AspNet Core basato su EF Core. È destinato a essere corretto in una versione futura.
Per ora, la soluzione alternativa è semplicemente ignorare l'avviso.
Viene proposta anche un'altra soluzione, che consiste nel tweaking del file csproj per definire esplicitamente la versione del metapacchetto AspNet Core - è fino a 2.1.3 mentre sto scrivendo questo - ma non ho potuto ottenere quell'approccio al lavoro; Continuavo a ricevere il messaggio di avviso.