Questa è la prima volta che faccio esperimenti con EF Core, ASP Net Core e Librerie di classi portatili con VS2015. Giusto per dire che mi sto frustrando.Tentativo di installare EF Core con il targeting per librerie di classi portatili .Net 4.6.1
Desidero creare una libreria in cui sia possibile installare EntityFramework.Core. Questa libreria deve essere utilizzata in un'applicazione WPF e in un'applicazione Web Core ASP NET, ignorando per ora qualsiasi buon concetto di applicazione a livelli. Il mio pensiero era di creare una libreria di classi portatili.
Utilizzando il modello di progetto in cui a indirizzare .NET 4.6 e ASP Net Nucleo ...
ottengo un progetto con una classe e un file project.json come segue:
{
"supports": {
"net46.app": {},
"dnxcore50.app": {}
},
"dependencies": {
"Microsoft.NETCore": "5.0.0",
"Microsoft.NETCore.Portable.Compatibility": "1.0.0"
},
"frameworks": {
"dotnet": {
"imports": "portable-net452"
}
}
}
Ora, quando installo pacchetto EntityFramework.Core da NuGet ...
... ottengo il seguente output:
Restoring packages for 'Acme.PCLEFClassLib'.
Restoring packages for K:\TFS\TestApps\Projects\DotNetCore\Acme.PCL1\Acme.PCL1\project.json...
Detected package downgrade: System.Reflection from 4.1.0-beta-23225 to 4.0.10
Acme.PCLEFClassLib (>= 1.0.0) -> EntityFramework.Core (>= 7.0.0-rc1-final) -> Microsoft.Extensions.DependencyInjection.Abstractions (>= 1.0.0-rc1-final) -> System.Reflection (>= 4.1.0-beta-23225)
Acme.PCLEFClassLib (>= 1.0.0) -> EntityFramework.Core (>= 7.0.0-rc1-final) -> System.Reflection (>= 4.0.10)
Detected package downgrade: System.Reflection from 4.1.0-beta-23225 to 4.0.10
Acme.PCLEFClassLib (>= 1.0.0) -> EntityFramework.Core (>= 7.0.0-rc1-final) -> Microsoft.Extensions.Logging.Abstractions (>= 1.0.0-rc1-final) -> System.Reflection (>= 4.1.0-beta-23225)
Acme.PCLEFClassLib (>= 1.0.0) -> EntityFramework.Core (>= 7.0.0-rc1-final) -> System.Reflection (>= 4.0.10)
Version conflict detected for System.Collections.
Acme.PCLEFClassLib (>= 1.0.0) -> EntityFramework.Core (>= 7.0.0-rc1-final) -> System.Collections (>= 4.0.11-beta-23516)
Acme.PCLEFClassLib (>= 1.0.0) -> Microsoft.NETCore.Portable.Compatibility (>= 1.0.0) -> Microsoft.NETCore.Runtime (>= 1.0.0) -> Microsoft.NETCore.Runtime.CoreCLR-x86 (>= 1.0.0) -> System.Collections (= 4.0.10).
EntityFramework.Core 7.0.0-rc1-final is not compatible with .NETPlatform,Version=v5.0.
Some packages are not compatible with .NETPlatform,Version=v5.0.
Ix-Async 1.2.5 is not compatible with DNXCore,Version=v5.0.
Remotion.Linq 2.0.1 is not compatible with DNXCore,Version=v5.0.
Some packages are not compatible with DNXCore,Version=v5.0.
Ix-Async 1.2.5 is not compatible with DNXCore,Version=v5.0 (win7-x86).
Remotion.Linq 2.0.1 is not compatible with DNXCore,Version=v5.0 (win7-x86).
Some packages are not compatible with DNXCore,Version=v5.0 (win7-x86).
Ix-Async 1.2.5 is not compatible with DNXCore,Version=v5.0 (win7-x64).
Remotion.Linq 2.0.1 is not compatible with DNXCore,Version=v5.0 (win7-x64).
Some packages are not compatible with DNXCore,Version=v5.0 (win7-x64).
Package restore failed for 'Acme.PCLEFClassLib'.
Package restore failed. Rolling back package changes for 'Acme.PCLEFClassLib'.
========== Finished ==========
E 'effettivamente possibile installare EF Nucleo in una libreria di classi Portable? Se sì, come - cosa devo fare con il progetto?
Mi sembra di andare in tondo alla ricerca di soluzioni online.
UPDATE 1
provato a installare EntityFramework.MicrosoftSqlServer nel mio PCL.
Dato che EntityFramework.MicrosoftSqlServer viene installato durante la creazione di un progetto ASP Net Core standard, che utilizza il framework dnxcore50. Come mai se faccio simile nel PCL, è che si lamenta:
EntityFramework.MicrosoftSqlServer 7.0.0-rc1-final is not compatible with .NETPlatform,Version=v5.0.
Se questo è il caso, allora come mai si installa in un progetto ASP NET Nucleo.
UPDATE 2
Ho creato un nuovo PCL mira .NET 4.5.1. Ho quindi installato EntityFramework.MicrosoftSqlServer 7.0.0-rc1-final in quello via Nuget e non installa alcun problema. Anche se non posso ripeterlo ora. Ho appena creato una soluzione separata con un progetto di libreria PCL destinato a ASP NET Core e .NET 4.5.1. Questo produce il seguente ora:
Attempting to gather dependency information for package 'EntityFramework.MicrosoftSqlServer.7.0.0-rc1-final' with respect to project 'AnotherPCLEFFUP', targeting '.NETPortable,Version=v4.5,Profile=Profile75'
Attempting to resolve dependencies for package 'EntityFramework.MicrosoftSqlServer.7.0.0-rc1-final' with DependencyBehavior 'Lowest'
Resolving actions to install package 'EntityFramework.MicrosoftSqlServer.7.0.0-rc1-final'
Resolved actions to install package 'EntityFramework.MicrosoftSqlServer.7.0.0-rc1-final'
Install failed. Rolling back...
Package 'EntityFramework.MicrosoftSqlServer.7.0.0-rc1-final' does not exist in project 'AnotherPCLEFFUP'
Package 'EntityFramework.MicrosoftSqlServer.7.0.0-rc1-final' does not exist in folder 'K:\TFS\TestApps\Projects\DotNetCore\AnotherPCLEFFUP\packages'
Invalid portable frameworks.
stesso accade installazione EntityFramework.Core.7.0.0-RC1-finale.
Corretto per dire, questo è assolutamente frustrante. Forse sto abbaiando sull'albero sbagliato o sto solo abbaiando pazzo oggi.
Correndo contro lo stesso problema atm – grmbl
Salve, questo è un problema aperto su GitHub: https://github.com/aspnet/EntityFramework/issues/5176 (dipendenze di rottura) – grmbl
Tutto quello che posso dire è che questo è irresponsabile delle squadre. Semplicemente non è accettabile avere un * RC * che non si installa nemmeno correttamente e anche in questo caso ha un sacco di problemi e che letteralmente non è stato aggiornato per 5 mesi! La cosa responsabile sarebbe almeno avere una * tabella di marcia pratica di cosa fare nel frattempo, altrimenti, DEVONO ESEGUIRE QUESTI RC da Nuget. La scorsa settimana ho installato EFCore su .NET 4.6 regolare, e ho avuto un sacco di problemi importanti sia nell'installazione (e dopo ridicole soluzioni alternative) che nell'esecuzione, solo per trovare quei bug * sono * corretti nella versione di myget rc2. –