實驗室 1f:將 Win32 服務新增至映像
Windows 10 IoT 核心版支援將 Win32 NT 服務新增至映射。
必要條件/需求
請確定您已從 [ 建立基本映射] 建立基本映射。
您需要安裝下列工具才能完成本節:
- Windows 評定及部署套件 (Windows ADK)
注意
使用的 ADK 版本必須符合以下使用的 IoT 核心套件版本。
- Windows 10 IoT 核心版套件
- IoT 核心版 PowerShell 環境
- IoT 核心版 ADK Add-Ons
- 記事本或 VS Code 之類的文字編輯器
將 Win32 服務應用程式新增至套件組建
若要在 FFU 映射建置程式中包含 Win32 Service App,您必須先新增.EXE檔案, (才能使用 buildpkg
) 封裝它。
在 底下
C:\IoT\Workspaces\ContosoWS\Source-<arch>\Packages
建立 Win32 服務應用程式的子目錄。 這會包含建置映射時要包含的 XML 和 EXE 檔案。 例如,如需運作範例,請參閱 中的C:\IoT\Workspaces\ContosoWS\Source-<arch>\Packages\AzureDM.Services
AzureDM.Services子目錄。在您從步驟 #1 建立的子目錄中,建立標題為
<your Win32 Service App Name>.wm.xml
的 XML 檔案。 此檔案會指定封裝的建置方式。 以下是該檔案看起來應該像 (您將適當專案取代為 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 應用程式 (,例如主控台應用程式) ,則可以省略本節。
- 將 EXE 檔案新增至步驟 #1 的子目錄。 這是您的 Win32 服務應用程式可執行檔。
封裝 Win32 服務應用程式
下一個步驟是封裝 Win32 Service App 檔案,這可讓您在建置 FFU 映射) 時,使用 Windows ADK (來建置它。
- 從您的工作區開啟
IoTCorePShell.cmd
。 它應該會提示您以系統管理員身分執行。 - 使用 New-IoTCabPackage) ,將套件建置至.CAB檔案 (
New-IoTCabPackage <your Win32 Service App Name>
(or) buildpkg <your Win32 Service App Name>
這會將套件建置到工作區子目錄下的 \Build\<arch>\pkgs
.CAB檔案中。
更新專案組態檔
您現在可以更新產品組態檔,以在 FFU 映射組建中包含您的應用程式。
- 使用 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
這會新增對應至您為 Win32 服務應用程式選擇的識別碼的 FeatureID。
建置和測試映射
再次建置 FFU 映射,如 建立基本 IoT 核心映射中所指定。 您只需要執行 New-IoTFFUImage 命令:
New-IoTFFUImage ProductX Test
(or)buildimage ProductX Test
一旦 FFU 檔案建置 (現在應該包含您的應用程式) ,您就可以將它刷新到硬體裝置,如 快閃 Windows IoT 核心映射中所指定。