应用功能清单
应用功能清单定义要包含在映像中的应用的位置。 与其他功能清单一样,应用功能清单需要包含在映像的 OEMInput.xml 文件的 <AdditionalFMs>
元素中,以便让应用功能清单中定义的应用包含在某个映像中。
对于第一个映像,可以使用 CreateWSKAppsFM
和 UpdateWSKAppsFM
将工作区的应用文件夹中的所有应用一次性添加到映像。
示例 OEMAppsFM.xml 清单
<?xml version="1.0" encoding="utf-8"?>
<FeatureManifest
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.microsoft.com/embedded/2004/10/ImageUpdate" Revision="1" SchemaVersion="1.2">
<AppX>
<AppXPackages>
<PackageFile Path="%WSKWorkspaceRoot%\Apps\Calculator" Name="Microsoft.WindowsCalculator_8wekyb3d8bbwe.appxbundle" LicenseFile="Microsoft.WindowsCalculator_8wekyb3d8bbwe.xml" ID="Microsoft.WindowsCalculator_8wekyb3d8bbwe" Optional="false" />
<PackageFile Path="%WSKWorkspaceRoot%\Apps\Frameworks" CPUType="x86" Name="Microsoft.VCLibs.x86.14.00.appx" ID="Microsoft.VCLibs.140.00_8wekyb3d8bbwe" Optional="false" />
<PackageFile Path="%WSKWorkspaceRoot%\Apps\Frameworks" CPUType="amd64" Name="Microsoft.VCLibs.x64.14.00.appx" ID="Microsoft.VCLibs.140.00_8wekyb3d8bbwe" Optional="false" />
<PackageFile Path="%WSKWorkspaceRoot%\Apps\Frameworks" CPUType="arm" Name="Microsoft.VCLibs.arm.14.00.appx" ID="Microsoft.VCLibs.140.00_8wekyb3d8bbwe" Optional="false" />
<PackageFile Path="%WSKWorkspaceRoot%\Apps\ContosoApp" Name="Contoso.Sampleapp_8wekyb3d8bbwe.appxbundle" LicenseFile="Contoso.Sampleapp_8wekyb3d8bbwe.xml" ID="Contoso.Sampleapp_8wekyb3d8bbwe" Optional="false" />
</AppXPackages>
</AppX>
</FeatureManifest>
可选应用
Windows 系统工具包中的脚本会配置应用功能清单中的每个应用,以便让它们包含在某个映像中。 你可以修改应用功能清单,让某些应用必须专门添加到 OEMInput.xml,以便包含在映像中。
应用功能清单中包含的每个应用都有一个 Optional
属性,该属性控制是否将应用自动包含在映像中,或者是否需要通过将应用的 ID
添加到 OEMInput.xml 来手动将它包含在映像中。
如果对多个映像使用单个附件集,将应用标记为可选可以使应用包括在特定的映像配置中。 此方案中的应用功能清单可以包含附件集中所有的应用,同时还指定:
- 要包含在所有映像中的应用基本集
- 一组可选的应用,可以手动将它们添加到特定的 OEMInput.xml 文件
标记为可选的应用不会包含在任何映像中,除非在映像设计中专门包含它们。 这样,你就可以针对多个映像重复使用应用功能清单。
使用可选的应用
将应用指定为可选,并手动将其添加到映像:
选择要标记为可选的应用。
在应用功能清单中,将应用的
Optional
属性更改为"true"
。 这会将应用标记为可选,并且应用将不再包含在所有映像中。<PackageFile Path="%WSKWorkspaceRoot%\Apps\ContosoApp" Name="Contoso.Sampleapp_8wekyb3d8bbwe.appxbundle" LicenseFile="Contoso.Sampleapp_8wekyb3d8bbwe.xml" ID="Contoso.Sampleapp_8wekyb3d8bbwe" Optional="true" />
记下应用 ID,例如
ID="Contoso.Sampleapp_8wekyb3d8bbwe"
。 请勿更改此 ID,否则映像将无法生成。如果已从 Microsoft Store 获取了该应用,可在应用许可中查找包系列名称。 使用文本编辑器打开许可文件,然后使用 PFM 标记之间的值。
通过将 ID 添加为 OEMInput.xml 中的
<AppXID>
值,将可选应用添加到映像中:<AppXOptionalPackages> <AppXID>Contoso.Sampleapp_8wekyb3d8bbwe</AppXID> </AppXOptionalPackages>
还可通过添加 CPUType="
(arch)"
,将应用指定为特定于体系结构的应用。 生成映像时,将排除与体系结构类型不匹配的文件。
SetAppsRegion 命令行语法
SetAppsRegion -AppName <AppName> -Region <Region> [-OEMAppsFMPath <path>]
SetAppsRegion -AppName HelloWorld_1.0.0.0_x64.appx -Region en-us,de-de
参数 | 说明 |
---|---|
-AppName | 应用的文件名。 在应用的 <PackageFile> 元素中使用 Name 属性。 |
-Region | 希望应用可用的区域。 如果要指定多个区域,请用 , 分隔区域:-Region en-us,de-de |
-OEMAppsFMPath | 应用功能清单的路径。 默认为 %WSKWorkspaceRoot%\FMFiles\OEMAppsFM.xml |