Hvad er NUPKG-filformatet?
En .nupkg-fil gemmer en standardiseret NuGet-pakke, der bruges til at distribuere .NET-biblioteker, værktøjer eller applikationskomponenter. Under motorhjelmen er .nupkg et ZIP-arkiv struktureret i henhold til Open Packaging Conventions (OPC) - den samme containerfamilie som .docx - og indeholder kompilerede .dll-assemblies, et .nuspec-metadatamanifest, en [Content_Types].xml-deskriptor og lib/-mapper, der organiserer assemblies efter target framework moniker (f.eks. net8.0, netstandard2.0).
Hvad er NuGet?
NuGet er pakkehåndteringen til Microsoft .NET-udviklingsplatformen, som nu styres af .NET Foundation. Den har været inkluderet som standard i Visual Studio siden udgivelsen af Visual Studio 2012 og er også tilgængelig som en selvstændig CLI. NuGet understøtter .NET Framework, .NET Standard og alle moderne .NET-udgivelser.
Hvordan genereres .nupkg-filer?
NuGet-pakker kan genereres fra en projektmappe ved hjælp af kommandoen dotnet pack (den moderne cross-platform tilgang) eller den ældre nuget pack CLI. Når du bruger dotnet pack, læses pakkens metadata direkte fra .csproj-projektfilen, så et separat .nuspec-manifest er ikke længere påkrævet - selvom et sådant stadig kan leveres til avancerede scenarier. Outputtet er et .nupkg-arkiv klar til distribution.
Hvordan deler man en NuGet-pakke?
Den mest populære måde at dele .nupkg-filer på er ved at publicere dem til nuget.org-webplatformen. Efter oprettelse af en konto uploader brugere deres .nupkg-fil og giver en kort beskrivelse; hver pakke gennemgår automatisk validering, før den indekseres og gøres tilgængelig for download. Private feeds hostet på Azure Artifacts, GitHub Packages eller selvhostede servere er også almindelige i virksomhedsmiljøer. Ledsagende .snupkg-symbolpakker kan publiceres sammen med en .nupkg for at muliggøre kildekode-gennemgang i debuggere.
Sikkerhed og tryghed
RISIKO: MEDIUMEn .nupkg er data, ikke direkte eksekverbar, men installation af en pakke kører dens kode i dit build og dine apps, så risikoen for forsyningskæden er reel: ondsindede pakker eller „typosquatted“ pakker på nuget.org er blevet brugt til at levere malware, og en pakkes værktøjer/installationsscripts eller MSBuild-targets kan køre under restore/build. Installer kun pakker fra betroede forfattere, hold øje med stavefejl i id'er, foretræk pakker med mange downloads og kildelinks, og overvej signerede pakker og låsefiler. Blot at inspicere en .nupkg ved at udpakke den er sikkert - risikoen kommer fra at installere og bygge mod den.
Formatdetaljer
kort fortaltProgrammer der åbner NUPKG-filer
Tekniske detaljer
dyb specifikation| Containerformat | ZIP (Open Packaging Conventions / OPC) - samme containerfamilie som .docx og .xlsx |
| Magic bytes | `50 4B 03 04` („PK“) - standard ZIP lokal fil-header ved offset 0 |
| MIME-type | `application/octet-stream` |
| Internt manifest | `.nuspec` XML-fil i pakkens rod; erklærer Id, Version, Forfattere, afhængigheder og mål-frameworks |
| Påkrævet OPC-struktur | `[Content_Types].xml`, `_rels/`-mappe og mindst ét `.nuspec`-manifest |
| Konvention for assembly-sti | `lib/<TFM>/`-mapper - f.eks. `lib/net8.0/`, `lib/netstandard2.0/` - én pr. target framework moniker |
| Build-værktøjer | `dotnet pack` (SDK-style projekter, cross-platform) eller `nuget pack` (legacy NuGet CLI) |
| Offentligt register | nuget.org - over 500.000 unikke pakke-id'er; pakker gennemgår automatisk validering før indeksering |
| Symbol-ledsageformat | `.snupkg` - separat arkiv, der indeholder `.pdb`-symbolfiler til debugging på kildeniveau |
| Pakkesignering | X.509-certifikatsignaturer (forfatter og lager); klienter verificerer signaturer ved installation |
| Understøttelse af target frameworks | .NET Framework, .NET Standard, .NET 5-9 og senere; multi-targeting understøttes i en enkelt `.nupkg` |
| Versionsskema | Semantic Versioning 2.0 (SemVer 2.0); pre-release labels understøttes (f.eks. `-alpha`, `-rc.1`) |
| Placering af pakkecache | `%USERPROFILE%\.nuget\packages\` på Windows; `~/.nuget/packages/` på Linux og macOS |
| Afhængighedsløsning | Fuldt transitivt afhængighedshierarki løses ved `dotnet restore`; valgfri låsefil `packages.lock.json` for reproducerbare builds |
| Udgivet | 2010 (NuGet 1.0) |
| Åben standard | Ja · royaltyfri |
| Specifikation | learn.microsoft.com |
NUPKG-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om NUPKG-filer.