vcpkg export

摘要

vcpkg export [options] {<package>... | --x-all-installed}

说明

将生成的包从已安装目录导出到独立的开发人员 SDK。

export 生成独立、可分发的 SDK(软件开发工具包),可在另一台计算机上使用而无需单独获取 vcpkg。 该结构包含:

  1. 所选包的预生成二进制文件
  2. 其可转移依赖项
  3. 集成文件,例如 CMake 工具链MSBuild 属性/目标

注意

此命令的行为在经典模式清单模式下不同

export 命令不会安装任何包或可转移依赖项。 它仅导出已安装的包。

有关更多详细信息,请参阅清单模式经典模式

经典模式

在经典模式下,vcpkg export 接受三元组限定的包规范参数(例如:zlib:x64-windows

可以通过向命令行添加 <port name>:<triplet> 参数来指定要导出的包。

例如,要导出 x64-windowsx64-linuxsqlite 包,请使用:

vcpkg export sqlite:x64-windows sqlite:x64-linux --zip

此命令以 zip 格式导出指定的包。 在运行 vcpkg export 之前,必须安装 sqlite:x64-windowssqlite:x64-linux

清单模式

在清单模式下,该命令导出所有当前安装的包。 安装目录包括清单 (vcpkg.json) 中声明的所有包及其可转移依赖项。 使用此命令之前运行 vcpkg install,以确保已安装所有必需的包。

在此模式下,无法指定要导出的单个包。 该命令将整个安装状态作为一个实体进行操作,遵循清单文件中指定的依赖项和版本。

另一个区别是 --output-dir 选项的要求。 此选项指定将存储导出包的目录。

例如,从清单目录

vcpkg export --zip --output-dir=.\exports

将所有当前安装的包导出到 zip 文件中的 .\exports 目录。 --zip 选项指定导出的包应压缩为 zip 文件。

标准集成

大多数导出格式都包含一组标准集成文件:

某些导出格式与此标准组不同;有关更多详细信息,请参阅下面单独的格式帮助。

格式

官方支持的 SDK 格式:

试验性 SDK 格式(随时可能更改或移除):

原始目录

vcpkg export --raw [options] <package>...

<output-dir>/<output>/ 创建未解压缩的目录布局。

包含标准集成文件

Zip

vcpkg export --zip [options] <package>...

<output-dir>/<output>.zip 创建未解压缩的 zip 目录布局。

包含标准集成文件

7Zip

vcpkg export --7zip [options] <package>...

<output-dir>/<output>.7z 处创建 7zip 目录布局。

包含标准集成文件

NuGet

vcpkg export --nuget [options] <package>...

<output-dir>/<nuget-id>.<nuget-version>.nupkg 处创建 NuGet 包。

包含标准集成文件以及其他 MSBuild 集成,支持通过 NuGet 包管理器包含在 MSBuild C++ 项目 (.vcxproj) 中。 请注意,不能将 export 生成的多个 NuGet 包混合在一起 -- 仅使用其中一个包。 要添加其他库,必须使用整组依赖项创建新的导出。

格式特定选项:

IFW

注意

本部分介绍 vcpkg 的一项试验性功能,该功能随时可能会更改或移除。

vcpkg export --ifw [options] <package>...

导出到基于 IFW 的安装程序。

格式特定选项:

Chocolatey

注意

本部分介绍 vcpkg 的一项试验性功能,该功能随时可能会更改或移除。

vcpkg export --x-chocolatey [options] <package>...

导出 Chocolatey 包。

格式特定选项:

Prefab

注意

本部分介绍 vcpkg 的一项试验性功能,该功能随时可能会更改或移除。

vcpkg export --prefab [options] <package>...

导出为 Prefab 格式。

格式特定选项:

选项

所有 vcpkg 命令都支持一组通用选项

<package>

这是将包含在 SDK 中的顶级生成包的列表。 这些包的所有依赖项也将包含在内,以确保生成的 SDK 是独立的。

包语法

<port name>:<triplet>

不带三元组的包引用由默认目标三元组自动限定。 注意:在清单模式下使用 <port name>:<triplet> 时不允许 vcpkg export 参数。

--x-all-installed

注意

本部分介绍 vcpkg 的一项试验性功能,该功能随时可能会更改或移除。

导出所有已安装的包。 在清单模式下使用 vcpkg export 时,隐含此选项。

--dry-run

不要执行导出,只打印导出计划。

--ifw-configuration-file-path=

指定安装程序配置的临时文件路径。

--ifw-installer-file-path=

指定导出的安装程序的文件路径。

--ifw-packages-directory-path=

指定重新打包包的临时目录路径。

--ifw-repository-directory-path=

指定导出存储库的目录路径。

--ifw-repository-url=

指定在线安装程序的远程存储库 URL。

--x-maintainer=

指定导出的 Chocolatey 包的维护者。

--nuget-description=

指定 NuGet .nupkg 文件的输出说明。

默认为“Vcpkg NuGet 导出”。

--nuget-id=

指定 NuGet .nupkg 文件的输出 ID。

此选项覆盖专门针对 NuGet 导出程序的 --output 选项。 有关默认值,请参阅 --output

--nuget-version=

指定 NuGet .nupkg 文件的输出版本。

默认为 1.0.0

--output=

指定输出基础名称。

每个 SDK 类型使用此基础名称来确定其特定的输出文件。 有关详细信息,请参阅上述 SDK 特定文档。

默认为 vcpkg-export-<date>-<time>export 的脚本化使用应始终传递此标志以确保确定性输出。

--output-dir=

指定输出目录。

所有顶级 SDK 文件都将在此目录中生成。 此选项在清单模式下是必需的。 在经典模式下,此项是可选的,默认为 vcpkg 根目录

--prefab-artifact-id=

项目 ID 是根据 Maven 规范的项目名称。

--prefab-group-id=

GroupId 根据 Maven 规范唯一标识项目。

--prefab-maven

启用 Maven。

--prefab-min-sdk=

Android 最低支持的 SDK 版本。

--prefab-target-sdk=

Android 目标支持的 sdk 版本。

--prefab-version=

版本是根据 Maven 规范的项目版本。

--x-version-suffix=

指定要为导出的 Chocolatey 包添加的版本后缀。