使用验证 OS 映像生成器进行验证 OS 自定义

可以添加驱动程序包和验证 OS 自定义包,以确保验证 OS 可以启动并支持适用于方案的应用。 可以使用自定义包来添加对本文档后面介绍的几个按需功能的支持。

验证 OS 不会随自带驱动程序一起提供,因此必须确保先添加驱动程序,然后才能将映像应用到电脑。

整体进程

使用验证 OS 映像生成器创建验证 OS 映像的整个过程如下:

  1. 将验证 OS ISO 文件装载到技术人员电脑文件系统上的特定位置;

  2. 根据技术人员电脑的本机体系结构(x64 或 arm64)启动适当的 ValidationOSImageBuilder.exe;

  3. 按照验证 OS 映像生成器中的步骤操作

    1. [可选] 选择生成的验证 OS 映像的位置;

    2. [可选] 将驱动程序添加到装载的验证 OS 映像;

    3. [可选] 添加一个或多个所需的按需功能;

    4. [可选] 在验证 OS 映像中设置/替代注册表项;

    5. [可选] 在验证 OS 映像中包含自定义二进制文件/应用程序;

    6. [可选] 创建一个 Visual Studio 解决方案,其中包含与生成的验证 OS 映像匹配的 SDK 的引用。

验证 OS 映像生成器入门

验证 OS 映像生成器是一种 GUI 工具,可用于为特定方案轻松生成自定义验证 OS 映像。 该功能允许添加

  • 可选包,例如音频、蓝牙、相机、多媒体、USB 等。
  • 特定硬件的驱动程序
  • 要包含在验证 OS 映像中的其他软件应用程序
  • 启动时要在验证 OS 映像中启用的注册表项
  • 要在 OS 启动时运行的启动命令

它还允许生成可用于所生成的特定验证 OS 映像的 SDK。

可用的可选功能包的列表可以在此处找到:功能包

使用验证 OS 映像生成器

下面是验证 OS ISO 包中验证 OS 映像生成器的基本流程的分步使用指南。

  1. 装载验证 OS ISO 包,并导航到 <ISO_ROOT>:\ImageBuilder 文件夹,其中 <ISO_ROOT>: 是装载 ISO 的驱动器。

  2. 运行 ValidationOSImageBuilder.exe 以启动验证 OS 映像生成器,并接受要求你以管理员权限运行程序的提示

  3. 单击“开始”转到“功能”屏幕

  4. 在“功能”屏幕中,选择要添加到验证 OS 映像的功能,然后单击“下一步”转到“驱动程序”屏幕(请参阅上一节中的可用功能列表)

  5. 在“可选驱动程序”屏幕中,选择设备驱动程序所在的文件夹

  6. 在此屏幕中,还可以选择将以下组件添加到映像

    1. 可选软件文件夹:这允许包括一个包含可选 .EXE 文件的文件夹,这些文件将包含在验证 OS 映像中

    2. 注册表文件:这允许上传包含注册表项的 .REG 文件,这些注册表项将在启动时包含在验证 OS 映像中

    3. 启动命令:这允许在启动时执行的验证 OS 映像中添加 .EXE 文件

  7. 单击“下一步”转到“输出”屏幕

  8. 在“输出”屏幕中,可以

    1. 选择将生成输出 WIM 文件和其他组件的文件夹(默认值为 C:\ValidationOS

    2. 指定验证 OS 映像 (WIM) 是从 U 盘还是硬盘驱动器启动(默认值为 U 盘)

    3. 选择验证 OS 映像生成器是否应为生成的自定义验证 OS 映像生成关联的 SDK

    4. 将最近使用的验证 OS 映像生成器设置保存到模板文件,以供将来使用

  9. 单击“下一步”转到“查看并完成“屏幕,该屏幕将显示最后一次选择的所有功能、驱动程序和输出设置。

  10. 单击“创建”以生成验证 OS 映像。

  11. 生成验证 OS 映像后,将看到一个导航到输出文件夹的选项,在那里将看到新生成的 ValidationOS.wim

注意

ValidationOS-2.wim 也在 GenImageOutput 文件夹中生成。 这是一个已优化映像,仅包含与在“驱动程序”屏幕中选择的启动类型相关的分区

使用验证 OS 映像生成器命令行

验证 OS 映像生成器 GUI 中提供的所有功能也可以通过验证 OS 映像生成器命令行使用。 若要使用验证 OS 映像生成器命令行,请导航到 <ISO_ROOT>:\IBCLI 文件夹,其中 <ISO_ROOT>: 是装载 ISO 的驱动器。

验证 OS 映像生成器命令行实用工具名为 ValidationOSImageBuilderCLI.exe

以下是可用的命令行选项列表:

-l, --list List all features included in the ISO

-i, --info <info> Get the description of a specific feature

-rp, --resolve <resolve> List all packages included by a set of features

-f, --features <features> Specify features to include

-d, --drivers <drivers> Specify the driver folder path

-s, --software <software> Specify the software folder path

-r, --registry <registry> Specify the registry file path

-sc, --startup-command <startup-command> Specify the startup command file path

-o, --output <output> Specify the output folder path

-sdk, --generate-sdk Generate SDK solution

-st, --save-template Save settings to a template

-g, --generate-image Trigger image generation

-api, --generate-api Generate API Surface from features

-lt, --load-template <load-template> Load a template file

-bt, --boottype <boottype> Specify the boot type (USB/InternalDisk).
        Default is USB

--version Show version information

-?, -h, --help Show help and usage information

当运行 ValidationOSImageBuilderCLI -h 时,将显示如何使用命令行选项的示例

使用生成的 SDK

若要使用生成的 SDK,需要在计算机上安装 Microsoft Visual Studio。

在资源管理器中,导航到输出文件夹(通常命名 C:\ValdationOS<Date-Time of image creation>),你将在其中看到名为 sdk 的文件夹。 在此文件夹中,你将看到一个 .sln 文件。 双击该文件,在 Visual Studio 中打开它。

在 Visual Studio 的解决方案资源管理器视图中,你将看到一个 .cpp 文件。 可以使用代码编辑此文件,也可以将自己的代码文件添加到此项目中。 若要查看项目引用的 Nuget 包,可以在解决方案资源管理器视图中右键单击引用,然后选择管理 Nuget 包

若要生成解决方案,请从主菜单中选择生成,然后选择生成解决方案,这将根据此代码为自定义验证 OS 映像生成 .exe 文件。

将 APIValidator 与 apisurface.xml 配合使用

除了 ValidationOS.wim 映像,映像生成器还会在 api 文件夹中生成 apisurface.xml 文件。 此文件包含自定义 ValidationOS.wim 映像支持的所有 API 函数的引用列表。

可以将名为 APIValidator.exe 的工具与任何 .exe 文件和此 apisurface.xml 文件一起用作输入,以确定 .exe 文件和自定义 ValidationOS.wim 映像之间是否存在不兼容。

若要安装 APIValidator.exe,请参阅文件 <ISO_ROOT>:\SDK\ValidationOS_System_Kit-APIValidator_Usage.txt 中的说明。 首先必须安装 WDK。 安装后,针对 API 图面文件分析 .exe 文件的典型命令如下所示:

Apivalidator.exe -BinaryPath:"<Path to .exe file>" -SupportedApiXmlFiles:"<Path to apisurface.xml file>"

在输出中,将看到一个错误列表(如果有的话),以及不兼容依赖项的详细信息。

验证 OS 映像生成器 SDK 示例

可在此处查看使用验证 OS 映像生成器提供的各种功能的代码示例:https://github.com/microsoft/validation-OS