BuildXL Flags

May 2, 2026 ยท View on GitHub

This page lists flags that can be used to configure BuildXL.

NameValue
AdditionalConfigFileAdditional configuration files that can contain module definitions (short form: /ac)
AdminRequiredProcessExecutionModeMode for running processes that required admin privilege. Allowed values are 'Internal' (BuildXL starts the process as an immediate child process), 'ExternalTool' (BuildXL starts a sandboxed process executor tool as a child process, and in turn the tool starts the admin-required process as its child process), 'ExternalVM' (BuildXL sends command to VM to execute a sandboxed process executor tool in VM, and in turn the tool starts the admin-required process as its child process) . For Internal and ExternalTool, the process will be run with the same elevation level as BuildXL. For ExternalVM, the process will be run with the elevation level in the VM. Defaults to 'Internal'.
AdoConsoleMaxIssuesToLogSpecifies the maximum number of issues(errors and warnings) in the ADO console.
AllowFetchingCachedGraphFromContentCacheAllow fetching cached graph from content cache. Defaults to on.
AllowInternalDetoursErrorNotificationFileWhen enabled, the detoured processes will store internal errors in a special file. If this file contains data at the end of pip execution, the pip (build) will fail. Defaults to on.
AllowMissingSpecsWhen enabled, missing module and spec files will be logged as verbose events rather than errors during workspace generation.
AlwaysRemoteInjectDetoursFrom32BitProcessAlways use remote detours injection when launching processes from a 32-bit process. Defaults to true.
AnalyzeDependencyViolationsWhen enabled, file monitoring violations will be analyzed to emit additional warnings about high-level dependency problems (examples include double-writes and read-write races). Defaults to on.
AugmentingPathSetCommonalityFactorUsed to compute the number of times (i.e. {augmentingPathSetCommonalityFactor} * {pathSetThreshold}) an entry must appear among paths in the observed path set in order to be included in the common path set. Value must be (0, 1]
BreakOnUnexpectedFileAccessBreak into the debugger when {ShortProductName} detects that a tool accesses a file that was not declared in the specification dependencies. This option is useful when developing a new tool or SDKs using these tools. Defaults to off.
BuildLockPollingNumber of seconds to wait for an executing build to finish before polling again for completion. Defaults to 15 sec.
BuildManifestVerifyFileContentOnHashComputationWhen enabled, ensures that file's content matches the hash provided by the engine before proceeding to compute a build manifest hash for that file.
BuildTimeoutMinsThe time elapsed (in minutes) since BuildXL is launched when an external entity will terminate the build. BuildXL will fail the build and shutdown gracefully an epsilon before the specified timeout to avoid an ungraceful exit. The epsilon is variable and is computed as a small percentage of the length of the specified timeout.
CacheConfigFilePathPath to cache config file.
CacheDirectorySpecifies the root directory for the incremental artifact cache (short form: /cd)
CacheGraphCaches the build graph between runs, avoiding the parse and evaluation phases when no graph inputs have changed. Defaults to on.
CacheMissWhen enabled, {ShortProductName} performs the on-the-fly cache miss analysis during the execute phase. If no value is given (/cacheMiss+), the local FingerprintStore is used for comparison. The user can pass the list of changesets if they want to compare the build to a remote FingerprintStore: /cacheMiss:[::...]. Defaults to off.
CacheMissDiffFormatDiff format for cache miss analysis. Allowed values are CustomJsonDiff and JsonPatchDiff. Defaults to CustomJsonDiff
CacheOnlyOnly processes cache hits. Any pips that are cache misses will skip execution. Skipped pips will not cause the build session to fail.
CacheSessionNameIf specified, this is the new unique cache session name for this build. If not given, the build cache session will not be tracked.
CacheSpecsCaches build specification files to a single large file to improve read performance on spinning disks. When unset the behavior is dynamic based on whether root configuration file is on a drive that is detected to have a seek penalty. May be forced on or off using the flag.
CanonicalizeFilterOutputsCanonicalize filter for output filtering. Defaults to on.
ChannelIdentifies a communication channel. If not specified, the default channel name is derived from the main configuration file. Use together with /listen.
CheckDetoursMessageCountWhen enabled, {ShortProductName} will check the count of messages sent to {ShortProductName} from the pip process tree and will fail the pip (build) if there is mismatch. Defaults to on.
CleanOnlyDeletes output files that would have been produced by the build. Pips will not be executed.
CleanTempDirectoriesCleans per pip temp directories after the pip successfully exits to save disk space. Defaults to on.
ColorUse colors for warnings and errors. Defaults to using colors.
CompressGraphFilesWhen enabled, graph files are compressed.
ConfigConfiguration file that determines {ShortProductName}'s behavior (short form: /c)
ConsoleVerbositySets the console logging verbosity. Allowed values are 'Off', 'Error', 'Warning', 'Informational' and 'Verbose', and the single-character prefixes of those values. Defaults to Informational. (short form: /cv)
CustomLogSets a custom log file for a specific set of event IDs. Event list should be comma separated integers excluding the DX prefix.
Debug_LoadGraphLoads a cached build graph stored under the given fingerprint (40 digit hex string, no delimiters), path to cached graph directory, or canonical name.
DebuggerBreakOnExitWhether to break at the end of the evaluation phase. Defaults to off.
DebuggerPortTCP/IP port for the {ShortScriptName} debugger to listen on. Defaults to 41177.
DebugIgnoreChangeJournalIf disabled, {ShortProductName} will not use the NTFS / ReFS change journal for caching or incremental builds. This is an unsafe configuration (for diagnostic purposes only). Defaults to on.
DebugScriptWhether to launch {ShortScriptName} debugger on start. Intended to be used by IDEs only (if you pass this option when running form command line, {ShortScriptName} evaluator will just wait forever). Defaults to off.
DependencySelectionSpecifies additional pips to run based on dependency information of pips matched in filter. May be: empty (all dependencies) or "+" (dependencies and dependents).
DeprioritizeOnSemaphoreConstraintsEnables the de-prioritization when there is a semaphore constraint, so that other lower-priority pips can be scheduled.
DiagnosticEnables diagnostic logging for a functional area. This option may be specified multiple times. Areas: Scheduler, Parser, Storage, Transformers, Engine, Viewer, PipExecutor, PipInputAssertions, ChangeJournalService, HostApplication, CommonInfrastructure, CacheInteraction, HybridInterop. (short form: /diag)
DisableConHostSharingDisables sharing of the Windows ConHost process between pips. Defaults to sharing enabled.
DistributedBuildOrchestratorLocationSpecifies the IP address or host name and TCP port of the orchestrator machine to which a worker will connect to join a build session. This argument is redundant if the orchestratro is invoked with /distributedBuildWorker specified for this worker. (short form: /dbo)
DistributedBuildRoleSpecifies the role the node plays in the distributed build: None, Orchestrator, or Worker. This argument is required for executing a distributed build. (short form: /dbr)
DistributedBuildServicePortSpecifies the TCP port of a locally running distributed build service (orchestrator or worker) which peers can connect to during a distributed build. This argument is required for executing a distributed build. (short form: /dbsp)
DistributedBuildWorkerSpecifies the IP address or host name and TCP port of remote worker build services which this process can dispatch work to during a distributed build (can specify multiple). This argument is redundant if the corresponding worker is invoked with /distributedBuildOrchestratorLocation specified. (short form: /dbw)
DumpFailedPipsWhen enabled, the runtime dump pip lite analyzer will log information regarding failed pips under Out/Logs/FailedPips for debugging.
DumpFailedPipsLogLimitSets the maximum number of log files that are allowed to be generated by the dump pip lite analyzer (default 50).
DumpFailedPipsWithDynamicDataEnable this option to dump observed file accesses and processes with the dump pip lite analyzer (requires /logObservedFileAccesses+ and/or /logProcesses+ to be set as well).
EarlyWorkerReleaseWhether remote workers should be released early in case of insufficient amount of work.
EarlyWorkerReleaseMultiplierMultiplier for how aggressively to release workers. Larger values will release workers more aggressively. A value of 1 will release a worker when the number of unfinished (including currently running) pips can be satisfied by the concurrency with one fewer worker.
EBPFRingBufferSizeMultiplierServicing option to increase the size of EBPF ring buffer if pips experience reservation issues. The multiplier has to be a power of two. Defaults to 1.
EnableDedupChunkWhen enabled, DedupChunk hashing algorithm is used instead of VSO0. Defaults to off.
EnableIncrementalFrontEndEnables incremental spec analysis based on number of changed specs. Defaults to on.
EnableLazyOutputsEnables lazy materialization (deployment) of pips' outputs from local cache. Defaults to on.
EnableLinuxEBPFSandboxEnables an EBPF-based sandbox on Linux. Defaults to on.
EnableLinuxPTraceSandboxEnables the ptrace sandbox on Linux when a statically linked binary is detected. Note that this will have a negative impact on performance, but is necessary to ensure correctness on some Linux builds.
EnablePluginsWhen enabled, plugins are allowed to be loaded. Defaults to off.
EnableWorkerSourceFileMaterializationEnables materialization of source files on distributed workers. NOTE: Source files are required to be present in the worker's remote or local cache.
EnforceAccessPoliciesOnDirectoryCreationIndicates whether {ShortProductName} should enforce access policies on CreateDirectory for paths under writable mounts as well as the cases when the directory already exists. Defaults to off.
EnforceFullReparsePointsUnderPathEnforce that files accessed which begin with the given path will enforce reparse points underneath said path. All transitive reparse points encountered after enforcing and resolving the first one are also enforced, regardless of path.
EngineCacheDirectoryAllows overriding where engine state will be cached. If unset, it will be stored in a subdirectory of the artifact cache.
EngineDumpTriggerCaptures a memory dump of the BuildXL process when a threshold is met. Specify a value with a unit suffix: 8000mb (when process memory exceeds 8000 MB), 600s (after 600 seconds of build execution), or 50pct (when 50% of pips are complete). The dump is written to the logs directory. Prefers dotnet-gcdump if installed; otherwise falls back to a full process dump.
EnvironmentEnvironment build is running in. Allowed values '{0}'.
ExitOnNewGraphWhen enabled, exit early if a new graph needs to be created. This differs from phase:schedule because it doesn't actually create the graph.
Experimental__0Enables an experimental feature (short form: /exp). Available experimental features: {0}
ExplicitlyReportDirectoryProbesWhen enabled, detours will explicitly report directory probes. Note that this may result in an increased amount of DFAs.
FancyConsoleWhen enabled, the console will give frequent updates of the status of processes that are running. Defaults to off.
FancyConsoleMaxStatusPipsMaximum number of concurrently executing pips to render in Fancy Console view. Defaults to 5.
FileChangeTrackerInitializationModeModes for initializing file change tracker. Allowed values are ResumeExisting, ForceRestart. Defaults to ResumeExisting.
FileChangeTrackingExclusionRootSpecifies one or more roots to be excluded from file change tracking. NOTE: This flag is not compatible with /incrementalScheduling which requires all paths to be tracked.
FileChangeTrackingInclusionRootSpecifies one or more roots to be included in file change tracking. NOTE: When specified all paths not under inclusion roots are excluded from file change tracking. This flag is not compatible with /incrementalScheduling which requires all paths to be tracked.
FileContentTableEntryTimeToLiveTime-to-live for file content table entries. Min value is 1, max value is 65535. Defaults to 255.
FileContentTableFilePath to file content table to use. Defaults to FileContentTable in engine cache.
FileSystemModeSpecifies the type of filesystem rules to use when the sandbox computes input assertions. Allowed values are: 'RealAndMinimalPipGraph' ({ShortScriptName} default) - uses the real filesystem for read only mounts and a minimal pip graph based view for writeable mounts, 'RealAndPipGraph' (XML default) - same as RealAndMinimalPipGraph except a full pip graph is used, 'AlwaysMinimalGraph' - always uses the pip graph.
FileVerbositySets the file logging verbosity. Allowed values are 'Off', 'Error', 'Warning', 'Informational' and 'Verbose', and the single-character prefixes of those values. Defaults to Verbose. (short form: /fv)
FilterSpecifies a filter expression (short form: /f). See verbose help (/help:verbose) for details about constructing filter expressions.
FilteringInfoYou can choose to build only a subset of available pips by using filtering.
FingerprintSaltSalts fingerprints used for caching. May be specified multiple times and values concatenate with delimiter. Empty value clears previous values. '*' is unique each run.
FlushPageCacheToFileSystemOnStoringOutputsToCacheFlush page cache to file system on storing outputs to cache. Defaults to off.
ForceAddExecutionPermissionWhen set to true, it enables the execution permission for the root process of process pips in Linux builds. Defaults to true.
ForwardWorkerLogConfigure additional verbose event IDs that workers will forward to the orchestrator, in addition to warnings and errors (which are always forwarded).
GenerateCgManifestGenerates a cgmanifest.json file at the specified path. This file contains the names and versions for all Nuget packages used within BuildXL, and is used for Component Governance during CloudBuild.
HardExitOnErrorInDetoursWhen enabled, detours will exit the process on Detours error with a special exit code. Defaults to on.
HelpDisplay this usage message (Short form: /?). See verbose help with /help:verbose. See DX code specific help with /help:1234.
HonorDirectoryCasingOnDiskWhen true, casing of directories for dynamic outputs will match the ones found on disk when a pip is done executing (as opposed to using the casing of the first time the path is mentioned in the build). Useful on Windows when tools are case sensitive. Defaults to false.
IgnoreNonExistentProbesWhen enabled, {ShortProductName} will not report non existent probes, that are not in sealed directories. This might lead to incorrect builds because some file accesses will not be enforced and validated. Certain calls to GetFileAttribute method for non existing files will not be reported to {ShortProductName}.
ImmediateWorkerReleaseImmediately drops the specified number of workers from a distributed build session. Useful in conjunction with AB testing to test different worker counts.
IncrementalWhen enabled, artifacts are built incrementally based on which source files have changed. Defaults to on.
IncrementalSchedulingWhen enabled, scheduling is performed incrementally. Defaults to off.
InferNonExistenceBasedOnParentPathInRealFileSystemInfers the non-existence of a path based on the parent path when checking the real file system in file system view. Defaults to on.
InjectCacheMissesSets a rate for artificial cache misses (pips may be re-run with this likelihood, when otherwise not necessary). Miss rate and options are specified as "[]Rate[#Seed]". The '' symbol negates the rate (it becomes an allowed hit rate). The 'Rate' must be a numeric value in the range [0.0, 1.0]. The optional 'Seed' is an integer value fully determining the random aspect of the miss rate (the same seed and miss rate will always pick the same set of pips).
InputChangesPath to file containing a list of input changes, separated by new lines. The formats of an input change is '
InteractiveWhen enabled indicates that {ShortProductName} is allowed to interact with the user either via console or popups. A common use case is to allow front ends like nuget to display authentication prompts in case the user is not authenticated.
LaunchDebuggerLaunches the debugger during boot (in the server process if applicable).
LimitPathSetsOnCacheLookupLimits the number of path sets to be checked during cache lookup. Once the limit is reached, the pip is determined to have a cache miss. Defaults to off. The number of path sets can also be set. Defaults to 0 (off).
LogCatalogRecords the set of spec files added to the catalog. Defaults to off.
LogExecutionLogs an execution trace to the default trace file in the same folder as the main log file. Defaults to on.
LogFileAccessTablesRecords the file enforcement access tables for individual pips to the log. Defaults to off.
LogMemoryCollects actual memory usage when collection performance counters. This has a negaitve performance impact and should only be used when analyzing memory consumption. Defaults to off.
LogObservedFileAccessesRecords the files observed to be accessed by individual pips to the log. Defaults to off.
LogOutputSpecifies how process standard error and standard output should be reported. Allowed values are 'TruncatedOutputOnError', 'FullOutputAlways', 'FullOutputOnError', 'FullOutputOnWarningOrError'. Default is 'TruncatedOutputOnError'.
LogPipStaticFingerprintTextsLog pip static fingerprint texts. Defaults to off.
LogPrefixThe prefix to add to all log file names (default: {ShortProductName})
LogProcessDataWhen enabled, records process execution times and IO counts and transfers. Requires /LogProcesses to be enabled. Defaults to off.
LogProcessDetouringStatusWhen enabled, store the Detouring Status messages in the Execution log. Defaults to off.
LogProcessesRecords all launched processes, including nested processes, of each pip to the log. Defaults to off.
LogsDirectorySpecifies the path to the logs directory.
LogsToRetainThe number of previous logs to retain.
LogToConsoleDisplays the specified messages in the console.
LogToKustoThis flag is deprecated. Use /logToKustoBlobUri:https://{storage-account-name}/{container-name} and /logToKustoIdentityId:{Identity guid} to specify the destination of the log messages. Log to kusto will be enabled if both options are provided.
LogToKustoBlobUriSpecifies the blob storage account URI to send log events to Kusto. The format is /logToKustoBlobUri:https://{storage-account-name}/{container-name}. This option must be used with /logToKustoIdentityId.
LogToKustoIdentityIdSpecifies the identity ID to use when sending log events to Kusto. The format is /logToKustoIdentityId:{Identity guid}. This option must be used with /logToKustoBlobUri.
LogToKustoIngestUriKusto cluster URI and database for direct queued ingestion of unstructured telemetry. Expected format: https://..kusto.windows.net/?clientId=&tenantId=&serviceConnectionId=
LowPriorityRuns the build engine and all tools at a lower priority in order to provide better responsiveness to interactive processes on the current machine.
MachineHostNameSpecifies the host name where the machine running the build can be reached. This value should only be overriden by build runners, never by a user. In particular, we need it to be overriddable because on ADO networks the machines are not reachable in the hostname that GetHostName returns, and we need a special suffix that is appended by the AdoBuildRunner.
ManageMemoryModeSpecifies the mode to manage memory under pressure. Defaults to CancellationRam where {ShortProductName} attemps to cancel processes. EmptyWorkingSet mode will empty working set of processes instead of cancellation. Suspend mode will suspend processes to free memory.
MaskUntrackedAccessesWhen enabled, {ShortProductName} does not consider any access under untracked paths or scopes for sake of cache lookup. Defaults to on.
MaxCacheLookupSpecifies the maximum number of cache lookups that {ShortProductName} will launch at one time. The default value is the number of processors in the current machine.
MaxChooseWorkerSpecifies the maximum number of choose worker operations that {ShortProductName} will launch at one time for distributed builds. The default value is 1/4 of the number of processors in the current machine, but at least 1.
MaxChooseWorkerCacheLookupSpecifies the maximum number of choose worker cache lookup operations that {ShortProductName} will launch at one time for distributed builds. The default is 1.
MaxChooseWorkerLightSpecifies the maximum number of choose worker operations that {ShortProductName} will launch at one time for light pips in distributed builds. The default is 1.
MaxCommitUtilizationPercentageSpecifies the maximum machine wide commit utilization allowed before the scheduler will stop scheduling more work to allow resources to be freed. Defaults to 95%.
MaxFrontEndConcurrencySpecifies the maximum concurrency level for constructing the pip graph in the FrontEnd. The default value is 25% more than the total number of processors in the current machine. (short form: /mf)
MaxIOSpecifies the maximum number of I/O operations that {ShortProductName} will launch at one time. The default value is the number of processors in the current machine.
MaxIOMultiplierSpecifies maxIO in terms of a multiplier of the machine's processor count.
MaxLightProcSpecifies the maximum number of "light" processes that {ShortProductName} will launch at one time. Build specs can mark certain processes as "light" to indicate that they won't use much CPU time. Defaults to 0.
MaxMaterializeSpecifies the maximum number of materialize operations that {ShortProductName} will launch at one time. Defaults to the number of processors in the current machine.
MaxNumPipTelemetryBatchesSpecifies the maximum number of batched messages to be sent to telemetry, default set to 10 messages.
MaxProcSpecifies the maximum number of processes that {ShortProductName} will launch at one time. Defaults to 0.9 times the total number of processors in the current machine.
MaxProcMultiplierSpecifies maxProc in terms of a multiplier of the machine's processor count.
MaxRamUtilizationPercentageSpecifies the maximum machine wide RAM utilization allowed before the scheduler will stop scheduling more work to allow resources to be freed. Defaults to 90%.
MaxRelativeOutputDirectoryLengthDirectories under the object directory root will get shortened to avoid too long path names. Defaults to 64 characters for relative output directories.
MaxTypeCheckingConcurrencySpecifies the maximum concurrency level type checking phase. Defaults to /maxFrontEndConcurrency - 25% more than the total number of processors in the current machine.
MinAvailableRamMbThis flag is deprecated.
MinimumDiskSpaceForPipsGbSpecify the required minimum available disk space in Gigabytes. Default value set to 0GB (disabled). Pips will fail if the specified amount of disk space in unavailable.
MsBuild_EnableBinLogTracingControls whether MSBuild binlog tracing should be enabled for the build. The binlog is placed in the logs directory for each MSBuild project as 'msbuild.binlog'. WARNING: This option increases build I/O and should only be used temporarily to avoid increased build times.
MsBuild_EnableEngineTracingControls whether MSBuild engine/scheduler tracing should be enabled for the build. WARNING: Use this option only temporarily as it will significantly increase build times.
MsBuild_LogVerbosityActivates MSBuild file logging for each MSBuild project file to 'msbuild.log' in the log directory, using the specified MSBuild log verbosity. WARNING: This option adds I/O overhead to your build, since MSBuild console logging is already enabled and captured, and use of Detailed or Diagnostic levels should only be used temporarily to avoid significantly increased build times.
NoExecutionLogRemoves a set of event IDs from the execution log (.xlg).
NoLogRemoves a set of event IDs from the standard log. Does not apply to warning, error, critical, and always level events.
NoLogoSuppress copyright message
NormalizeReadTimestampsWhen enabled, all file reads seen by processes will have normalized timestamps across builds. When disabled, the actual timestamps will be allowed to flow through to processes, so long as they are newer than the static timestamp used to enforce rewrite ordering (2002). Defaults to on.
NoWarnDisable specific warning messages. These messages will still be logged in the main log file.
NumRetryFailedPipsOnAnotherWorkerSpecify the number of times a pip failing due to worker failures, should be retried on another worker. Default value set to 0 (disabled).
ObjectDirectorySpecifies the root directory for primary build outputs (short form: /o)
OrchestratorCpuMultiplierSpecifies the cpu queue limit in terms of a multiplier of the normal limit when at least one remote worker gets connected. Defaults to 0.
OutputMaterializationExclusionRootSpecifies one or more roots to be excluded from output materialization. NOTE: Files needed for execution are always materialized even if under this root.
PathsPaths to output files or spec files which determine what gets built. This is a shorthand for a full filter expression.
PathSetAugmentationMonitoringCheck that the paths used in creating an augmented pathset/weak fingerprint are used during the execution of a pip. If a path is not used it's logged together with its hash. The argument controls the max number of paths logged per executed pip. If the value is set to 0, the monitoring is disabled.
PathSetThresholdThe maximum number of visited path sets allowed before switching to an 'augmented' weak fingerprint computed from common dynamically accessed paths.
PhaseSpecifies the phase until which {ShortProductName} runs. Allowed values are None (no phase is run), Parse (run until parsing is done), Schedule (run until scheduling is done), Execute (run until execution is done). Default is Execute.
PinCachedOutputsIndicates whether outputs should be pinned in CAS for cached pips. Defaults to on.
PipDefaultTimeoutHow long to wait before terminating individual processes. The argument allows an expression that represents a time duration, like "3s", "500ms", "30m", "1.5h". The allowed suffixes are 'ms', 's', 'm', 'h', and no suffix is interpreted as an amount in milliseconds. Setting this value will only have an effect if no other timeout is specified for a process.
PipDefaultWarningTimeoutAfter how much time to issue a warning that an individual process ran too long. The argument allows an expression that represents a time duration, like "3s", "500ms", "30m", "1.5h". The allowed suffixes are 'ms', 's', 'm', 'h', and no suffix is interpreted as an amount in milliseconds. Setting this value will only have an effect if no other timeout is specified for a process.
PipFirstReportActivityTimeoutHow long to wait for the first file access report before warning a process may be stalled. Allows a longer startup window for slow-initializing processes. When not set, falls back to pipReportActivityTimeout. Windows only.
PipPropertySets execution behaviors for a pip. Supported properties:
PipFingerprintSalt - adds a pip specific salt value or '' for a random salt. Ex: /pipProperty:Pip4354554[PipFingerprintingSalt=]
EnableVerboseProcessLogging - Enables verbose sandbox logging for specific pips. This is equivalent to switching /logObservedFileAccesses and /logProcesses for these pips, and also enabling verbose debug logging in the sandbox. Example: /pipProperty:Pip232325435435[EnableVerboseProcessLogging]
PipReportActivityTimeoutHow long to wait between consecutive file access reports before warning a process may be stalled. The argument allows an expression that represents a time duration, like "3s", "500ms", "30m", "1.5h". Disabled by default. Windows only.
PipTimeoutMultiplierMultiplier applied to the final timeout for individual processes. Setting a multiplier greater than one will increase the timeout accordingly for all pips, even those with an explicit non-default timeout set.
PipWarningTimeoutMultiplierMultiplier applied to the warning timeout for individual processes. Setting a multiplier greater than one will increase the warning timeout accordingly for all pips, even those with an explicit non-default warning timeout set.
PluginPathsSpecify a list of plugin paths that be loaded - each path is seperated by ";'. Defaults to empty list
PosixDeleteModeControls the applicability of file/directory deletion using POSIX delete. Allowed values are NoRun, RunFirst, and RunLast. Defaults for Windows is RunLast, and for Unix is RunFirst
ProcessRetriesNumber of retries for process execution if the process exits with exit codes that allow for retries. Defaults to 0.
ProfileReportDestinationDestination file of the profiling report. Default is '{0}' and it is generated in the current directory. Only considered if /profileScript is specified.
ProfileScriptRuns a profiler for {ShortScriptName} evaluation, generating a TSV file with profiling information.
PropertySpecifies a property that overrides an allowed environment variable (short form: /p)
QualifierQualifiers controlling what flavor to build (short form: /q)
RamSemaphoreMultiplierRepresents the RAM semaphore limit as a multiplier of the available RAM at the start of the build.
RelatedActivityIdAn external related ETW activity identifier. The top level {ShortProductName} activity will be logged as a child of this one.
RemoteTelemetryWhen enabled, sends telemetry information for remote collection. Defaults to off.
ReplayWarningsWhen enabled, {ShortProductName} will replay warning messages from pips that were cache hits. Defaults to on.
ResponseFileRead response file for more options
ReuseEngineStateReuse engine state between client sessions if /server and /cacheGraph are enabled. Defaults to on.
ReuseOutputsOnDiskReuse outputs on disk for checking up-to-dateness during cache look-up and for file materialization
RootMapSpecifies a drive mapping applied during this build. Paths under specified letters will be mapped to the corresponding paths at the system level for the build process and the tools launched as a part of the build. (short form: /rm)
RunInSubstImproves path stability across potentially heterogeneous machines by internally mapping a source path (typically the source of the repo to build) into a drive letter. If the source path is not explicitly provided with /substSource, the location of the main config file is used. Only effective on Windows, in other platforms the option is ignored. Useful for dev cache.
SandboxKindSpecifies the sandbox kind. Allowed values are 'None' (no sandboxing), 'Default' (default sandboxing), 'WinDetours'. Default is 'Default'.
ScanChangeJournalScans volume change journals to determine spec file changes for graph reuse check. Defaults to on.
ScanChangeJournalTimeLimitInSecTime limit in second for scanning volume change journal. Set to -1 for no limit. Defaults to 30 seconds.
SchedulerSimulatorWhether to conduct simulations using a variety of SKU and worker count combinations to estimate the build duration.
ScriptShowLargestIndicates whether {ShortProductName} should log information about the largest {ShortScriptName} files. Defaults to off.
ScriptShowSlowestIndicates whether {ShortProductName} should log information about the slowest {ShortScriptName} elements by phase. Defaults to off.
ScriptTypeCheckType checks specifications. Defaults to on.
ScrubBefore executing, scrubs (deletes) files not marked as inputs or outputs of the current build. Only applies to mounts marked as Scrubbable. This includes the object directory but none others by default. Defaults to off.
ScrubDirectoryBefore executing, scrubs (deletes) files and directories not marked as inputs or outputs of the current build in the specified directory. Only applies to directories under mounts marked as Scrubbable.
ServerLaunches or connects to a {ShortProductName} app-server (builds may occur in a re-usable background process, with reduced startup time). Defaults to on.
ServerDeploymentDirSets the directory where the server process deployment will be created. It not specified, the deployment will be created in the directory {MainExecutableName} is running from.
ServerMaxIdleTimeInMinutesMaximum idle time in minutes for server mode. Defaults to 60 minutes.
ShowingStandardHelpStandard help shown. For complete help options, use /help:verbose
SkipScrubbingOnCleanMachineWhen enabled, skips scrubbing if no prior BuildXL execution has occurred on this machine. Enabled by default in ADO pipelines. Defaults to off.
SolutionNameSpecifies the name of the solution which will be generated via /vs.
StopOnFirstErrorStops the build engine the first time an error is generated by either {ShortProductName} or one of the tool it runs. Defaults to off.
StopOnFirstInternalErrorStops the build engine the first time an internal error is generated by {ShortProductName}. Defaults to off for single machine builds.
StoreFingerprintsStores fingerprint computation information for each pip seen in the build in a peristent key-value store that can be accessed from the logs.
StoreFingerprintsWithModeStores fingerprint computation information for each pip seen in the build in a peristent key-value store that can be accessed from the logs. "Default" mode will check for pre-existing entries before overwriting entries. "ExecutionFingerprintsOnly" mode will only store fingerprints computed when a pip executes. On strong fingerprint cache misses, setting this will SKIP storing fingerprints computed at cache lookup time, which are useful for analyzing strong fingerprint misses. "IgnoreExistingEntries" mode will overwrite entries without doing any (random) reads, this is only recommended on spin drives experiencing slowdowns.
StoreOutputsToCacheWhen enabled, {ShortProductName} stores pip outputs to the cache. Defaults to on.
SubstSourcePath of the original root that has been substituted to another. Log messages will be converted back to this path root. Must be specified with /substTarget.
SubstTargetPath of the subst target. Messages rooted at this path will be converted to the root configured in SubstSource. Must be specified with /substSource
TelemetryTagPrefixPrefix of tag considered for sending aggregate statistics to telemetry
TempDirectorySpecifies the root directory for per-pip temp directories. When unspecified, temp directories will be created under the per-pip object directories.
TraceInfoAttaches tracing information to the build. May be specified multiple times. Ex: /TraceInfo:Branch=MyBranch
TrackBuildsInUserFolderWhen enabled, {ShortProductName} will log every build invocation in the users folder so analyzers can use that to figure out what to use. Defaults to on.
TrackGvfsProjectionsWhen enabled, {ShortProductName} will track every .gvfs/GVFS_projection file found in any readable mount and disable features that depend on USN journal scanning whenever any of those files change. Defaults to off.
TrackMethodInvocationsWhen enabled, {ShortProductName} captures most frequently invoked {ShortScriptName} methods. Defaults to off.
TranslateDirectorySpecify translation of directories before access policy is applied - the fromPath is replaced with toPath in the names of paths accessed. Make sure to add the trailing path separators. Valid from/to path separators are '<' and ' and '::'. Recommended separator is '::'. Defaults to no directory translation is done.
TreatAbsentDirectoryAsExistentUnderOpaqueTreats absent directory as existent when it is probed and the path is under an opaque directory. Defaults to true.
TreatDirectoryAsAbsentFileOnHashingInputContentTreats directory as absent file on hashing the content of input
Unsafe_AllowCopySymlinkWhen enabled, allow copying symlink. Defaults to true.
Unsafe_AllowDuplicateTemporaryDirectoryWhen enabled, pips with duplicate temporary directories are allowed. Defaults to false.
Unsafe_AssumeCleanOutputsWhen enabled, BuildXL assumes there are no stale outputs from previous builds.
Unsafe_DisableCycleDetectionDisables cycle detection during evaluation. Defaults to off.
Unsafe_DisableDetoursWhen enabled, {ShortProductName} will not detour any processes. This might lead to incorrect builds because any file accesses will not be enforced.
Unsafe_DisableGraphPostValidationDisables post validation of graph construction. Defaults to on.
Unsafe_ExistingDirectoryProbesAsEnumerationsWhen enabled, {ShortProductName} will report existing directory probes as enumerations. This might lead to cases where pips will be executed even when there is no need for it.
Unsafe_ForceSkipDepsSpecifies that dependencies of processes requested in the filter should be skipped as long as all the inputs are present.
Unsafe_IgnoreDynamicWritesOnAbsentProbesWhen enabled, {ShortProductName} will not flag as violations absent path probes that coexist with writes under output directories for those same paths.
Unsafe_IgnoreFullReparsePointResolvingWhen enabled, {ShortProductName} will not fully resolve paths containing any sort of reparse point. This might lead to incorrect builds because some file accesses will not be enforced or tracked at all.
Unsafe_IgnoreReparsePointsWhen enabled, {ShortProductName} will not track reparse points. This might lead to incorrect builds because some file accesses will not be enforced. Any reparse points (symlinks and mount points) will not be followed.
Unsafe_IgnoreUntrackedPathsInFullReparsePointResolvingWhen enabled, untracked paths, if symlinks, are not fully resolved. Defaults to off.
Unsafe_MonitorCreateProcessAsUserControl whether detours on Windows will monitor CreateProcessAsUser[A
Unsafe_MonitorFileAccessesWhether {ShortProductName} is to monitor file accesses of individual tools at all. Disabling monitoring results in an unsafe configuration (for diagnostic purposes only). Defaults to on.
Unsafe_OptimizedAstConversionWhen enabled, optimized AST conversion by disabling some analyses and skipping some AST constructs. By disabling analyses linter policies are not enforced. The types in the resulting AST are stripped away as they are not needed for evaluation. Defauts to off.
Unsafe_PreserveOutputsWhen enabled, {ShortProductName} will preserve the existing state of Process pip output files instead of deleting them before starting the process. This may lead to incorrect builds depending on how the process behaves when prior outputs are present. Specify "/unsafe_preserveOutputs:Reset" to reset the salt added to cached processes run with preserved outputs.
Unsafe_TreatStatAsProbeControl whether on Linux stat calls are treated as probes. Enabled by default. The correct behavior is to treat stat calls as reads. The unsafe option is for now the default behavior for compatibility reasons.
Unsafe_UnexpectedFileAccessesAreErrorsWhen enabled, if {ShortProductName} detects that a tool accesses a file that was not declared in the specification dependencies, it is treated as an error instead of a warning. Turning this option off results in an unsafe configuration (for diagnostic purposes only). Defaults to on.
UpdateFileContentTableByScanningChangeJournalWhen enabled, file content table is updated during the scanning of change journal. Defaults to on.
UseCustomPipDescriptionOnConsoleIndicates whether pip descriptions should be shortened to (semi-stable hash, customer-supplied pip description) when reporting errors and warnings on the console. Defaults to on.
UseExtraThreadToDrainNtCloseWhen enabled, the draining of the {ShortProductName} handle cache happens on a different thread than the one that called the NtClose. Handles to be cleaned are collected in a thread safe, non-locking list and removed from the cache usinga different thread. Defaults to on.
UseFileContentTableWhen enabled, use file content table. Defaults to on on Windows, but off on Unix
UseFileContentTablePathMappingsUse file content table path mappings to avoid opening handles for hashing files already in the table. Defaults to off.
UseHardlinksWhen enabled, hardlinks will be used (when possible) to de-duplicate content in output directories with content in the build cache. This reduces space usage and improves performance, since copies are avoided. Creating hardlinks requires that the output directories and cache are on the same volume, and that volume must use NTFS. Defaults to on.
UseHistoricalCpuThrottlingUse the historical cpu usages of the process pips as a semaphore to limit the number of processes to execute.
UseLargeNtClosePreallocatedListWhen enabled, it uses a larger initial preallocated list for draining NtClose events. Defaults to off.
UsePartialEvaluationWhen enabled, a partial graph may be constructed to decrease evaluation time. Defaults to off for XML specs.
ValidateCgManifestValidates the cgmanifest.json file at the specified path. This file should contain up-to-date names and versions of all Nuget packages used within BuildXL for Component Governance. Any mismatch will cause the Build to fail. Updated file can be created using the /generateCgManifestForNugets:
ValidateDistributionPerforms validations to ensure the build can be distributed. Defaults to on for distributed builds, disabled in single machine builds.
VerifyCacheLookupPinVerifies pins for cache lookup output content by attempting to materialize the content. Defaults to off.
VerifyJournalForEngineVolumesVerifies that change journal is available for engine volumes (source/object/cache directories). Defaults to on.
VfsCasRootSpecifies the root of the virtualized CAS directory. This should be the same as the root passed to bvfs.exe.
VmConcurrencyLimitMax number of processes executed in VM. Value 0 means unbounded. Defaults to 0.
VSGenerates a VS solution file and MSBuild files for C# and C++ projects. Defaults to off.
VsOutputSrcMSBuild project files are written under the source tree. Defaults to off.
WarnAsErrorTreat all warnings as errors.
WarnAsErrorWithListReport specific warnings as errors.