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 cudotnet publish -c Releaseși să pornești direct binarul compilat cudotnet NumeAplicatie.dllpe runtime-ul ușor ASP.NET Core. - Trecerea argumentelor proprii ale aplicației direct la
dotnet run --port 8080fără separatorul--; fără--(adicădotnet run -- --port 8080), CLI-uldotnetcrede 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.