The attribute plugin is not available, 2fa disabled
Inhaltsverzeichnis
5.2 Osnove NuGet
Ta stran razlaga, kaj je NuGet in kako ustvarite pakete za nativne knjižnice.
Kaj je NuGet?
NuGet je upravljalnik paketov za .NET - primerljiv z:
- npm za JavaScript
- pip za Python
- Maven za Java
NuGet paket (.nupkg) vsebuje:
- Prevedene DLL-je
- Metapodatke (ime, različica, avtor)
- Nativne knjižnice (opcijsko)
Zakaj NuGet paket?
| Brez NuGet | Z NuGet |
| ———— | ——— |
| Ročno kopiranje DLL-jev | dotnet add package … |
| Ročno upravljanje različic | Samodejne posodobitve |
| Vsak projekt posamezno | Centralni repozitorij |
Struktura paketa za nativne knjižnice
NuGet podpira nativne DLL-je preko runtimes/:
MojPaket.1.0.0.nupkg/ ├── lib/ │ └── net8.0/ │ └── MojPaket.dll # .NET ovoj ├── runtimes/ │ ├── win-x64/ │ │ └── native/ │ │ ├── libcrypto-3-x64.dll │ │ └── libssl-3-x64.dll │ └── linux-x64/ │ └── native/ │ ├── libcrypto.so.3 │ └── libssl.so.3 └── MojPaket.nuspec
Preprost primer .nuspec
Ustvarite datoteko OpenSsl.Native.nuspec:
<?xml version="1.0"?> <package> <metadata> <id>OpenSsl.Native</id> <version>3.6.0</version> <authors>Vaše ime</authors> <description>OpenSSL 3.6.0 Native Libraries s podporo za Post-Quantum</description> <tags>openssl cryptography post-quantum ml-dsa ml-kem</tags> </metadata> <files> <!-- Windows x64 --> <file src="win-x64\libcrypto-3-x64.dll" target="runtimes\win-x64\native\" /> <file src="win-x64\libssl-3-x64.dll" target="runtimes\win-x64\native\" /> <!-- Linux x64 --> <file src="linux-x64\libcrypto.so.3" target="runtimes\linux-x64\native\" /> <file src="linux-x64\libssl.so.3" target="runtimes\linux-x64\native\" /> </files> </package>
Ustvarjanje paketa
1. Priprava datotek
# Ustvarjanje strukture imenikov mkdir nuget-package mkdir nuget-package\win-x64 mkdir nuget-package\linux-x64 # Kopiranje DLL-jev copy "D:\Projects\openssl-3.6.0\bin\bin\libcrypto-3-x64.dll" nuget-package\win-x64\ copy "D:\Projects\openssl-3.6.0\bin\bin\libssl-3-x64.dll" nuget-package\win-x64\ # Ustvarjanje .nuspec (glejte zgoraj)
2. Gradnja paketa
cd nuget-package # Namestitev NuGet CLI (če ni na voljo) winget install Microsoft.NuGet # Ustvarjanje paketa nuget pack OpenSsl.Native.nuspec # Rezultat: OpenSsl.Native.3.6.0.nupkg
Lokalni NuGet feed
Za interno uporabo lahko nastavite lokalni NuGet feed:
1. Ustvarjanje mape za feed
mkdir C:\NuGetFeed
copy OpenSsl.Native.3.6.0.nupkg C:\NuGetFeed\
2. Registracija feeda v NuGet.config
Ustvarite NuGet.config v mapi projekta:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> <add key="LocalFeed" value="C:\NuGetFeed" /> </packageSources> </configuration>
3. Uporaba paketa
dotnet add package OpenSsl.Native --version 3.6.0 --source C:\NuGetFeed
Z .NET SDK Pack
Alternativno lahko pakirate neposredno iz .csproj:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <PackageId>OpenSsl.Native</PackageId> <Version>3.6.0</Version> <Authors>Vaše ime</Authors> <Description>OpenSSL 3.6.0 Native Libraries</Description> <GeneratePackageOnBuild>true</GeneratePackageOnBuild> </PropertyGroup> <ItemGroup> <None Include="runtimes\**\*" Pack="true" PackagePath="runtimes\" /> </ItemGroup> </Project>
Nato:
dotnet pack -c Release
Nastavitev omrežnega feeda
Za ekipe: feed na omrežnem disku
Strežniška stran
# Ustvarjanje skupne rabe (kot administrator) New-SmbShare -Name "NuGetFeed" -Path "D:\NuGetFeed" -ReadAccess "Everyone"
Odjemalska stran
<!-- NuGet.config --> <configuration> <packageSources> <add key="InternalFeed" value="\\server\NuGetFeed" /> </packageSources> </configuration>
Nasveti
Verzioniranje:
- Semantično verzioniranje:
MAJOR.MINOR.PATCH - OpenSSL 3.6.0 → Paket 3.6.0
- Lastni popravki → 3.6.0.1, 3.6.0.2
Brez skrivnosti v paketih!
- Brez API ključev
- Brez zasebnih ključev
- Brez gesel v konfiguracijah
Naprej na
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: dne 15.12.2025 ob 21:22