Skip to content

Installation

ArchLinterNet is distributed as .NET packages and a .NET tool.

Package publication happens through NuGet.org. Until a package is published, use the development-from-source command shown below.

Requirements

  • .NET 10 SDK or later.
  • Windows, macOS, or Linux.
  • A built repository or configured assembly search paths for the assemblies you want to validate.

Development from source

From this repository:

dotnet run --project src/ArchLinterNet.Cli -- --help

dotnet run --project src/ArchLinterNet.Cli -- \
  --policy architecture/dependencies.arch.yml \
  --mode strict

.NET global tool

After the CLI package is available on NuGet.org:

dotnet tool install --global ArchLinterNet.Cli
arch-linter-net --help

Run validation:

arch-linter-net --policy architecture/dependencies.arch.yml --mode strict

.NET local tool

For repository-pinned usage, create or update a tool manifest:

dotnet new tool-manifest

dotnet tool install ArchLinterNet.Cli

dotnet tool restore

dotnet arch-linter-net --policy architecture/dependencies.arch.yml --mode strict

Local tools are recommended for CI because the tool version is pinned in the repository.

NuGet packages for test integration

Use the testing package when architecture validation should run from a test project:

dotnet add package ArchLinterNet.Testing

Use the core package only when building a custom host or adapter:

dotnet add package ArchLinterNet.Core

Unity-specific .asmdef validation lives behind the optional Unity package:

dotnet add package ArchLinterNet.Unity

CI installation

A minimal GitHub Actions step for a published global tool:

- name: Install ArchLinterNet
  run: dotnet tool install --global ArchLinterNet.Cli

- name: Validate architecture
  run: arch-linter-net --mode strict

For local tools, prefer:

- name: Restore local tools
  run: dotnet tool restore

- name: Validate architecture
  run: dotnet arch-linter-net --mode strict

See CI integration for strict + audit workflows.

NuGet package metadata should expose only public product links:

  • project URL: the GitHub Pages documentation site;
  • repository URL: the GitHub repository;
  • package README: the concise product README;
  • license expression: the repository license.

See NuGet package metadata for the expected link model.