DotNet Build Action

The DotNet Build action in Continua CI is a wrapper around the .NET Core / .NET command line tools. If you're having trouble using the DotNet Build action, please refer to the .NET CLI documentation.

The DotNet Build action is used to build .NET projects. dotnet build

DotNet Build

DotNet Build action main tab

Name

A friendly name for this action (will be displayed in the actions workflow area).

Enabled

Determines if this action will be run within the relevant stage.

Project/Solution Path

Path to project file, solution file or folder. If a folder is specified, it will be searched for a file that has a file extension that ends in proj or is sln or slnx. Defaults to the workspace folder.

Working Folder

Optional working folder for running the executable. Defaults to the project folder.

Output Directory

Directory in which to place the built artifacts. Relative paths will be anchored to the workspace folder. [--output]

Using

The Using drop down is populated with any property collector whose namespace matches the pattern ^NetCore\.App.

If you create a property collector for this action, make sure you select the Path Finder PlugIn type and give it a name that will match the pattern above. Example names listed here, search the table's Plugin column for "DotNet Build".

For more in-depth explanations on property collectors see Property Collectors.

Alternatively, you can select the Custom option from the Using drop down list and specify a path in the resulting input field that will be displayed. Please read Why it's a good idea to use a property collector before using this option.

DotNet Bitness

The bitness of the DotNet executable. Options are Default, 32 Bit (X86), or 64 Bit (X64).

SDK Version

The SDK version to set in global.json file before running the DotNet executable.

Custom SDK Version

A custom SDK version string. This field is only visible when the SDK Version is set to 'Custom'.

Settings

DotNet Build action settings tab

Configuration

Configuration to use for building the project. Default for most projects is 'Debug'. [--configuration]

Framework

The target framework to build for. The framework must be specified in the project file. [--framework]

Runtime

Target runtime to build for. For a list of Runtime Identifiers (RIDs), see the RID catalog. [--runtime]

Artifacts Path

All build output files will go in subfolders under the specified path, separated by project. The folder structure is artifacts/<output-type>/<project-name>/<pivot> where output type is bin, obj, publish, or package, and pivot is a combination of configuration, target framework, and runtime identifier (e.g., debug, release_net8.0, release_linux-x64). [--artifacts-path]

Requires .NET 8 or later.

Version Suffix

The version suffix for an asterisk (*) in the version field of the project file. The format follows NuGet's version guidelines. [--version-suffix]

Source

The URI of a NuGet package source to use during the implicit restore operation. This overrides sources configured in NuGet.config. Useful when a build needs packages from a private feed or a specific source. [--source]

Requires .NET 6 or later.

Flags

DotNet Build action flags tab

No restore

Set this flag to skip running an implicit package restore before building. Use this when a restore has already been performed in a previous build step, to avoid unnecessary network calls and speed up the build. [--no-restore]

Requires .NET 2 or later.

No incremental build

Set this flag to mark the build as unsafe for incremental build. This turns off incremental compilation and forces a clean rebuild of the project dependency graph. [--no-incremental]

No dependencies

Set this flag to ignore project-to-project references and only build the root project. [--no-dependencies]

Force

Force all dependencies to be resolved even if the last restore was successful. This is equivalent to deleting the project.assets.json file. Use this when package sources or versions have changed and cached restore results may be stale. [--force]

Requires .NET 2 or later.

Self-contained

Controls whether the .NET runtime is bundled with your application. When set to True, the application includes the .NET runtime so the target machine does not need .NET installed, but the output size is significantly larger. When set to False, the application is framework-dependent and requires a compatible .NET runtime on the target machine. When set to Default, the behavior is determined by other project settings. [--self-contained]

Requires .NET 2 or later.

Use current runtime

Use the runtime version installed on the build agent as the target runtime. This is a convenient alternative to specifying a Runtime Identifier (RID) explicitly in the Runtime field. [--use-current-runtime]

Requires .NET 6 or later.

Additional Arguments

DotNet Build action additional arguments tab

Additional Arguments

Use this to specify additional command line arguments and properties. Note that these will be placed at the end of the command line and will override any other matching settings.

Options

DotNet Build action options tab

No logo

Suppress the startup banner and copyright message from the build log output. [--nologo]

Requires .NET 3 or later.

Log standard output

If this is ticked, the command line output is written to the build log.

Verbosity

The verbosity of logging to use. Only visible when Log standard output is enabled. [--verbosity]

Timeout (in seconds)

How long to wait for the action to finish running before timing out. Leaving this blank (or zero) will default to 86400 seconds (24 hours).

Treat failure as warning

Tick to continue build on failure marking the action with a warning status.

Ignore warnings

If this is ticked, any warnings logged will not mark the action with a warning status.

Environment

DotNet Build action environment tab

Environment Variables

Multiple environment variables can be defined - one per line. These are set before the command line is run.

Log environment variables

If this is ticked, environment variable values are written to the build log.

Generate system environment variables

Tick this checkbox to set up a list of new environment variables prefixed with 'ContinuaCI.' for all current system expression objects and variables.

Mask sensitive variable values in system environment variables

This checkbox is visible only if the 'Generate system environment variables' checkbox is ticked.

If this is ticked, the values of any variables marked as sensitive will be masked with **** when setting system environment variables. Clear this to expose the values.