Поделиться через


Задание 1f. Добавление служб Win32 в образ

Windows 10 IoT Базовая поддерживает добавление службы Win32 NT в образ.

Предварительные требования и требования

Убедитесь, что вы создали базовый образ из раздела Создание базового образа.

Для работы с этим разделом вам потребуется установить следующие средства:

  • Комплект средств для развертывания и оценки Windows (Windows ADK)

Примечание

Используемая версия ADK должна соответствовать версии основных пакетов Интернета вещей, используемых ниже.

  • Пакеты Windows 10 IoT Базовая
  • Среда PowerShell IoT Core
  • IoT Core ADK Add-Ons
  • Текстовый редактор, например Блокнот или VS Code

Добавление приложения службы Win32 в сборку пакета

Чтобы включить приложение службы Win32 в процесс сборки образа FFU, сначала необходимо добавить файл .EXE, чтобы его можно было упаковать (с помощью buildpkg).

  1. Создайте подкаталог для приложения службы Win32 в разделе C:\IoT\Workspaces\ContosoWS\Source-<arch>\Packages. Он будет содержать XML- и EXE-файлы, которые будут включены при сборке образа. Например, рабочий пример см. в подкаталоге AzureDM.Services по адресу C:\IoT\Workspaces\ContosoWS\Source-<arch>\Packages\AzureDM.Services .

  2. Создайте XML-файл с именем <your Win32 Service App Name>.wm.xml в подкаталоге, созданном на шаге 1. В этом файле будет указан способ сборки пакета. Ниже приведен пример того, как должен выглядеть этот файл (вы замените соответствующие записи сведениями о приложении службы 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>

Примечание

Область <service> в XML-файле указывает сведения, относящиеся к службе Win32. Если вы добавляете приложение Win32 (например, консольное приложение), этот раздел можно опустить.

  1. Добавьте EXE-файл в подкаталог из шага 1. Это исполняемый файл приложения службы Win32.

Упаковка приложения службы Win32

Следующим шагом является упаковка файла приложения-службы Win32, что позволит создать его с помощью Windows ADK (при сборке образа FFU).

  1. Откройте IoTCorePShell.cmd из рабочей области. Появится запрос на запуск от имени администратора.
  2. Сборка пакета в файл .CAB (с помощью New-IoTCabPackage)
New-IoTCabPackage <your Win32 Service App Name>
(or) buildpkg <your Win32 Service App Name>

Пакет будет создан в файл .CAB в подкаталоге \Build\<arch>\pkgs рабочей области.

Обновление файлов конфигурации проекта

Теперь вы можете обновить файлы конфигурации продукта, чтобы включить приложение в сборку образа FFU.

  1. Добавьте идентификатор компонента для пакета приложения с помощью add-IoTProductFeature, заменив <your Win32 service app name> идентификатором приложения службы Win32:
Add-IoTProductFeature <product name> Test <your Win32 service app name> -OEM
or addfid <product name> Test <your Win32 service app name> -OEM

При этом добавляется featureID, соответствующий идентификатору, выбранному для приложения-службы Win32.

Сборка и тестирование образа

Создайте образ FFU еще раз, как указано в разделе Создание базового образа Интернета вещей. Необходимо выполнить только команду New-IoTFFUImage :

New-IoTFFUImage ProductX Test
(or)buildimage ProductX Test 

После сборки файла FFU (теперь он должен включать ваше приложение), вы можете включить его на аппаратное устройство, как указано в разделе Flashing a Windows IoT Core Image.

Next Steps

Задание 1g. Создание образа розничной торговли