| --packages <packages> | Path to the .alpackages symbol folder (default: .alpackages) |
| --restore | Run incremental symbol restore before build (default behavior) |
| --clean | Remove ALWasp package-cache and output artifacts before building (also log and manifest artifacts for config-driven builds) |
| --latest | Use latest dependency versions when restoring |
| --out <out> | Output .app file path. Cannot be combined with --outfolder. |
| --outfolder <outfolder> | Folder for the output .app file. Cannot be combined with --out. |
| --warnaserror | Treat all warnings as errors |
| --nowarn <nowarn> | Warning codes to suppress (e.g. AL0001). Repeat to suppress multiple. |
| --errorlog <errorlog> | Write all diagnostics to this file |
| --ruleset <ruleset> | Ruleset file that overrides diagnostic severities |
| --target <target> | Compilation target (e.g. Cloud, OnPrem) |
| --parallel | Enable parallel compilation |
| --max-parallelism <max-parallelism> | Maximum number of parallel compilation tasks (implies --parallel) |
| --define <define> | Preprocessor symbols to define. Repeat to define multiple. |
| --features <features> | Feature flags to enable. Repeat to enable multiple. |
| --codecop | Enable the CodeCop analyzer |
| --appsourcecop | Enable the AppSourceCop analyzer |
| --ptecop | Enable the PerTenantExtensionCop analyzer |
| --uicop | Enable the UICop analyzer |
| --custom-analyzers <custom-analyzers> | Paths to custom analyzer assemblies. Repeat to add multiple. |
| -v, --verbose | Enable verbose logging |
| -q, --quiet | Minimal output |
| --feed <feed> | Additional NuGet feed URL. Repeat to add multiple feeds. |
| --nuget-config <nuget-config> | Path to nuget.config used for sources and credentials |
| --auth-mode <Auto|Interactive|NonInteractive> | Authentication mode for private feeds: Auto, Interactive, NonInteractive |
| --feed-token-env <feed-token-env> | Feed token mapping in form 'feedUrl=ENV_VAR'. Repeat to map multiple feeds. |
| --pat <pat> | Personal Access Token for authenticated NuGet feeds. Falls back to ALWASP_PAT environment variable. |
| --config <config> | Path to alwasp.json project configuration file (auto-detected if omitted) |
| --profile <profile> | Profile name in alwasp.json to build (config-driven mode) |
| --manifest <manifest> | Write a config-driven build manifest to this path after the build. Specify a path or omit to use the default: .alwasp/build-manifest.json. Also settable via manifest in alwasp.json workspace or profile section. |
| --continue-on-error | Continue building remaining groups/profiles after a failure (overrides workspace.continueOnError in alwasp.json) |
| --diagnostic, --diagnostics | List the individual compiler findings (errors and analyzer warnings such as CodeCop/AppSourceCop/UICop) after each compile; the summary always counts them per analyzer (also settable via workspace.diagnostics in alwasp.json) |
| --changed-since <changed-since> | Git reference: 'latest' (newest local tag), 'latest:<pattern>' (newest local tag matching a glob, e.g. 'latest:v*'), 'latest-merge:<text>' (nearest first-parent merge whose message contains the text), or an explicit tag/branch/commit. Config-driven mode: restricts 'versioning.applyTo: changedOnly' to projects changed since it and overrides 'changeDetection.base' in alwasp.json. With --project-root: builds only apps changed since it plus the apps that depend on them, and compiles their local dependencies. |
| --plan <plan> | Build exactly the projects selected by a previously generated plan file. Cannot be combined with targetOrPath or --profile. Can be combined with --changed-since, which still only affects 'versioning.applyTo: changedOnly' resolution - it does not alter which projects the plan selects. |
| --include-dependents | With --project-root and --changed-since, also build the apps that (transitively) depend on a changed app (default: only changed apps and the local dependencies they need to compile). |
| --project <project> | Single AL project directory (direct mode; needs no alwasp.json). Cannot be combined with a positional target/path, --profile, --plan, --config, or --project-root. |
| --project-root <project-root> | Root directory in which AL projects are discovered recursively and built in dependency order (direct mode; needs no alwasp.json). Cannot be combined with a positional target/path, --profile, --plan, --config, or --project. |
| --app <app> | With --project-root: build only this app, given by name, app ID, or project path relative to --project-root. Repeat for multiple apps. Required local dependencies are still compiled, as dependency-only apps. |
| --bc-target <bc-target> | Business Central target: current (latest released artifact), next-minor, or next-major (Insider artifact); the artifact supplies symbols, compiler and analyzers. Omit --bc-target and --bc-version to keep Microsoft symbols and compiler from NuGet. Not available with a positional app.json build. |
| --bc-version <bc-version> | Pinned Business Central version, for example 27.5; mutually exclusive with --bc-target next-minor/next-major. |
| --bc-country <bc-country> | Exactly one Business Central country code (default: restore.country from alwasp.json, else W1), for example DE. A comma-separated list is not supported by build. |
| --format <format> | Output format: text (default), json (a single result document on stdout, human output moved to stderr), or ndjson (one JSON record per line, written as the command runs). 'jsonl' is accepted for ndjson. |
| --result-file <result-file> | Write the --format json/ndjson output to this file instead of stdout, leaving the console output unchanged. Use this for 'build', 'check', and 'workspace build', whose altool output cannot be redirected. |
| -?, -h, --help | Show help and usage information |