Lab 1f: Aggiungere servizi Win32 a un'immagine
Windows 10 IoT Core supporta l'aggiunta di un servizio NT Win32 all'immagine.
Prerequisiti/requisiti
Assicurarsi di aver creato un'immagine di base da Crea un'immagine di base.
Per completare questa sezione sono necessari gli strumenti seguenti:
- Windows Assessment and Deployment Kit (Windows ADK)
Nota
La versione di ADK usata deve corrispondere alla versione dei pacchetti IoT Core usati di seguito.
- Pacchetti di Windows 10 IoT Core
- Ambiente powerShell IoT Core
- Add-Ons IoT Core ADK
- Editor di testo, ad esempio Blocco note o VS Code
Aggiungere un'app del servizio Win32 alla compilazione del pacchetto
Per includere l'app del servizio Win32 nel processo di compilazione dell'immagine FFU, è prima necessario aggiungere il file di .EXE in modo che possa essere in pacchetto (usando buildpkg
).
Creare una sottodirectory per l'app del servizio Win32 in
C:\IoT\Workspaces\ContosoWS\Source-<arch>\Packages
. Questo conterrà i file XML e EXE da includere durante la compilazione dell'immagine. Ad esempio, fare riferimento alla sottodirectory azureDM.Services inC:\IoT\Workspaces\ContosoWS\Source-<arch>\Packages\AzureDM.Services
per un esempio di lavoro.Creare un file XML intitolato
<your Win32 Service App Name>.wm.xml
nella sottodirectory creata dal passaggio 1. Questo file specifica come verrà compilato il pacchetto. Ecco un esempio di ciò che dovrebbe essere simile al file (sostituire le voci appropriate con le informazioni sull'app del servizio 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>
Nota
L'area <service>
nel file XML specifica le informazioni specifiche del servizio Win32. Se si aggiunge un'applicazione Win32 (ad esempio un'app console), questa sezione può essere omessa.
- Aggiungere il file EXE alla sottodirectory dal passaggio 1. Si tratta dell'eseguibile dell'applicazione Win32 Service.
Creare un pacchetto dell'app del servizio Win32
Il passaggio successivo consiste nel creare il pacchetto del file dell'app del servizio Win32, che consente di compilarlo usando Windows ADK (quando si compila l'immagine FFU).
- Aprire
IoTCorePShell.cmd
dall'area di lavoro. Dovrebbe essere richiesto di eseguire come amministratore. - Compilare il pacchetto in un file di .CAB (usando New-IoTCabPackage)
New-IoTCabPackage <your Win32 Service App Name>
(or) buildpkg <your Win32 Service App Name>
Verrà compilato il pacchetto in un file .CAB nella sottodirectory nell'area \Build\<arch>\pkgs
di lavoro.
Aggiornare i file di configurazione del progetto
È ora possibile aggiornare i file di configurazione del prodotto per includere l'app nella compilazione dell'immagine FFU.
- Aggiungere l'ID funzionalità per il pacchetto dell'app usando Add-IoTProductFeature, sostituendo
<your Win32 service app name>
con un identificatore per l'app del servizio Win32:
Add-IoTProductFeature <product name> Test <your Win32 service app name> -OEM
or addfid <product name> Test <your Win32 service app name> -OEM
In questo modo viene aggiunto un FEATUREID corrispondente all'identificatore scelto per l'app del servizio Win32.
Compilare e testare l'immagine
Compilare di nuovo l'immagine FFU, come specificato in Creare un'immagine IoT Core di base. È necessario eseguire solo il comando New-IoTFFUImage :
New-IoTFFUImage ProductX Test
(or)buildimage ProductX Test
Dopo aver creato il file FFU (dovrebbe ora includere l'app), è possibile flasharlo nel dispositivo hardware come specificato in Flashing a Windows IoT Core Image.