- Overview
- Get started
- Concepts
- Using UiPath CLI
- How-to guides
- CI/CD recipes
- Command reference
- Overview
- Exit codes
- Global options
- uip codedagent
- uip coder
- uip context-grounding
- uip docsai
- uip function
- uip guardrails
- uip llm-configuration
- uip llm-gateway
- uip model-hub
- add-test-data-entity
- add-test-data-queue
- add-test-data-variation
- analyze
- build
- create-project
- diff
- find-activities
- get-analyzer-rules
- get-default-activity-xaml
- get-errors
- get-manual-test-cases
- get-manual-test-steps
- get-library-object-repository
- get-object-repository
- get-versions
- get-workflow-example
- indicate-application
- indicate-element
- inspect-package
- install-data-fabric-entities
- install-or-update-packages
- list-data-fabric-entities
- list-instances
- list-workflow-examples
- pack
- publish
- remote
- restore
- run, debug & execution
- run-file
- search-templates
- start-studio
- stop-execution
- tm
- uia
- uip tasks
- uip traces
- uip traces feedback
- Migration
- Reference & support
Syntax and options for `uip solution pack`, which produces a deployable `.zip` from a solution directory or `.uis` bundle file.
uip solution pack produces a deployable .zip package from a solution directory (containing a .uipx manifest) or from a .uis bundle file. The resulting archive is what uip solution publish uploads to the tenant feed, which uip solution deploy run can then deploy.
Pack is an offline operation — it does not contact Orchestrator except to resolve NuGet dependencies from tenant feeds (or an Orchestrator folder's library feed via --feed-folder) — so it is safe to run inside build steps that do not yet have full credentials, as long as dependency resolution is covered.
Synopsis
uip solution pack <solutionPath> [outputPath] \
[--name <name>] [--version <version>] \
[--dry-run] \
[--skip-analyze] [--governance-file-path <path> | --automation-ops-profile <profile>] \
[--nuget-sources-config-path <path>] [--exclude-configured-sources] [--feed-folder <name>] \
[--signing-certificate-path <path>] [--signing-certificate-password <password>] [--signing-timestamp-server <url>] \
[--author <text>] [--description <text>] [--release-notes <text>] [--project-url <url>] \
[--repository-url <url>] [--repository-commit <sha>] [--repository-branch <branch>] [--repository-type <type>] \
[--login-validity <minutes>]
uip solution pack <solutionPath> [outputPath] \
[--name <name>] [--version <version>] \
[--dry-run] \
[--skip-analyze] [--governance-file-path <path> | --automation-ops-profile <profile>] \
[--nuget-sources-config-path <path>] [--exclude-configured-sources] [--feed-folder <name>] \
[--signing-certificate-path <path>] [--signing-certificate-password <password>] [--signing-timestamp-server <url>] \
[--author <text>] [--description <text>] [--release-notes <text>] [--project-url <url>] \
[--repository-url <url>] [--repository-commit <sha>] [--repository-branch <branch>] [--repository-type <type>] \
[--login-validity <minutes>]
The command honours the global options and returns the standard exit codes.
Arguments
<solutionPath>(required) — Path to a solution directory (containing a.uipxmanifest) or a.uisfile.[outputPath](optional) — Output directory where the.zippackage will be written. Required unless--dry-runis set — omitting it without--dry-runfails with a pointer to add one or the other.
Options
Core
| Long | Value | Default | Description |
|---|---|---|---|
-n, --name <name> | text | solution folder name (or .uis file's base name) | Package name. The packaged .zip is named <name>_<version>.zip. |
-v, --version <version> | text | 1.0.0 | Package version. Appears in the output filename and is the value passed to --package-version on deploy run. |
--dry-run | flag | off | Run the full pack pipeline (resource sync, runtime-dependency emission, packager option validation) against a disposable temporary copy and discard the output. Catches pack-time failures — a missing dependency, a broken resource binding, an unpackable project type — without producing a .zip or writing anything back into the solution. It does not inspect the produced package's contents, so it cannot guarantee the solution feed will accept the result. Makes [outputPath] optional. |
--login-validity <minutes> | minutes | 10 | Minimum minutes before token expiration to trigger a refresh. Only relevant when dependency resolution needs a tenant feed. |
Dependency resolution
| Long | Value | Default | Description |
|---|---|---|---|
--nuget-sources-config-path <path> | path | — | Path to a NuGet sources configuration file for resolving project dependencies. |
--exclude-configured-sources | flag | off | Resolve dependencies only from tenant feeds and --nuget-sources-config-path. Drops the built-in UiPath and nuget.org feeds — a dependency not on those feeds fails to restore. |
--feed-folder <name> | name or path | — | Resolve dependencies from this Orchestrator folder's library feed instead of every tenant feed. Accepts a folder name or fully qualified path. |
Governance analysis
--skip-analyze, --governance-file-path, and --automation-ops-profile control the workflow analyzer that runs against every RPA project in the solution. --governance-file-path and --automation-ops-profile are mutually exclusive.
| Long | Value | Default | Description |
|---|---|---|---|
--skip-analyze | flag | off | Skip the workflow analyzer for every RPA project. Compilation and validation still run — only the analyzer rules are skipped. |
--governance-file-path <path> | path | — | Analyze every RPA project against this local governance policy file, instead of the analyzer rules shipped with the WorkflowCompiler. |
--automation-ops-profile <profile> | text | — | Analyze every RPA project against the governance policy published in AutomationOps for the signed-in tenant. The value is the product whose policy is downloaded — for example StudioWeb, Development, Business. |
An empty value for either governance flag (--governance-file-path "") is rejected as a mistake, not silently treated as "no flag."
Package signing
Signing an already-packed project's .nupkg requires the dotnet CLI on PATH.
| Long | Value | Default | Description |
|---|---|---|---|
--signing-certificate-path <path> | path | — | Path to a .pfx code-signing certificate. When set, every packed project .nupkg in the solution is signed before being bundled into the solution .zip. |
--signing-certificate-password <password> | text or env.VAR | — | Certificate password. Pass env.ENV_NAME to read from an environment variable instead of the shell history. |
--signing-timestamp-server <url> | URL | — | Timestamp server URL for the signature. |
Package metadata (source traceability)
These flags stamp traceability metadata into a package.metadata.json file at the archive root and into each project's .nuspec. None are required — omit them all and the package carries only name, version, and the two WorkflowCompiler-required defaults (author: "UiPath", description: "Created by UiPath" when not overridden).
| Long | Value | Default | Description |
|---|---|---|---|
--author <text> | text | UiPath | Package author. |
--description <text> | text | Created by UiPath | Package description. |
--release-notes <text> | text | — | Release notes for the package. |
--project-url <url> | URL | — | Automation Hub idea URL. |
--repository-url <url> | URL | — | Source repository URL. |
--repository-commit <sha> | text | — | Source repository commit hash. |
--repository-branch <branch> | text | — | Source repository branch. |
--repository-type <type> | text | git (when --repository-url is set) | Source repository type. Only recorded when --repository-url is also set. |
Examples
Minimal
uip solution pack ./my-solution ./dist
uip solution pack ./my-solution ./dist
Packs the solution at ./my-solution into ./dist/my-solution_1.0.0.zip (default version).
Common — pin name and version for a CI build
uip solution pack ./my-solution ./dist --name invoices --version 1.2.0
uip solution pack ./my-solution ./dist --name invoices --version 1.2.0
Writes ./dist/invoices_1.2.0.zip.
Validate without packing
uip solution pack ./my-solution --dry-run
uip solution pack ./my-solution --dry-run
Runs the full pack pipeline against a temporary directory and discards the output — useful as a pre-deploy gate in CI, since it catches resource-binding, variable-reference, and runtime-dependency errors without needing an outputPath.
Stamp source-traceability metadata
uip solution pack ./my-solution ./dist --version 1.2.0 \
--repository-url https://github.com/acme/repo \
--repository-commit abc123 \
--repository-branch main \
--release-notes "v1.2.0"
uip solution pack ./my-solution ./dist --version 1.2.0 \
--repository-url https://github.com/acme/repo \
--repository-commit abc123 \
--repository-branch main \
--release-notes "v1.2.0"
Sign packed projects
uip solution pack ./my-solution ./dist --version 1.2.0 \
--signing-certificate-path ./cert.pfx \
--signing-certificate-password env.UIPATH_SIGNING_CERTIFICATE_PASSWORD \
--signing-timestamp-server http://timestamp.digicert.com
uip solution pack ./my-solution ./dist --version 1.2.0 \
--signing-certificate-path ./cert.pfx \
--signing-certificate-password env.UIPATH_SIGNING_CERTIFICATE_PASSWORD \
--signing-timestamp-server http://timestamp.digicert.com
Skip the workflow analyzer
uip solution pack ./my-solution ./dist --version 1.2.0 --skip-analyze
uip solution pack ./my-solution ./dist --version 1.2.0 --skip-analyze
Compilation and validation still run — only the analyzer rules are skipped.
Analyze against a tenant governance policy
uip solution pack ./my-solution ./dist --version 1.2.0 --automation-ops-profile Development
uip solution pack ./my-solution ./dist --version 1.2.0 --automation-ops-profile Development
Scripting — capture the output path for the publish step
PKG=$(uip solution pack ./my-solution ./dist --version 1.2.0 --output-filter "Data.Packages" --output plain)
uip solution publish "$PKG"
PKG=$(uip solution pack ./my-solution ./dist --version 1.2.0 --output-filter "Data.Packages" --output plain)
uip solution publish "$PKG"
Data shape (--output json)
Real pack:
{
"Code": "SolutionPack",
"Data": {
"Package": "my-solution@1.2.0",
"Packages": "./dist/my-solution_1.2.0.zip"
}
}
{
"Code": "SolutionPack",
"Data": {
"Package": "my-solution@1.2.0",
"Packages": "./dist/my-solution_1.2.0.zip"
}
}
Package—<name>@<version>identifier for the packed solution.Packages— comma-separated list of.zippath(s) written to<outputPath>. Typically a single path.
Dry run (--dry-run):
{
"Code": "SolutionPack",
"Data": {
"Package": "my-solution@1.0.0",
"DryRun": true,
"Status": "Valid"
}
}
{
"Code": "SolutionPack",
"Data": {
"Package": "my-solution@1.0.0",
"DryRun": true,
"Status": "Valid"
}
}
Failure modes
- Missing
outputPathwithout--dry-run. Fails with a pointer to provide an output directory or pass--dry-run. - Conflicting governance flags.
--governance-file-pathand--automation-ops-profileare mutually exclusive; an empty value for either is rejected. - Output path inside a member project directory. Refused — anything written there would get packed into that project's own package on the next pack. Choose an output path outside the solution's project directories (for example
./outat the solution root, or a directory outside the solution entirely). - Unpackable project type. Names the project type and points at
uip tools search/uip tools install <tool>to add the packager tool that handles it (oruip updatefirst, if it's a newly added type).
Related commands
uip solution publish— uploads the packed.zipto the tenant solution feed.uip solution upload— alternative path that uploads the solution to Studio Web for interactive editing instead of packaging it for deployment.uip solution deploy run— deploys a published package to Orchestrator.
See also
- Your first pipeline — pack → publish → deploy run walkthrough.
uip solutionoverview.
- Synopsis
- Arguments
- Options
- Core
- Dependency resolution
- Governance analysis
- Package signing
- Package metadata (source traceability)
- Examples
- Minimal
- Common — pin name and version for a CI build
- Validate without packing
- Stamp source-traceability metadata
- Sign packed projects
- Skip the workflow analyzer
- Analyze against a tenant governance policy
- Scripting — capture the output path for the publish step
- Data shape (--output json)
- Failure modes
- Related commands
- See also