====== 5.2 NuGet Osnove ======
Ova stranica objašnjava što je NuGet i kako stvarati pakete za nativne biblioteke.
----
===== Što je NuGet? =====
**NuGet** je upravitelj paketa za .NET - usporediv s:
* npm za JavaScript
* pip za Python
* Maven za Javu
NuGet paket (''.nupkg'') sadrži:
* Kompilirane DLL datoteke
* Metapodatke (ime, verzija, autor)
* Nativne biblioteke (opcionalno)
----
===== Zašto NuGet Paket? =====
| Bez NuGet-a | S NuGet-om |
|-------------|------------|
| Ručno kopiranje DLL-ova | ''dotnet add package ...'' |
| Ručno upravljanje verzijama | Automatska ažuriranja |
| Svaki projekt zasebno | Centralni repozitorij |
----
===== Struktura Paketa za Nativne Biblioteke =====
NuGet podržava nativne DLL-ove putem ''runtimes/'':
MojPaket.1.0.0.nupkg/
├── lib/
│ └── net8.0/
│ └── MojPaket.dll # .NET Wrapper
├── runtimes/
│ ├── win-x64/
│ │ └── native/
│ │ ├── libcrypto-3-x64.dll
│ │ └── libssl-3-x64.dll
│ └── linux-x64/
│ └── native/
│ ├── libcrypto.so.3
│ └── libssl.so.3
└── MojPaket.nuspec
----
===== Jednostavan .nuspec Primjer =====
Stvorite datoteku ''OpenSsl.Native.nuspec'':
OpenSsl.Native
3.6.0
Vaše Ime
OpenSSL 3.6.0 Native Libraries s Post-Quantum podrškom
openssl cryptography post-quantum ml-dsa ml-kem
----
===== Stvaranje Paketa =====
cd nuget-package
# Instalirajte NuGet CLI (ako nije prisutan)
winget install Microsoft.NuGet
# Stvorite paket
nuget pack OpenSsl.Native.nuspec
# Rezultat: OpenSsl.Native.3.6.0.nupkg
----
===== Nastavite na =====
* [[.:verteilung:start|6. Distribucija]]
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//