Skip to content
v7 is in preview. Install it with dotnet tool install dotnet-affected --prerelease, and see what changed since v6.

Building the project

Issues and pull requests are welcome.

The repository pins its .NET SDK in global.json and installs it locally, so it does not interfere with anything else on your machine:

Terminal window
./eng/install-sdk.sh

The SDK lands in ./eng/.dotnet, along with the older runtimes the test suite needs.

Terminal window
. ./eng/activate.sh

This puts the local SDK first on PATH and sets DOTNET_ROOT. Confirm with dotnet --info; run deactivate to undo it.

Terminal window
dotnet build

Launching your IDE from the activated shell makes it use the same SDK:

Terminal window
. ./eng/activate.sh
rider Affected.sln
Terminal window
dotnet test

The suite creates temporary Git repositories and runs real MSBuild evaluations, so it is slower than a unit-test-only run and needs git available.

Path What it is
src/dotnet-affected The CLI: commands, options, views and output formatters
src/DotnetAffected.Core Discovery, Git change detection, NuGet diffing, graph walking
src/DotnetAffected.Abstractions Interfaces and DTOs shared by the CLI, SDK and tests
src/DotnetAffected.Tasks The MSBuild SDK — task, Sdk.props/Sdk.targets, examples
test/ Test projects plus the shared temporary-repository helpers
benchmarks/ BenchmarkDotNet projects
docs/ This documentation site
eng/ SDK install/activate scripts and packaging helpers

The site is an Astro Starlight project under docs/. See docs/README.md — it includes a container-based workflow, so you don’t need Node installed to run it.