DotNet Pack Action

The DotNet Pack action in Continua CI is a wrapper around the .Net Core command line tools. If you're having trouble using the DotNet Pack action, please refer to the .NET Core Command Line Tools documentation.

The DotNet Pack action is used to create NuGet packages from .Net Core projects.

DotNet Pack

DotNet Pack 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 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 packages. [--output]

Using

The Using drop down is populated with any property collector whose namespace matches the pattern defined by the DotNet CLI actions. The pattern for this action is ^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 Pack".

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 Pack action settings tab

Configuration

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

Runtime

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

Requires .NET 2 or later.

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]

Flags

DotNet Pack 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 build

When this flag is set, the build phase of the packing process is skipped. This implies --no-restore. Use this when the project has already been built in a previous build step. [--no-build]

Include symbols

Set this flag to generate a symbols NuGet package (.symbols.nupkg) alongside the regular package. Symbol packages contain PDB files that enable consumers of the package to debug into the package source code. [--include-symbols]

Include source

Set this flag to include source files in the NuGet package. The source files are placed in the src folder within the resulting symbols package, allowing consumers to step through the source code when debugging. [--include-source]

Serviceable

Set the serviceable flag in the package. This marks the package as eligible for servicing, which allows Microsoft or package maintainers to deliver targeted security or reliability patches for the assembly. This is primarily used for packages distributed as part of the .NET platform. [--serviceable]

No dependencies

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

Requires .NET 2 or later.

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.

Additional Arguments

DotNet Pack 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 Pack 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 amount of information detail to display in the build log. [--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 Pack 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.