共用方式為


實驗室 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) 封裝它。

  1. 在 底下 C:\IoT\Workspaces\ContosoWS\Source-<arch>\Packages 建立 Win32 服務應用程式的子目錄。 這會包含建置映射時要包含的 XML 和 EXE 檔案。 例如,如需運作範例,請參閱 中的 C:\IoT\Workspaces\ContosoWS\Source-<arch>\Packages\AzureDM.ServicesAzureDM.Services子目錄。

  2. 在您從步驟 #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 應用程式 (,例如主控台應用程式) ,則可以省略本節。

  1. 將 EXE 檔案新增至步驟 #1 的子目錄。 這是您的 Win32 服務應用程式可執行檔。

封裝 Win32 服務應用程式

下一個步驟是封裝 Win32 Service App 檔案,這可讓您在建置 FFU 映射) 時,使用 Windows ADK (來建置它。

  1. 從您的工作區開啟 IoTCorePShell.cmd 。 它應該會提示您以系統管理員身分執行。
  2. 使用 New-IoTCabPackage) ,將套件建置至.CAB檔案 (
New-IoTCabPackage <your Win32 Service App Name>
(or) buildpkg <your Win32 Service App Name>

這會將套件建置到工作區子目錄下的 \Build\<arch>\pkgs .CAB檔案中。

更新專案組態檔

您現在可以更新產品組態檔,以在 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

這會新增對應至您為 Win32 服務應用程式選擇的識別碼的 FeatureID。

建置和測試映射

再次建置 FFU 映射,如 建立基本 IoT 核心映射中所指定。 您只需要執行 New-IoTFFUImage 命令:

New-IoTFFUImage ProductX Test
(or)buildimage ProductX Test 

一旦 FFU 檔案建置 (現在應該包含您的應用程式) ,您就可以將它刷新到硬體裝置,如 快閃 Windows IoT 核心映射中所指定。

後續步驟

實驗室 1g:建置零售版映像