创建和安装包

是 Windows 10 IoT 核心版的构建块。 从设备驱动程序到系统文件,每个组件都必须打包安装在设备上。 包是设备上最小的可维护单位。

第 1 步:进行设置

安装工具

  1. Windows 评估和部署工具包 (Windows ADK)
  2. IoT 核心版 ADK 加载项

设置环境

  • 启动 IoTCorePShell.cmd(在提升的提示中启动)
  • 使用 new-ws C:\MyWorkspace <oemname> <arch> 创建一个新工作区

要创建你自己的映像(FFU),请按照 IoT 制造指南中的“创建基本映像”实验中概述的步骤进行操作。

第 2 步:创建一个新包

  1. 创建包定义 xml 文件(.wm.xml 文件),并指定要添加的文件和注册表项。 可在 Windows 通用版 OEM 包架构中了解详情。

  2. 生成包:buildpkg filename.wm.xml。 .cab 文件将在生成目录 <workspace>\Build\<arch>\pkgs 中创建。

创建一个包含文件和注册表项的包

下面是指定文件和注册键的示例。

<?xml version="1.0" encoding="utf-8"?>
<identity xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    name="SUBNAME" namespace="COMPNAME" owner="Contoso" legacyName="Contoso.COMPNAME.SUBNAME" 
    xmlns="urn:Microsoft.CompPlat/ManifestSchema.v1.00">
    <onecorePackageInfo
        targetPartition="MainOS"
        releaseType="Production"
        ownerType="OEM" />
    <regKeys>
        <regKey
            keyName="$(hklm.software)\Contoso\Test">
            <regValue name="StringValue" type="REG_SZ" value="Test string" />
            <regValue name="DWordValue" type="REG_DWORD" value="0x12AB34CD" />
            <regValue name="BinaryValue" type="REG_BINARY" value="12ABCDEF" />
        </regKey>
        <regKey
            keyName="$(hklm.software)\Contoso\EmptyKey" />
    </regKeys>
    <files>
        <file
            destinationDir="$(runtime.system32)"
            source="filename.txt" />
        <file
            destinationDir="$(runtime.bootDrive)\OEMInstall"
            source="filename2.txt"
            name="filename2.txt" />
    </files>
</identity>

创建 appx 包

使用 Add-IoTAppxPackage 为给定的 appx 文件生成 .wm.xml 文件。 此工具要求 appx 依赖项位于包含 appx 文件的文件夹中名为“dependencies”的子目录中。

Add-IoTAppxPackage HelloWorld.appx fga Appx.HelloWorld
(or) newappxpkg HelloWorld.appx fga Appx.HelloWorld
New-IoTCabPackage Appx.HelloWorld
(or) buildpkg Appx.HelloWorld

fga 将 appx 设置为前台启动应用,bgt 将 appx 设置为后台任务,而 none 将跳过启动配置。 对于较旧的命令行工具,请参阅 newappxpkg.cmd

请参阅 Appx.IoTCoreDefaultApp 作为示例。

如果必须安装使用相同证书签名的多个应用程序时,则可以将证书与其中一个应用一起添加,对于剩余的应用,可以使用 skipcert 标志跳过添加证书。

newappxpkg AnotherApp.appx none Appx.AnotherApp skipcert

另请参阅

创建驱动程序包

驱动程序包中包含对驱动程序 Inf 文件的引用 (InfSource)。 可以手动编写驱动程序 .wm.xml 文件,可以使用 Add-IoTDriverPackage 根据输入的 inf 文件生成包 xml。

Add-IoTDriverPackage C:\Mydriver\GPIO.inf MyDriver.GPIO
(or) newdrvpkg C:\Mydriver\GPIO.inf MyDriver.GPIO
New-IoTCabPackage MyDriver.GPIO
(or) buildpkg MyDriver.GPIO

对于较旧的命令行工具,使用 inf2cab.cmd 创建包 xml 文件,并通过内部调用 buildpkg.cmd 直接生成 cab 文件。

注意

Windows IoT 核心版仅支持通用 Inf。

另请参阅

步骤 3:在设备上安装


  • 连接到设备(使用 SSH使用 Powershell
  • <filename>.cab 文件复制到设备的目录中,例如 C:\OemInstall
  • 使用 applyupdate -stage C:\OemInstall\<filename>.cab 启动包的暂存。 请注意,当你有多个要安装的包时,将对每个包重复此步骤。
  • 使用 applyupdate -commit 提交包。

注意

还可以使用 Windows 设备门户中的“Windows 更新”>“CAB 安装”选项来安装 cab。 设备将重新启动到更新 OS(显示齿轮)以安装包,并将再次重新启动到主 OS。 此过程可能需要几分钟。