Laboratorio 1f: Agregar servicios Win32 a una imagen
Windows 10 IoT Core admite la adición de un servicio NT win32 a la imagen.
Requisitos previos y requisitos
Asegúrese de que ha creado una imagen básica a partir de Crear una imagen básica.
Necesitará las siguientes herramientas instaladas para completar esta sección:
- Windows Assessment and Deployment Kit (Windows ADK)
Nota:
La versión de ADK usada debe coincidir con la versión de los paquetes de IoT Core que se usan a continuación.
- Paquetes de Windows 10 IoT Core
- Entorno de PowerShell de IoT Core
- Add-Ons de ADK de IoT Core
- Un editor de texto como bloc de notas o VS Code
Agregar una aplicación de Servicio Win32 para compilar el paquete
Para incluir la aplicación de Win32 Service en el proceso de compilación de imágenes FFU, primero debe agregar el archivo .EXE para que se pueda empaquetar (mediante buildpkg
).
Cree un subdirectorio para la aplicación de Win32 Service en
C:\IoT\Workspaces\ContosoWS\Source-<arch>\Packages
. Esto contendrá los archivos XML y EXE que se incluirán al compilar la imagen. Por ejemplo, consulte el subdirectorio AzureDM.Services enC:\IoT\Workspaces\ContosoWS\Source-<arch>\Packages\AzureDM.Services
para obtener un ejemplo de trabajo.Cree un archivo XML titulado
<your Win32 Service App Name>.wm.xml
en el subdirectorio que creó a partir del paso 1. Este archivo especificará cómo se compilará el paquete. Este es un ejemplo del aspecto que debe tener ese archivo (reemplazaría las entradas adecuadas por la información de la aplicación de Win32 Service):
<?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="Services"
namespace="AzureDM"
owner="$(OEMNAME)"
legacyName="$(OEMNAME).<your Win32 Service App Name>.Services" xmlns="urn:Microsoft.CompPlat/ManifestSchema.v1.00">
<onecorePackageInfo
targetPartition="MainOS"
releaseType="Production"
ownerType="OEM" />
<files>
<file
destinationDir="$(runtime.system32)"
source="<your Win32 Service App Name executable filename>" />
</files>
<service
name="<your Win32 Service App Name>"
start="auto"
type="win32OwnProcess"
objectName="LocalSystem"
errorControl="normal"
displayName="<your Win32 Service App Display Name>"
description="<your Win32 Service App Description>"
imagePath="<path and file name of your Win32 Service App>">
<failureActions
resetPeriod="86400">
<actions>
<action
type="restartService"
delay="1000" />
<action
type="restartService"
delay="1000" />
<action
type="restartService"
delay="1000" />
<action
type="none"
delay="0" />
</actions>
</failureActions>
</service>
</identity>
Nota:
El <service>
área del archivo XML especifica información específica del servicio Win32. Si va a agregar una aplicación Win32 (como una aplicación de consola), esta sección se puede omitir.
- Agregue el archivo EXE al subdirectorio del paso 1. Este es el ejecutable de la aplicación de servicio Win32.
Empaquetar la aplicación win32 Service
El siguiente paso consiste en empaquetar el archivo de aplicación de Win32 Service, que le permitirá compilarlo con Windows ADK (al compilar la imagen FFU).
- Abra
IoTCorePShell.cmd
desde el área de trabajo. Se le pedirá que se ejecute como administrador. - Compile el paquete en un archivo .CAB (mediante New-IoTCabPackage)
New-IoTCabPackage <your Win32 Service App Name>
(or) buildpkg <your Win32 Service App Name>
Esto compilará el paquete en un archivo .CAB en el \Build\<arch>\pkgs
subdirectorio del área de trabajo.
Actualizar archivos de configuración del proyecto
Ahora puede actualizar los archivos de configuración del producto para incluir la aplicación en la compilación de la imagen FFU.
- Agregue el identificador de característica para el paquete de la aplicación mediante Add-IoTProductFeature y reemplace por
<your Win32 service app name>
un identificador para la aplicación de servicio Win32:
Add-IoTProductFeature <product name> Test <your Win32 service app name> -OEM
or addfid <product name> Test <your Win32 service app name> -OEM
Esto agrega un FeatureID correspondiente al identificador que eligió para la aplicación de servicio Win32.
Compilación e imagen de prueba
Vuelva a compilar la imagen de FFU, como se especifica en Creación de una imagen básica de IoT Core. Solo debe tener que ejecutar el comando New-IoTFFUImage :
New-IoTFFUImage ProductX Test
(or)buildimage ProductX Test
Una vez compilado el archivo FFU (ahora debería incluir la aplicación), puede flashelo en el dispositivo de hardware como se especifica en Flashing a Windows IoT Core Image.