Table of Contents

DataLinq.Dev.CLI

DataLinq.Dev.CLI is the repo-local wrapper for dotnet restore, build, test, environment diagnosis, and controlled passthrough execution.

Use it when you want a stable execution profile, concise output, and predictable artifacts.

Why It Exists

Raw dotnet is a bad default for this repo when you care about repeatability.

The wrapper normalizes repo-local execution roots, keeps logs under artifacts/dev/, and gives you output modes that are usable in both normal terminal work and agent-driven workflows.

Commands

doctor

Diagnoses the local dotnet and NuGet execution environment.

dotnet run --project src/DataLinq.Dev.CLI -- doctor --profile repo

What it checks:

  • repo-local execution roots
  • writable tool paths
  • dotnet --version
  • installed SDK count
  • dotnet --info
  • workload resolver and workload auto-import presence
  • NuGet sources from the repo-local NuGet.Config
  • top-level cached package roots

Use this first when the environment looks suspicious.

restore

Runs dotnet restore with the repo-local execution profile.

dotnet run --project src/DataLinq.Dev.CLI -- restore
dotnet run --project src/DataLinq.Dev.CLI -- restore src/DataLinq.sln --output summary

build

Runs dotnet build with concise default output.

dotnet run --project src/DataLinq.Dev.CLI -- build
dotnet run --project src/DataLinq.Dev.CLI -- build src/DataLinq.sln --output errors

Useful options:

  • --configuration Defaults to Debug.
  • --framework Optional target framework.
  • --no-restore Skips restore before build.
  • --binlog auto|always|never Controls binary log generation.

test

Runs dotnet test with concise failure-focused output.

dotnet run --project src/DataLinq.Dev.CLI -- test src/DataLinq.Tests.Unit/DataLinq.Tests.Unit.csproj
dotnet run --project src/DataLinq.Dev.CLI -- test src/DataLinq.Generators.Tests/DataLinq.Generators.Tests.csproj --output failures

Useful options:

  • --configuration Defaults to Debug.
  • --framework Optional target framework.
  • --filter Standard dotnet test filter expression.
  • --no-build Skips build before test.
  • --no-restore Skips restore before test.

The optional target defaults to src/DataLinq.sln.

exec

Runs an arbitrary dotnet command through the same repo-local execution profile.

dotnet run --project src/DataLinq.Dev.CLI -- exec -- --info
dotnet run --project src/DataLinq.Dev.CLI -- exec -- build src/DataLinq.sln -c Release

This is the escape hatch, not the main workflow.

Prefer the dedicated commands unless you actually need a command surface the wrapper does not expose directly.

Execution Profiles

Supported profiles:

  • auto Default. Resolves the best profile for the current environment.
  • repo Normal repo-local execution.
  • sandbox Intended for constrained or offline-ish environments.
  • ci CI-oriented execution profile.

Output Modes

Supported output modes:

  • quiet Default. One-line success and concise failure.
  • summary Adds a slightly richer summary.
  • errors Focuses on distinct compiler and NuGet errors.
  • failures Focuses on test failures and failing command summaries.
  • raw Prints the underlying command output.
  • diag Uses diagnostic verbosity and preserves full detail in artifacts.

Targets and Additional Arguments

restore, build, and test all accept an optional target path.

If you omit it, the default target is src/DataLinq.sln.

Each command also accepts extra dotnet arguments after --.

Example:

dotnet run --project src/DataLinq.Dev.CLI -- build src/DataLinq.sln -- --no-incremental

Artifacts

Artifacts are written under artifacts/dev/.

Build runs can also emit binary logs depending on the selected --binlog mode.

If you need the full raw output, the artifact logs are the first place to look. They are the source of truth, not whatever condensed line happened to print to the terminal.