“uip solution pack”的语法和选项,可从解决方案目录生成可部署的“.zip”或“.uis”捆绑包文件。
uip solution pack从解决方案目录(包含.uipx清单)或.uis捆绑包文件生成可部署的.zip包。uip solution publish会将生成的存档上传到租户订阅源,然后uip solution deploy run可以部署哪些存档。
打包是一项离线操作(打包不会联系 Orchestrator,除非是为了解析租户订阅源中的 NuGet 依赖项(或通过 --feed-folder 解决 Orchestrator 文件夹的库订阅源)),因此在尚不具有完整凭据的构建步骤中运行是安全的,如下所示只要涵盖依赖项解析。
大纲
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>]
参数
<solutionPath>(必填) — 解决方案目录(包含.uipx清单)或.uis文件的路径。[outputPath](可选) — 将写入.zip包的输出目录。除非设置了--dry-run,否则为必需— 未设置--dry-run则将其省略 — 提示您添加其中一个或多项将失败。
选项
核心
| 长 | 值 | 默认 | 描述 |
|---|---|---|---|
-n, --name <name> | text | 解决方案文件夹名称(或 .uis 文件的基本名称) | 包名称。打包后的 .zip 将命名为 <name>_<version>.zip。 |
-v, --version <version> | text | 1.0.0 | 包版本。显示在输出文件名中,是在 --package-version 上传递给 deploy run 的值。 |
--dry-run | 标记 | 关闭 | 对一次性临时副本运行完整的打包管道(资源同步、runtime 依赖项发出、打包程序选项验证)并丢弃输出。捕获打包时故障(缺少依赖项、资源绑定损坏、无法打包的项目类型),而不会生成 .zip 或将任何内容写回解决方案。它不会检查生成的包的内容,因此不能保证解决方案订阅源会接受结果。使 [outputPath] 可选。 |
--login-validity <minutes> | 分钟 | 10 | 在令牌过期前触发刷新的最短分钟数。仅在依赖项解析需要租户订阅源时相关。 |
依赖项解决
| 长 | 值 | 默认 | 描述 |
|---|---|---|---|
--nuget-sources-config-path <path> | 路径 | — | 用于解决项目依赖项的 NuGet 源配置文件的路径。 |
--exclude-configured-sources | 标记 | 关闭 | 仅解决租户订阅源和 --nuget-sources-config-path 中的依赖项。删除内置 UiPath 和 nuget.org 订阅源 — 不依赖于这些订阅源的依赖项将无法还原。 |
--feed-folder <name> | 名称或路径 | — | 从此 Orchestrator 文件夹的库订阅源(而不是每个租户订阅源)解析依赖项。接受文件夹名称或完全限定路径。 |
监管分析
--skip-analyze、--governance-file-path 和 --automation-ops-profile 控制对解决方案中的每个 RPA 项目运行的工作流分析器。--governance-file-path 与 --automation-ops-profile 互斥。
| 长 | 值 | 默认 | 描述 |
|---|---|---|---|
--skip-analyze | 标记 | 关闭 | 跳过对每个 RPA 项目使用工作流分析器。编译和验证仍在运行,只是会跳过分析器规则。 |
--governance-file-path <path> | 路径 | — | 根据此本地监管策略文件而不是工作流编译器附带的分析器规则分析每个 RPA 项目。 |
--automation-ops-profile <profile> | text | — | 根据在 AutomationOps 中发布的监管策略,为已登录的租户分析每个 RPA 项目。值为已下载其策略的产品,例如StudioWeb 、 Development 、 Business 。 |
监管标志 (--governance-file-path "") 的空值会作为错误而拒绝,而非静默地将其视为“无标志”。
包签名
在 .nupkg 上签署已打包项目的 dotnet 需要 PATH 上的 CLI。
| 长 | 值 | 默认 | 描述 |
|---|---|---|---|
--signing-certificate-path <path> | 路径 | — | .pfx 代码签名证书的路径。设置后,解决方案中的每个打包项目 .nupkg 在捆绑到解决方案 .zip 中之前都会经过签名。 |
--signing-certificate-password <password> | 文本或 env.VAR | — | 证书密码。传递 env.ENV_NAME,从环境变量而非 Shell 历史记录中读取。 |
--signing-timestamp-server <url> | URL | — | 签名的时间戳服务器 URL。 |
包元数据(来源可追溯性)
这些标志会将可追溯性元数据标记到存档根目录的 package.metadata.json 文件和每个项目的 .nuspec 中。没有一个为必填 — 将它们全部省略,包将仅包含名称、版本和两个工作流编译器所需的默认值(author: "UiPath",如果未覆盖,则为 description: "Created by UiPath")。
| 长 | 值 | 默认 | 描述 |
|---|---|---|---|
--author <text> | text | UiPath | 包作者。 |
--description <text> | text | Created by UiPath | 包描述。 |
--release-notes <text> | text | — | 参阅包的发行说明。 |
--project-url <url> | URL | — | Automation Hub 概念 URL。 |
--repository-url <url> | URL | — | 源存储库 URL。 |
--repository-commit <sha> | text | — | 源存储库提交哈希。 |
--repository-branch <branch> | text | — | 源存储库分支。 |
--repository-type <type> | text | git (当设置了--repository-url时) | 源存储库类型。仅在也设置了 --repository-url 时才记录。 |
示例
最小
uip solution pack ./my-solution ./dist
uip solution pack ./my-solution ./dist
将./my-solution解决方案打包到./dist/my-solution_1.0.0.zip (默认版本)中。
通用 — CI 构建的 PIN 码名称和版本
uip solution pack ./my-solution ./dist --name invoices --version 1.2.0
uip solution pack ./my-solution ./dist --name invoices --version 1.2.0
写入./dist/invoices_1.2.0.zip 。
不打包而进行验证
uip solution pack ./my-solution --dry-run
uip solution pack ./my-solution --dry-run
对临时目录运行完整的打包管道并丢弃输出——可用作 CI 中的预部署入口,因为它可以捕获资源绑定、变量引用和 runtime 依赖项错误,而无需 outputPath。
标记来源可追溯性元数据
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"
为打包的项目签名
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
跳过工作流分析器
uip solution pack ./my-solution ./dist --version 1.2.0 --skip-analyze
uip solution pack ./my-solution ./dist --version 1.2.0 --skip-analyze
编译和验证仍在运行,只是会跳过分析器规则。
根据租户监管策略进行分析
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
脚本编写 — 捕获发布步骤的输出路径
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"
数据形状(--输出 json)
真实包:
{
"Code": "SolutionPack",
"Data": {
"Package": "[email protected]",
"Packages": "./dist/my-solution_1.2.0.zip"
}
}
{
"Code": "SolutionPack",
"Data": {
"Package": "[email protected]",
"Packages": "./dist/my-solution_1.2.0.zip"
}
}
- 打包解决方案的
Package—<name>@<version>标识符。 Packages— 写入至.zip的<outputPath>路径的逗号分隔列表。通常为单个路径。
空运行 (--dry-run):
{
"Code": "SolutionPack",
"Data": {
"Package": "[email protected]",
"DryRun": true,
"Status": "Valid"
}
}
{
"Code": "SolutionPack",
"Data": {
"Package": "[email protected]",
"DryRun": true,
"Status": "Valid"
}
}
故障模式
- 没有
outputPath就缺少--dry-run。失败并显示指针,请提供输出目录或传递--dry-run。 - 监管标志冲突。
--governance-file-path与--automation-ops-profile互斥;若为任一字段设置空值,则会遭到拒绝。 - 成员项目目录内的输出路径。已拒绝 — 其中写入的任何内容都将在下一个包中打包到该项目自己的包中。选择解决方案项目目录之外的输出路径(例如位于解决方案根目录的
./out或完全位于解决方案外部的目录)。 - 可解压缩的项目类型。为项目类型命名,并指向
uip tools search/uip tools install <tool>以添加处理该项目的打包程序工具(如果它是新添加的类型,则指向第一个uip update)。
相关命令
uip solution publish— 将打包的.zip上传到租户解决方案订阅源。uip solution upload— 替代路径,将解决方案上传到 Studio Web 进行交互式编辑,而不是打包进行部署。uip solution deploy run— 将已发布的包部署到 Orchestrator。
另请参阅
- 您的第一个管道— 打包 → 发布 → 部署运行演练。
uip solution概述。