Labo 1f : ajouter des services Win32 à une image
Windows 10 IoT Standard prend en charge l’ajout d’un service Win32 NT à votre image.
Conditions préalables/conditions requises
Vérifiez que vous avez créé une image de base à partir de Créer une image de base.
Vous devrez installer les outils suivants pour terminer cette section :
- Kit de déploiement et d'évaluation Windows (Windows ADK)
Notes
La version d’ADK utilisée doit correspondre à la version des packages IoT Core utilisés ci-dessous.
- Packages Windows 10 IoT Standard
- Environnement PowerShell IoT Core
- IoT Core ADK Add-Ons
- Un éditeur de texte comme le Bloc-notes ou VS Code
Ajouter une application Win32 Service à la génération de package
Pour inclure votre application de service Win32 dans le processus de génération d’image FFU, vous devez d’abord ajouter le fichier .EXE afin qu’il puisse être empaqueté (à l’aide buildpkg
de ).
Créez un sous-répertoire pour votre application de service Win32 sous
C:\IoT\Workspaces\ContosoWS\Source-<arch>\Packages
. Il contient les fichiers XML et EXE à inclure lors de la création de l’image. Par exemple, reportez-vous au sous-répertoire AzureDM.Services sur pourC:\IoT\Workspaces\ContosoWS\Source-<arch>\Packages\AzureDM.Services
obtenir un exemple de travail.Créez un fichier XML intitulé
<your Win32 Service App Name>.wm.xml
dans le sous-répertoire que vous avez créé à partir de l’étape #1. Ce fichier spécifie la façon dont le package sera généré. Voici un exemple de ce à quoi ce fichier doit ressembler (vous devez remplacer les entrées appropriées par les informations de votre application de service Win32) :
<?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>
Notes
La <service>
zone du fichier XML spécifie des informations spécifiques au service Win32. Si vous ajoutez une application Win32 (comme une application console), cette section peut être omise.
- Ajoutez votre fichier EXE au sous-répertoire à partir de l’étape 1. Il s’agit de votre exécutable d’application de service Win32.
Empaqueter l’application de service Win32
L’étape suivante consiste à empaqueter le fichier d’application de service Win32, ce qui vous permettra de le générer à l’aide du Windows ADK (lorsque vous générez l’image FFU).
- Ouvrez
IoTCorePShell.cmd
à partir de votre espace de travail. Il doit vous inviter à exécuter en tant qu’administrateur. - Générez le package dans un fichier .CAB (à l’aide de New-IoTCabPackage)
New-IoTCabPackage <your Win32 Service App Name>
(or) buildpkg <your Win32 Service App Name>
Cela génère le package dans un fichier .CAB sous le \Build\<arch>\pkgs
sous-répertoire de votre espace de travail.
Mettre à jour les fichiers de configuration de projet
Vous pouvez maintenant mettre à jour vos fichiers de configuration de produit pour inclure votre application dans la build d’image FFU.
- Ajoutez l’ID de fonctionnalité de votre package d’application à l’aide de Add-IoTProductFeature, en remplaçant par
<your Win32 service app name>
un identificateur pour votre application de service Win32 :
Add-IoTProductFeature <product name> Test <your Win32 service app name> -OEM
or addfid <product name> Test <your Win32 service app name> -OEM
Cela ajoute un FeatureID correspondant à l’identificateur que vous avez choisi pour votre application de service Win32.
Image de génération et de test
Générez à nouveau l’image FFU, comme spécifié dans Créer une image IoT Core de base. Vous devez uniquement exécuter la commande New-IoTFFUImage :
New-IoTFFUImage ProductX Test
(or)buildimage ProductX Test
Une fois que le fichier FFU a été créé (il doit maintenant inclure votre application), vous pouvez le flasher sur votre appareil matériel comme spécifié dans Flashing a Windows IoT Core Image.