2016-05-26 24 views
38

Ho difficoltà a migrare un progetto Web da RC1 a RC2. Quando sono passato, ricevo un sacco di questi errori durante tutto il progetto.È necessario aggiungere un riferimento all'assembly mscorlib, versione = 4.0.0

Il tipo 'Func <,>' è definito in un assieme a cui non è fatto riferimento. È necessario aggiungere un riferimento assembly 'mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'

Sembra che tutte le funzioni LINQ e le espressioni lambda non funzionano.

Questo è ciò che il mio file project.json assomiglia:

"frameworks": { 
    "netcoreapp1.0": { 
     "dependencies": { 
     "System.Linq": "4.1.0-rc2-24027" 
     }, 
     "imports": [ "net451", "portable-net45+win8" ] 
    } 
    }, 
    "dependencies": { 
    "NETStandard.Library": "1.5.0-rc2-24027", 
    "Microsoft.EntityFrameworkCore": "1.0.0-rc2-final", 
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final", 
    "System.ComponentModel.Annotations": "4.1.0-*" 
    } 

Tutte le idee che cosa questo significa? Ho provato a eseguire dotnet restore, non ha aiutato.

+0

Non riesco a riprodurre questo errore. Potresti condividere tutto il tuo progetto.json? – svick

+0

Ho riscontrato problemi simili durante l'utilizzo dell'argomento 'imports'. Prova a rimuoverlo completamente o modifica net451 in dnx451 – Negorath

+0

@Negorath buona idea, considera anche di guardare cosa viene aggiunto in un'applicazione * nuova * RC2 web. La sezione delle importazioni è '" dotnet5.6 ", " dnxcore50 ", " portable-net45 + win8 "' – wal

risposta

68

Ho avuto lo stesso problema e aggiungendo il seguente pacchetto ai miei project.json dipendenze fissata per me:

"Microsoft.NETCore.Portable.Compatibility": "1.0.1-rc2-24027", 

Questo pacchetto consente la compatibilità con PCLS mscorlib-based.

+5

L'aggiunta della versione 1.0.1 ha superato questo errore. Grazie. – Owen

+0

Hanno lo stesso problema ma ho ancora 1 errore 'Il riferimento al tipo 'IListSource' afferma che è definito in 'Sistema', ma non è stato trovato. ' – jayvee

+2

Questo funziona anche per referenziare progetti esterni creati con .NET Framework4 + da un'applicazione ASP.NET Core 1.1. – David

22

In effetti, il problema è una vecchia libreria che richiede un asp.net 4.0 o 4.5 vesion (meno di Core).

Microsoft fornisce una soluzione installando il pacchetto NuGet.

Microsoft.NETCore.Portable.Compatibility

questo modo si sarà in grado di eseguire il codice con le vecchie librerie.

+1

Nel mio caso ho solo bisogno di aggiornare questo pacchetto! – jspinella