2016-06-08 16 views
9

Ho creato una nuova libreria di classi .NET Core e aggiunto un pacchetto Nuget da un server Nuget aziendale interno. Ho cominciato ad ottenere il seguente errore:Uno o più pacchetti non sono compatibili con .NETStandard, Versione = v1.5

Package XXXX is not compatible with netstandard1.5 (.NETStandard,Version=v1.5). Package XXXX 1.0 supports: net45 (.NETFramework,Version=v4.5) One or more packages are incompatible with .NETStandard,Version=v1.5.

ho aggiornato il file project.json a guardare come questo, ma lo stesso errore persiste.

{ 
    "version": "1.0.0-*", 

    "dependencies": { 
    "XXXXX": "1.0.0", 
    "NETStandard.Library": "1.5.0-rc2-24027" 
    }, 

    "frameworks": { 
    "netstandard1.5": { 
     "imports": [ 
     "dnxcore50", 
     "portable-net45+win8" 
     ] 
    } 
    } 
} 

Qualcuno ha comprensione su questo?

+3

Sei davvero, * davvero * molto meglio ad aspettare fino a quando non sono finiti. La creazione di ~ 8 standard è turbolenze, non uno standard. Anche se lo risolvessi oggi, smetterà di funzionare domani. Avere esposizione a queste versioni beta senza fine intermedie del codice open source è piuttosto nuova per i programmatori .NET, funziona solo se si è coinvolti attivamente nel progetto. –

+1

@HansPassant A mio parere, lo standard di piattaforma .NET è terminato. Ci saranno cambiamenti additivi in ​​futuro, ma non di rottura. –

risposta

10

Tl; dr - deve essere netstandardall the way down!

Per installare un pacchetto in un progetto .NET Core, il pacchetto e tutte le sue dipendenze devono essere compatibili con netstandard1.X.

Sembra che il progetto sia destinato a netstandard1.5, ma dipende da un pacchetto destinato solo a net45. L'unico modo per risolvere questo problema è sostituire la dipendenza o aggiornarla a una versione destinata a netstandard.

In alcuni casi, imports consente di utilizzare uno Portable Class Library in un'applicazione .NET Core. Questo non è un rimedio generale per pacchetti incompatibili, ma piuttosto una soluzione temporanea che funziona con pacchetti che già hanno come target un'API più piccola.

+1

Ho visto un paio di riferimenti che dicono "portable-net4 + win8" con net4 essendo la versione del framework che risolverà questo problema. Per esempio. https://docs.efproject.net/en/latest/miscellaneous/rc1-rc2-upgrade.html#using-imports-in-project-json. –

+1

@GrandMasterT L'importazione di 'portable-net45 + netcore45 + wp8' funziona per te? –

+2

@GrandMasterT Questo può funzionare solo se il pacchetto è una libreria di classi portatile. Non sembra che il tuo pacchetto sia così. – svick

Problemi correlati