dotnet new / run / build / test / add package în C# (.NET)

.NET BCL și CLI-ul dotnet .NET Core 1.0+ / .NET 8–9 SDK

Creează proiecte, instalează pachete NuGet, compilează, rulează teste unitare și publică aplicații din linia de comandă.

Sintaxă C#
dotnet new console -n App | dotnet add package NumePachet | dotnet run | dotnet publish -c Release

Ce face dotnet new / run / build / test / add package

Utilitarul de linie de comandă dotnet (inclus în .NET SDK) este instrumentul unificat și multi-platformă (Windows, Linux, macOS) pentru întregul ciclu de viață al unei aplicații C#: generarea proiectelor din șabloane (dotnet new), gestionarea dependențelor NuGet în fișierul .csproj (dotnet add package), compilarea, rularea cu reîncărcare automată (dotnet watch), executarea testelor automate (dotnet test) și împachetarea pentru producție (dotnet publish).

Proiectele moderne .NET folosesc fișiere .csproj în format SDK simplificat, foarte curate și lizibile, care pot fi gestionate individual sau grupate într-un fișier de soluție (.sln / .slnx) prin comenzile dotnet sln.

Parametri, metode și opțiuni

Parametru / Metodă Descriere
dotnet new <sablon> -n <Nume> Creează un proiect nou din șablonul specificat (ex. console, webapi, xunit, classlib, sln).
dotnet run [--project cale] [-- args] Compilează automat (dacă e nevoie) și pornește aplicația din directorul curent.
dotnet watch Pornește aplicația cu Hot Reload și o recompilează automat la fiecare modificare a fișierelor .cs.
dotnet add package <NumePachet> Descarcă de pe NuGet.org și adaugă referința <PackageReference> în fișierul .csproj.
dotnet build / dotnet test Compilează soluția sau rulează toate testele unitare (xUnit, NUnit, MSTest) din proiect.
dotnet publish -c Release -o ./out Compilează aplicația cu optimizări maxime (Release) și copiază artefactele gata de lansare în directorul ./out.

Exemple

Exemplul 1: Crearea unei aplicații de consolă, instalarea unui pachet NuGet și rularea ei

Fluxul complet de creare a unui proiect C# nou din terminal, adăugarea pachetului Dapper din NuGet și executarea aplicației.

dotnet new console -n FacturareCli
cd FacturareCli
dotnet add package Dapper
dotnet run

Ieșire în terminal

The template "Console App" was created successfully.
info : Adding PackageReference for package 'Dapper' into project '/app/FacturareCli/FacturareCli.csproj'.
info : Package 'Dapper' is compatible with all the specified frameworks in project '/app/FacturareCli/FacturareCli.csproj'.
Hello, World!

Exemplul 2: Rularea testelor unitare și publicarea optimizată pentru Linux (Release)

Verificăm testele cu dotnet test, apoi generăm build-ul de producție pentru un server Linux pe 64 de biți (linux-x64).

dotnet test --nologo
dotnet publish -c Release -r linux-x64 --self-contained false -o ./publish

Ieșire în terminal

Passed!  - Failed:     0, Passed:    18, Skipped:     0, Total:    18, Duration: 42 ms
  FacturareCli -> /app/FacturareCli/bin/Release/net8.0/linux-x64/FacturareCli.dll
  FacturareCli -> /app/FacturareCli/publish/

Greșeli frecvente

  • Rularea aplicației în producție cu dotnet run (care folosește configurația neoptimizată Debug și include compilatorul SDK) în loc să compilezi cu dotnet publish -c Release și să pornești direct binarul compilat cu dotnet NumeAplicatie.dll pe runtime-ul ușor ASP.NET Core.
  • Trecerea argumentelor proprii ale aplicației direct la dotnet run --port 8080 fără separatorul --; fără -- (adică dotnet run -- --port 8080), CLI-ul dotnet crede că opțiunea îi este adresată lui, nu programului tău.

Funcții și concepte înrudite

  • Console.WriteLine / ReadLine: Afișează text în fluxul standard de ieșire și citește linii de text introduse de utilizator în consolă.
  • JsonSerializer (System.Text.Json): Serializează obiecte C# în format JSON și deserializează text JSON înapoi în tipuri puternic tipizate, cu performanță nativă ridicată.
  • HttpClient (GetFromJsonAsync): Trimite cereri HTTP asincrone către API-uri REST și deserializează direct răspunsurile JSON cu metodele din System.Net.Http.Json.