Vad är filformatet NUPKG?
En .nupkg-fil lagrar ett standardiserat NuGet-paket som används för att distribuera .NET-bibliotek, verktyg eller applikationskomponenter. Under huven är .nupkg ett ZIP-arkiv strukturerat enligt Open Packaging Conventions (OPC) - samma containerfamilj som .docx - och innehåller kompilerade .dll-assemblies, ett .nuspec-metadatamanifest, en [Content_Types].xml-deskriptor och lib/-mappar som organiserar assemblies efter målsystemets moniker (t.ex. net8.0, netstandard2.0).
Vad är NuGet?
NuGet är pakethanteraren för Microsoft .NET-utvecklingsplattformen, som numera förvaltas av .NET Foundation. Den har följt med som standard i Visual Studio sedan lanseringen av Visual Studio 2012 och finns även tillgänglig som ett fristående CLI. NuGet stöder .NET Framework, .NET Standard och alla moderna .NET-versioner.
Hur genereras .nupkg-filer?
NuGet-paket kan genereras från en projektmapp med kommandot dotnet pack (det moderna plattformsoberoende tillvägagångssättet) eller det äldre nuget pack CLI. När du använder dotnet pack läses paketets metadata direkt från projektfilen .csproj, så ett separat .nuspec-manifest krävs inte längre - även om ett sådant fortfarande kan tillhandahållas för avancerade scenarier. Resultatet är ett .nupkg-arkiv redo för distribution.
Hur delar man ett NuGet-paket?
Det populäraste sättet att dela .nupkg-filer är att publicera dem på webbplattformen nuget.org. Efter att ha registrerat ett konto laddar användare upp sin .nupkg-fil och anger en kort beskrivning; varje paket genomgår automatisk validering innan det indexeras och görs tillgängligt för nedladdning. Privata flöden som hostas på Azure Artifacts, GitHub Packages eller självhostade servrar är också vanliga i företagsmiljöer. Kompletterande .snupkg-symbolpaket kan publiceras tillsammans med en .nupkg för att möjliggöra källkodsfelsökning i debuggers.
Säkerhet & trygghet
RISK: MEDIUMEn .nupkg är data, inte direkt körbar, men installation av ett paket kör dess kod i dina byggen och appar, så risken för försörjningskedjan är reell: skadliga paket eller «typosquattade» paket på nuget.org har använts för att sprida skadlig kod, och ett pakets verktyg, installationsskript eller MSBuild-targets kan köras under restore/build. Installera endast paket från betrodda författare, se upp för felstavade id:n, föredra paket med många nedladdningar och källkodslänkar, och överväg signerade paket och låsfiler. Att bara inspektera en .nupkg genom att packa upp den är säkert - risken kommer från att installera och bygga mot den.
Formatdetaljer
i ett nötskalProgram som öppnar NUPKG-filer
Tekniska detaljer
djup specifikation| Containerformat | ZIP (Open Packaging Conventions / OPC) - samma containerfamilj som .docx och .xlsx |
| Magic bytes | `50 4B 03 04` («PK») - standard ZIP lokal filheader vid offset 0 |
| MIME-typ | `application/octet-stream` |
| Internt manifest | `.nuspec` XML-fil i paketets rot; deklarerar Id, Version, Författare, beroenden och målsystem |
| Obligatorisk OPC-struktur | `[Content_Types].xml`, `_rels/`-mapp och minst ett `.nuspec`-manifest |
| Konvention för sökväg till assemblies | `lib/<TFM>/`-mappar - t.ex. `lib/net8.0/`, `lib/netstandard2.0/` - en per målsystemets moniker |
| Byggverktyg | `dotnet pack` (SDK-projekt, plattformsoberoende) eller `nuget pack` (äldre NuGet CLI) |
| Offentligt register | nuget.org - över 500 000 unika paket-ID:n; paket genomgår automatiserad validering före indexering |
| Kompletterande symbolformat | `.snupkg` - separat arkiv som innehåller `.pdb`-symbolfiler för felsökning på källkodsnivå |
| Paketsignering | X.509-certifikatsignaturer (författare och lagringsplats); klienter verifierar signaturer vid installation |
| Stöd för ramverk | .NET Framework, .NET Standard, .NET 5-9 och senare; stöd för flera målsystem i en enda `.nupkg` |
| Versionsschema | Semantic Versioning 2.0 (SemVer 2.0); stöd för pre-release-etiketter (t.ex. `-alpha`, `-rc.1`) |
| Plats för paketcache | `%USERPROFILE%\.nuget\packages\` på Windows; `~/.nuget/packages/` på Linux och macOS |
| Beroendehantering | Fullständig transitiv beroendegraf löses vid `dotnet restore`; valfri låsfil `packages.lock.json` för reproducerbara byggen |
| Släppt | 2010 (NuGet 1.0) |
| Öppen standard | Ja · royaltyfri |
| Specifikation | learn.microsoft.com |
NUPKG-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om NUPKG-filer.