Novolis Docs
novolis-analyzers / getting-started.md

Getting started

dotnetroslynanalyzersnovolis

Packages

PackageUse
Novolis.Analyzers.OneTypePerFileOne top-level type per file (NOV2201), fixer at document / project / solution
Novolis.Analyzers.StackBoundariesLayer / Avalonia / MAUI / island rules (NOV2001–NOV2011)
Novolis.Analyzers.ConventionsForbidden desk; no Frank.* leftovers (NOV2101–NOV2102)
Novolis.Analyzers.LicensingMIT / Apache-2.0 own + dependency license checks (NOV3001–NOV3003)
Novolis.Analyzers.CodeLengthMethod/class line limits

Local multi-repo

When novolis-analyzers is checked out beside consumers, import:

<Import Project="..\novolis-governance\build\Novolis.StackAnalyzers.props"
        Condition="Exists('..\novolis-governance\build\Novolis.StackAnalyzers.props')" />

That wires StackBoundaries and Conventions as analyzer ProjectReferences for Novolis.* libraries, and OneTypePerFile (NOV2201) for every project. Repos that do not import the stack props import Novolis.OneTypePerFile.props directly.

For license checks (after GPR publish):

<PackageReference Include="Novolis.Analyzers.Licensing" Version="2026.1.*" PrivateAssets="all" />

Or locally import novolis-governance/build/Novolis.LicensingAnalyzers.props.

Design

See design.md for the full diagnostic ID table.