Hva er NUPKG-filformatet?
En .nupkg-fil lagrer en standardisert NuGet-pakke som brukes til å distribuere .NET-biblioteker, verktøy eller applikasjonskomponenter. Under panseret er .nupkg et ZIP-arkiv strukturert i henhold til Open Packaging Conventions (OPC) - samme beholderfamilie som .docx - og inneholder kompilerte .dll-assemblies, et .nuspec-metadatamanifest, en [Content_Types].xml-deskriptor og lib/-mapper som organiserer assemblies etter target framework moniker (f.eks. net8.0, netstandard2.0).
Hva er NuGet?
NuGet er pakkebehandleren for Microsoft .NET-utviklingsplattformen, og forvaltes nå av .NET Foundation. Den har vært inkludert som standard i Visual Studio siden utgivelsen av Visual Studio 2012 og er også tilgjengelig som et frittstående CLI. NuGet støtter .NET Framework, .NET Standard og alle moderne .NET-utgivelser.
Hvordan genereres .nupkg-filer?
NuGet-pakker kan genereres fra en prosjektmappe ved hjelp av kommandoen dotnet pack (den moderne plattformuavhengige tilnærmingen) eller det eldre nuget pack CLI-verktøyet. Ved bruk av dotnet pack leses pakkemetadata direkte fra prosjektfilen .csproj, slik at et separat .nuspec-manifest ikke lenger er påkrevd - selv om et slikt fortsatt kan leveres for avanserte scenarioer. Resultatet er et .nupkg-arkiv klart for distribusjon.
Hvordan dele en NuGet-pakke?
Den mest populære måten å dele .nupkg-filer på er å publisere dem til webplattformen nuget.org. Etter å ha registrert en konto, laster brukere opp sin .nupkg-fil og oppgir en kort beskrivelse; hver pakke gjennomgår automatisk validering før den indekseres og gjøres tilgjengelig for nedlasting. Private feeder hostet på Azure Artifacts, GitHub Packages eller selvhostede servere er også vanlige i bedriftsmiljøer. Tilhørende .snupkg-symbolpakker kan publiseres sammen med en .nupkg for å muliggjøre kildekodegjennomgang i debuggere.
Sikkerhet og trygghet
RISIKO: MEDIUMEn .nupkg er data og ikke direkte kjørbar, men installasjon av en pakke kjører koden dens i dine bygg og apper, så risikoen for forsyningskjeden er reell: ondsinnede pakker eller «typosquatting» på nuget.org har blitt brukt til å spre skadevare, og en pakkes verktøy, installasjonsskript eller MSBuild-targets kan kjøre under restore/bygg. Installer kun pakker fra pålitelige forfattere, vær oppmerksom på feilstavede ID-er, foretrekk pakker med mange nedlastinger og kildekoblinger, og vurder signerte pakker og låsefiler. Det er trygt å bare inspisere en .nupkg ved å pakke den ut - risikoen oppstår ved installasjon og bygging mot den.
Formatdetaljer
i et nøtteskallProgrammer som åpner NUPKG-filer
Tekniske detaljer
dyp spesifikasjon| Beholderformat | ZIP (Open Packaging Conventions / OPC) - samme beholderfamilie som .docx og .xlsx |
| Magic bytes | `50 4B 03 04` («PK») - standard ZIP lokal filheader ved offset 0 |
| MIME-type | `application/octet-stream` |
| Internt manifest | `.nuspec` XML-fil i pakkens rot; deklarerer Id, Versjon, Forfattere, avhengigheter og målrammeverk |
| Påkrevd OPC-struktur | `[Content_Types].xml`, `_rels/`-mappe og minst ett `.nuspec`-manifest |
| Konvensjon for assembly-sti | `lib/<TFM>/`-mapper - f.eks. `lib/net8.0/`, `lib/netstandard2.0/` - én per target framework moniker |
| Byggeverktøy | `dotnet pack` (SDK-stil prosjekter, plattformuavhengig) eller `nuget pack` (legacy NuGet CLI) |
| Offentlig register | nuget.org - over 500 000 unike pakke-ID-er; pakker gjennomgår automatisert validering før indeksering |
| Symbol-følgeformat | `.snupkg` - separat arkiv som inneholder `.pdb`-symbolfiler for debugging på kildenivå |
| Pakkesignering | X.509-sertifikatsignaturer (forfatter og repositorium); klienter verifiserer signaturer ved installasjon |
| Støtte for rammeverk | .NET Framework, .NET Standard, .NET 5-9 og senere; støtte for flere målplattformer i én enkelt `.nupkg` |
| Versjonsskjema | Semantic Versioning 2.0 (SemVer 2.0); støtte for pre-release-etiketter (f.eks. `-alpha`, `-rc.1`) |
| Plassering av pakkecache | `%USERPROFILE%\.nuget\packages\` på Windows; `~/.nuget/packages/` på Linux og macOS |
| Oppløsning av avhengigheter | Full transitiv avhengighetsgraf løses ved `dotnet restore`; valgfri låsefil `packages.lock.json` for reproduserbare bygg |
| Utgitt | 2010 (NuGet 1.0) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | learn.microsoft.com |
NUPKG-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om NUPKG-filer.