Build Tools

.NET Framework (classic csproj) build needs

.NET Framework (classic) build stack
Visual Studio (IDE)                           # Optional IDE; includes MSBuild + workloads
└─ Visual Studio Build Tools                  # Headless VS components for CI agents
   └─ MSBuild.exe (VS toolset: 14/15/16/17)   # The build engine that executes targets
      ├─ Toolset (targets/props/tasks)        # Microsoft.Common.props, Microsoft.CSharp.targets, etc.
      │  ├─ C# targets (CSharp*.targets)      # Hooks compilation + language pipeline
      │  └─ Tasks assemblies (*.tasks.dll)    # Implements actions MSBuild runs (Copy, Resolve, etc.)
      ├─ Roslyn (csc.exe + targets)           # Actual C# compiler invoked by targets
      ├─ .NET Framework targeting pack        # Reference assemblies for net4x builds
      └─ NuGet.exe / NuGetCommand restore     # Restores packages.config / legacy restore inputs

.NET (Core/5+/6+/7+/8+/9+/10) SDK-style build needs

.NET (Core/5+/6+/7+/8+/9+/10) SDK-style build stack
dotnet.exe (CLI)                              # Entry point used in modern pipelines
└─ .NET SDK (selected version)                # The installed SDK chosen (optionally by global.json)
   ├─ MSBuild (SDK-shipped)                   # MSBuild engine bundled with the SDK
   │  └─ Microsoft.NET.Sdk targets/props      # Default build logic for SDK-style projects
   │     ├─ SDK tasks assemblies              # Tasks used by SDK targets
   │     └─ NuGet restore integration         # PackageReference restore graph for dotnet restore
   ├─ Roslyn (SDK compiler toolset)           # C# compiler bundled with the SDK
   └─ Targeting packs (per TFM)               # Reference packs for net6.0/net8.0/etc (and net4x if multi-target)