0005. Build settings
- Status: Accepted
- Date: 2026-10-29
Context
Section titled “Context”TenantGuard is a library others depend on, so builds have to be reproducible, and warnings, API changes and style drift have to be caught before they ship.
Decision
Section titled “Decision”- The .NET SDK is pinned in
global.jsonwithrollForward: latestFeature; C# latest. - Central Package Management: every version lives in
Directory.Packages.props. - Nullable on,
TreatWarningsAsErrors, deterministic builds and SourceLink. PublicApiAnalyzerstracks the public API inPublicAPI.Shipped.txtandPublicAPI.Unshipped.txt.- StyleCop.Analyzers, configured in
stylecop.jsonand.editorconfig, withEnforceCodeStyleInBuild.
Consequences
Section titled “Consequences”A warning fails the build, so every one is fixed or turned off on purpose in
.editorconfig, and an accidental public API change fails task lint:api.