Dopo aver aggiornato un progetto esistente in ASP.NET Core 1.1 e Entity Framework Core 1.1, utilizzare questo tutorial
Ho provato ad eseguire "Add-Migration MigrationName" in Package Management Console ma ho ricevuto un errore:
Il progetto di avvio 'src \ ProjectName' è un progetto ASP.NET Core o .NET Core per Visual Studio 2015. Questa versione degli strumenti della console Core Package Manager di Entity Framework non supporta questi tipi di progetti.
Sto usando VS 2015 Update 3.
Project.json
{
"dependencies": {
"CoursesManagement.DAL": "1.0.0-*",
"Microsoft.AspNetCore.Diagnostics": "1.1.1",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.1",
"Microsoft.AspNetCore.Mvc": "1.1.2",
"Microsoft.AspNetCore.Server.IISIntegration": "1.1.1",
"Microsoft.AspNetCore.Server.Kestrel": "1.1.1",
"Microsoft.AspNetCore.StaticFiles": "1.1.1",
"Microsoft.Extensions.Configuration.FileExtensions": "1.1.1",
"Microsoft.Extensions.Configuration.Json": "1.1.1",
"Microsoft.Extensions.Logging.Console": "1.1.1",
"Microsoft.EntityFrameworkCore.SqlServer": "1.1.1",
"Microsoft.NETCore.App": "1.1.1",
"Microsoft.EntityFrameworkCore": "1.1.1",
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.1.0",
"type": "build"
},
"Microsoft.EntityFrameworkCore.Design": "1.1.1"
},
"tools": {
"Microsoft.EntityFrameworkCore.Tools": "1.1.0",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
},
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
"runtimes": {
"win10-x64": {}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"publishOptions": {
"include": [
"wwwroot",
"web.config"
]
},
"scripts": {
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
global.json
{
"projects": [ "src" ],
"sdk": {
"version": "1.0.0-preview2-003131"
}
}
Come menzionato in questo blog,
Ora stiamo incoraggiando tutti a migrare a MSBuild e csproj da project.json. Come detto sopra, non supporteremo nessuno dei nuovi strumenti .NET Core in Visual Studio 2015. Inoltre, non stiamo aggiornando il progetto di Visual Studio 2015. strumenti basati su json.
Si sta utilizzando la versione 1.1.0
pacchetto EFCore.Tools
che non supporta project.json. Gli strumenti per project.json non hanno mai raggiunto RTM. La versione di anteprima adatta da utilizzare per i pacchetti EF Core 1.1 è EFCore.Tools
1.1.0-preview4-final
.
Inoltre, come menzionato in altre risposte, se si desidera utilizzare i comandi di PowerShell, è necessario installare il pacchetto EFCore.Tools
, ma se si desidera dotnet ef
è necessario installare EFCore.Tools.DotNet
(versione 1.1.0-preview3-final
da preview4 -final aveva un problema minore).
Come notato sopra, non ci saranno aggiornamenti per gli strumenti project.json-based. È comunque possibile utilizzare il pacchetto di anteprima sopra sebbene l'opzione migliore sarebbe quella di migrare a VS2017 csproj quando possibile.
Come da annuncio ufficiale del team di ASP.NET Core (vedi GitHub ) il pacchetto Microsoft.EntityFrameworkCore.Tools
è stato suddiviso in Microsoft.EntityFrameworkCore.Tools
e Microsoft.EntityFrameworkCore.Tools.DotNet
.
È necessario fare riferimento a quello successivo, se si desidera continuare a utilizzare i comandi dotnet ef
. Se si desidera utilizzare solo i vecchi comandi in stile powershell ( Database-Update
, Add-Migration
, ecc.) Il vecchio pacchetto dovrebbe essere sufficiente.
Quando si fa riferimento a Microsoft.EntityFrameworkCore.Tools.DotNet``there is no need to also reference ``Microsoft.EntityFrameworkCore.Tools
.
Se si utilizza ASP.NET Core, è necessario aggiornare la sezione strumenti di project.json per utilizzare il nuovo pacchetto Microsoft.EntityFrameworkCore.Tools.DotNet (anziché il pacchetto Microsoft.EntityFrameworkCore.Tools).
"tools": { "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final" },
Con il progredire della progettazione di .NET CLI Tools, è diventato necessario separare gli strumenti ef dotnet in questo pacchetto separato. Microsoft.EntityFrameworkCore.Tools è ancora utilizzato per i comandi della console di Package Manager.
Ora che EF Core è stato rilasciato dovrebbe essere ovviamente
"tools": {
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0"
},
Si noti inoltre che gli strumenti non condividono la versione con l'EF stesso. L'ultima versione degli strumenti è ancora 1.0.0 per Tools.DotNet (vedi Nuget ) e 1.1.0 per Strumenti (vedi di nuovo Nuget ).