ASP.NET Kjerne 5.0 feil CS0012: Typen 'Objekt' er definert i sammenstillingen 'mscorlib

stemmer
4

I Visual Studio 2015 har jeg et kproj, i dette prosjektet ønsket jeg å legge til en referanse til en forsamling som ikke er tilgjengelig i alle offentlige nuget pakke kilde, så jeg har laget min egen nuget pakken, og på denne måten var i stand til å legge til referansen til denne montasje.

Problemet er at nå er jeg får følgende unntak:

ASP.NET kjerne 5.0 error CS0012: Typen 'Object' er definert i en forsamling som ikke er referert. Du må legge til en referanse til montering 'mscorlib, versjon = 4.0.0.0, Culture = nøytral, PublicKeyToken = b77a5c561934e089'.

Noen ideer om hvordan å løse dette?

Publisert på 28/12/2014 klokken 16:01
kilden bruker
På andre språk...                            


4 svar

stemmer
5

Som du skrev, fjerne aspnetcore50fra målrettede rammer fjerner problemet. Men jeg ønsket å vite hvorfor og hva som kommer med det, og jeg fant svaret.

Forskjellen mellom aspnet50og aspnetcore50er at de bruker Framework 4.6 og NET Kjerne 5 henholdsvis. En artikkel Hva er .NET Core-5 og ASP.NET fem innen .NET 2015 Preview forklarer godt forskjellene, som kort sagt er:

Når du kjører din ASP.NET 5 applikasjon på toppen av Core-CLR og derfor NET Core-5 rammeverk , vil du få en ende-til-ende-stack optimalisert for server / cloud arbeidsoppgaver som innebærer en høy gjennomstrømning, veldig liten plass i minnet, og en av de viktigste tingene, side-by-side gjennomføring av .NET Kjerne 5 rammeverk versjon (KRE eller K runtime Environment) knyttet til søknaden din, uansett hva andre versjoner av .NET kan være installert i samme server eller maskin. I tillegg, og som nevnt, kan du kjøre den web-applikasjon på en web-tjeneste som kjører på Mac eller Linux.

På den annen side, når du kjører ASP.NET 5 applikasjon på toppen av den vanlige CLR og derfor .NET Framework 4.6 får du den høyeste grad av kompatibilitet med eksisterende .NET biblioteker og færre begrensninger enn hva du får når du kjører på toppen av .NET Kjerne 5.

Det betyr også at for å ta en fordel av disse flotte funksjoner, må du bruke bibliotekene som er NET Core-5 kompatibel. Hvis du har en allerede utarbeidet DLL, som target .NET Framework, mest sannsynlig vil det ikke være kompatible, og du er nødt til å bruke .NET Framework 4.6.

Grunnen til det er at NET Core-5 ikke inneholder Basic Class Library, som inneholder slike felles komponenter som samlinger, IO, LINQ, etc. BCL komponenter er nå tilgjengelig som separate nuget pakker, slik at du kan inkludere i prosjektet bare bitene du trenger.

På hvordan ulike NET Core-5 målrettede biblioteker er at du kan lese i Opprette multi-target nuget Poser med vNext

Svarte 18/04/2015 kl. 17:07
kilden bruker

stemmer
5

Løste det. Fjernet rammeverket "aspnetcore50" fra project.json

Svarte 28/12/2014 kl. 16:22
kilden bruker

stemmer
4

Faktisk, problemet er en gammel lib som krever en asp.net 4.0 eller 4.5 vesion (mindre enn Core).

Microsoft tilbyr en løsning for det ved å installere brakklegging nuget pakken.

PM> Installer-pakke Microsoft.NETCore.Portable.Compatibility

denne måten vil du være i stand til å kjøre kode med gamle libs.

Svarte 08/06/2017 kl. 22:44
kilden bruker

stemmer
0
PM> Install-package Microsoft.NETCore.Portable.Compatibility
Svarte 30/09/2017 kl. 05:48
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more