.NET CLI — Create, Build, Run

লেসন ১৫ / ৫০

.NET SDK Install

Download: dotnet.microsoft.com

dotnet --version       # check
dotnet --list-sdks
dotnet --list-runtimes

Project তৈরি

# Templates list
dotnet new list

# Console app
dotnet new console -n MyApp
cd MyApp

# Web API ⭐
dotnet new webapi -n MyApi
dotnet new webapi -n MyApi --use-controllers   # MVC controller

# Class library
dotnet new classlib -n MyLib

# xUnit test
dotnet new xunit -n MyApp.Tests

# Solution
dotnet new sln -n MySolution
dotnet sln add MyApp/MyApp.csproj
dotnet sln add MyLib/MyLib.csproj

Build ও Run

dotnet build              # compile
dotnet run                # build + run
dotnet run --project MyApp
dotnet watch run          # auto-reload on change ⭐

# Release build
dotnet build -c Release
dotnet publish -c Release -o ./publish

# Self-contained (no .NET runtime needed)
dotnet publish -c Release -r win-x64 --self-contained true
dotnet publish -c Release -r linux-x64 --self-contained false

NuGet Package Management

# Add
dotnet add package Newtonsoft.Json
dotnet add package Microsoft.EntityFrameworkCore --version 8.0.0
dotnet add package Serilog

# Remove
dotnet remove package Newtonsoft.Json

# List
dotnet list package
dotnet list package --outdated

# Restore
dotnet restore

Test

dotnet test
dotnet test --filter "Category=Unit"
dotnet test --collect:"XPlat Code Coverage"

EF Core Tools

dotnet tool install --global dotnet-ef
dotnet ef migrations add InitialCreate
dotnet ef database update
dotnet ef migrations remove

.csproj File

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" />
  </ItemGroup>
</Project>

Common Commands

dotnet --info              # full info
dotnet clean               # remove bin/obj
dotnet format              # auto-format
dotnet pack                # create NuGet package
dotnet nuget push *.nupkg  # publish