Ce face NuGet: pachete și PackageReference
Bibliotecile .NET se distribuie ca pachete NuGet, de obicei de pe nuget.org. Comanda dotnet package add Nume verifică dacă pachetul e compatibil cu proiectul, adaugă în fișierul .csproj un element <PackageReference> și descarcă pachetul (restore). Fără --version se ia ultima versiune stabilă; cu --prerelease sunt acceptate și versiunile de test.
Din SDK-ul .NET 10 comenzile au forma „substantiv, apoi verb”: dotnet package add, dotnet package list, dotnet package remove. Forma veche, dotnet add package, funcționează în continuare și este singura disponibilă pe SDK-urile .NET 9 și mai vechi. dotnet package list --outdated arată pachetele care au versiuni mai noi, iar --vulnerable pe cele cu vulnerabilități cunoscute.
În soluțiile cu multe proiecte, Central Package Management ține versiunile într-un singur fișier, Directory.Packages.props, iar proiectele scriu doar numele pachetului.
Parametri
| Parametru | Descriere |
|---|---|
--version / -v |
Versiunea exactă a pachetului. |
--prerelease |
Permite versiuni preview. |
--project |
Proiectul în care se adaugă (implicit cel din dosarul curent). |
--source / -s |
Altă sursă de pachete decât cele configurate. |
Exemple
Exemplul 1: Adăugare, listare și ștergere
dotnet package add Humanizer --version 2.14.1
dotnet package list
dotnet package list --outdated
dotnet package remove Humanizer
Ce apare în Magazin.csproj după prima comandă
<ItemGroup>
<PackageReference Include="Humanizer" Version="2.14.1" />
</ItemGroup>
Exemplul 2: Versiuni centralizate (Central Package Management)
Versiunea apare o singură dată, în Directory.Packages.props din rădăcina soluției; proiectele nu mai scriu Version.
<!-- Directory.Packages.props -->
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.0" />
<PackageVersion Include="xunit" Version="2.9.3" />
</ItemGroup>
</Project>
<!-- Magazin/Magazin.csproj -->
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" />
</ItemGroup>
Greșeli frecvente
- Copierea manuală a fișierelor DLL în proiect în loc de pachet NuGet: pierzi actualizările și dependențele tranzitive.
dotnet package addpe un SDK mai vechi decât .NET 10 dă eroare; foloseștedotnet add package.- Versiuni diferite ale aceluiași pachet în proiectele unei soluții duc la avertismente și erori la rulare. Central Package Management rezolvă problema.
Comenzi înrudite
Entity Framework Core: DbContext și DbSet: DbContext este legătura cu baza de date în EF Core: DbSet<T> reprezintă un tabel, iar SaveChanges salvează adăugările, modificările și ștergerile.Teste unitare cu xUnit ([Fact], [Theory]): xUnit este un framework de teste pentru .NET: [Fact] marchează un test, [Theory] cu [InlineData] rulează același test pe mai multe date.