Windows Phone 的应用程序清单文件

2012/2/9

每个 Windows Phone 应用程序都有一个包含应用程序(如 App ID)的详细信息及该应用程序所使用功能的清单文件。本主题定义了应用程序清单文件中的元素、标记和属性。清单文件称为 WMAppManifest.xml,您可以在 Visual Studio 的“解决方案资源管理器”窗口中项目的“属性”文件夹中或者使用 Windows Explorer 找到该文件。

注意注意:

除了以下各节中所述的一些属性值差异外,Silverlight 应用程序和 XNA Framework 应用程序的清单文件相同。

清单文件的主要用途如下:

  • 当您将应用程序提交到 Windows Phone 商城 时,清单文件中的信息将用于认证过程,以在 Windows Phone 商城 中正确筛选您的应用程序,并在物理设备上部署和运行这些应用程序。

  • 清单文件中的信息在应用程序数据库中存储为元数据。

本主题包含以下各节:

应用程序清单文件在 Visual Studio 中生成,您不应手动编辑该文件。对于大多数方案来说,清单文件只能通过更改 Visual Studio 的项目属性页中的值进行修改。在您将应用程序提交到 Windows Phone 商城 之后,清单文件中的某些值将自动更新。示例包含 Author、Publisher 和 ProductID 属性,以及 CAPABILITIES 元素。

警告说明警告:

文件修改可能导致您的应用程序变得不稳定或无法使用。

您应编辑清单文件的一种情况是,当您使用 Windows Phone Capability Detection Tool 确定应用程序所使用的功能时。有关更多信息,请参阅如何确定应用程序功能

返回页首

下面是一个 Windows Phone 应用程序的清单文件示例。

<?xml version="1.0" encoding="utf-8"?>

<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.1">

  <App xmlns="" ProductID="{GUID}" Title="[Project Name]" RuntimeType="Silverlight" Version="1.0.0.0" Genre="apps.normal"  Author="[Project Name] author" Description="Sample description" Publisher="[Project Name]">
  
    <IconPath IsRelative="true" IsResource="false">ApplicationIcon.jpg</IconPath>

    <Capabilities>
      <Capability Name="ID_CAP_APPOINTMENTS"/>
      <Capability Name="ID_CAP_CAMERA"/>
      <Capability Name="ID_CAP_CONTACTS"/>
      <Capability Name="ID_CAP_GAMERSERVICES"/>
      <Capability Name="ID_CAP_IDENTITY_DEVICE"/>
      <Capability Name="ID_CAP_IDENTITY_USER"/>
      <Capability Name="ID_CAP_ISV_CAMERA"/>
      <Capability Name="ID_CAP_LOCATION"/>
      <Capability Name="ID_CAP_MEDIALIB"/>
      <Capability Name="ID_CAP_MICROPHONE"/>
      <Capability Name="ID_CAP_NETWORKING"/>
      <Capability Name="ID_CAP_PHONEDIALER"/>
      <Capability Name="ID_CAP_PUSH_NOTIFICATION"/>
      <Capability Name="ID_CAP_SENSORS"/>
      <Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
      <Capability Name="ID_HW_FRONTCAMERA"/>
    </Capabilities>

    <Tasks>
      <DefaultTask  Name ="_default" NavigationPage="MainPage.xaml"/>

      <ExtendedTask Name="" NavigationPage="" >
        <BackgroundServiceAgent  Name="" Source="" Specifier="" Type=""/>
      </ExtendedTask>
    </Tasks>

    <Tokens>
      <PrimaryToken TokenID="[Project Name]Token" TaskName="_default">
        <TemplateType5>
          <BackgroundImageURI IsRelative="true" IsResource="false">Background.jpg</BackgroundImageURI>
          <Count>0</Count>
          <Title>[Project Name]</Title>
        </TemplateType5>
      </PrimaryToken>
    </Tokens>

    <Extensions>
      <Extension ConsumerID="" ExtensionName="" ExtraFile="" TaskID="" />
    </Extensions>

  </App>
</Deployment>
注意注意:

上面示例中的 CAPABILITIES 元素可能无法与您应用程序的清单文件中的元素匹配。有关更多信息,请参阅本主题后面的 CAPABILITIES 元素

返回页首

DEPLOYMENT 元素不是根元素。在部署 Windows Phone 的应用程序时,此元素提供清单文件中的应用程序和本地化信息。

属性

类型

定义

xmlns

字符串

XML 命名空间。默认值为 http://schemas.microsoft.com/windowsphone/2009/deployment

AppPlatformVersion

字符串

Windows Phone SDK 的版本或平台的运行时二进制文件。默认值为 7.1

返回页首

APP 元素是 DEPLOYMENT 元素的子元素。该元素提供诸如产品 ID、版本和应用程序类型等信息。下表定义了 APP 元素的属性。

属性

类型

定义

作者

字符串

应用程序作者姓名。

BitsPerPixel

Integer

每个像素上使用 16 或 32 位信息。

说明

字符串

应用程序说明。

流派

字符串

默认值为 Apps.NormalApps.Game,具体取决于项目类型。

使用 Apps.Normal 的应用程序将出现在手机的应用程序列表中。使用 Apps.Games 的应用程序将出现在手机的游戏中心中。

HasSettings

布尔值

指示应用程序是否支持设置。

HubType

Integer

允许您的应用程序出现在音乐和视频中心的附加程序部分。它用于应用程序提交前的测试,必须在清单文件中手动输入。值为 1 表示启用此功能。

IsBeta

布尔值

指明应用程序是否为 Beta 应用程序。该值会对应用程序许可证产生影响。

ProductID

GUID

默认值是项目的 GUID(128 位)。在提交应用程序期间,新产品 ID 将插入到清单文件中。

发布者

字符串

应用程序发布者。该默认值是项目名称。某些类型的应用程序(例如,启用推送的应用程序)需要此属性。

RuntimeType

字符串

默认值为 SilverlightXNA,具体取决于项目类型。

SingleInstanceHost

布尔值

指明应用程序是否使用单个实例主机。

标题

字符串

出现在应用程序列表或游戏中心中的应用程序标题。默认值是项目名称。

版本

版本字符串

默认值为 1.0.0.0

xmlns

字符串

还可以将该值留空。

返回页首

ICONPATH 元素是 APP 元素的子元素。该元素提供应用程序列表中可见的应用程序图标的位置。Silverlight 项目和 XNA Framework 游戏的默认图像分别为 ApplicationIcon.png 和 PhoneGameThumb.png。该属性仅供内部使用。

返回页首

CAPABILITIES 元素是 APP 元素的子元素。Windows Phone 提供了用户必须在应用程序中选择某种功能的功能驱动安全模式。例如,使用基于网络的服务,其中用户在使用应用程序中未公开的服务或使用推送通知时都会产生额外的漫游费用。该功能模型的主要目标如下:

  • 确保正确公开信息 - 当应用程序的功能会带来安全风险时,必须通知用户。他们必须进行选择才能允许激活功能。

  • 减少攻击面 - 功能用来创建可在其中执行应用程序的安全空间。此空间一旦在安装时创建,往后就一直供应用程序使用。下表突出显示了当前支持的功能及其说明。

当您开发应用程序时,若您不需要使用特定的功能,您可以移除该条目。但是,如果在必要时没有使用某种功能,则会在尝试使用应用程序中的功能时收到 UnauthorizedAccessException 错误,同时显示“访问被拒绝”消息。有关更多信息,请参阅如何确定应用程序功能

CAPABILITY 元素

CAPABILITY 元素是 CAPABILITIES 元素的子元素。CAPABILITY 元素有一个属性,即名称。下表列出了名称属性的可能值。

类型

说明

ID_CAP_APPOINTMENTS

字符串

访问约会数据的应用程序。

ID_CAP_CAMERA

字符串

使用相机功能的应用程序。该值仅供移动运营商和原始设备制造者使用。应用程序开发人员使用 ID_CAP_ISV_CAMERA。

ID_CAP_CONTACTS

字符串

访问联系人数据的应用程序。

ID_CAP_GAMERSERVICES

字符串

可以与 Xbox LIVE API 交互的应用程序。由于数据与 Xbox 共享,鉴于隐私问题,必须公开此信息。

ID_CAP_IDENTITY_DEVICE

字符串

使用设备特定信息(如唯一设备 ID、制造商名称或模型名称)的应用程序。

ID_CAP_IDENTITY_USER

字符串

使用匿名 LiveID 以匿名方式唯一识别用户的应用程序。

ID_CAP_ISV_CAMERA

字符串

使用相机功能的应用程序。

ID_CAP_LOCATION

字符串

可访问本地服务的应用程序。

ID_CAP_MEDIALIB

字符串

可访问媒体库的应用程序。

ID_CAP_MICROPHONE

字符串

使用麦克风的应用程序。可以在未显示正在记录的情况下进行记录的应用程序。

ID_CAP_NETWORKING

字符串

可访问网络服务的应用程序。由于在手机漫游时服务可能会产生费用,因此必须公开此信息。

ID_CAP_PHONEDIALER

字符串

可发出电话呼叫的应用程序。此操作可在未向最终用户显示信息的情况下完成。

ID_CAP_PUSH_NOTIFICATION

字符串

可从 Internet 服务接收推送通知的应用程序。由于在使用时会产生漫游费用,因此必须公开此消息。

ID_CAP_SENSORS

字符串

使用 Windows Phone 传感器的应用程序。

ID_CAP_WEBBROWSERCOMPONENT

字符串

使用 Web 浏览器组件的应用程序。存在涉及脚本的安全风险。

ID_HW_FRONTCAMERA

字符串

使用硬件正面相机的应用程序。如果需要,您必须手动添加这一功能,此功能必须与 ID_CAP_ISV_CAMERA 功能一起使用。有关更多信息,请参阅 Windows Phone 的相机和照片概述

返回页首

TASKS 元素是 APP 元素的子元素。此元素仅在内部使用。

属性

类型

说明

名称

字符串

任务名称。默认值为 _default

NavigationPage

字符串

任务在启动时导航到的目标应用程序的页面。

EXTENDEDTASKS 元素

EXTENDEDTASKS 元素是 TASKS 元素的子元素,包含 BACKGROUNDSERVICEAGENT 元素。此元素定义一个应用程序使用多个任务。开发人员命名的扩展任务。目前,您只能使用 EXTENDEDTASKS 元素定义后台任务。

属性

类型

说明

名称

字符串

任务名称。

NavigationPage

字符串

任务在启动时导航到的目标应用程序的页面。

BACKGROUNDSERVICEAGENT 元素

BACKGROUNDSERVICEAGENT 元素是 EXTENDEDTASKS 元素的子元素,包含应用程序所使用的后台服务代理的详细信息。

属性

类型

说明

名称

字符串

程序集名称。

Source

字符串

程序集源文件。

说明符

字符串

AudioPlayerAgent、AudioStreamingAgent 或 ScheduledTaskAgent。

类型

字符串

程序集入口点的完整类名。

返回页首

TOKENS 元素是 APP 元素的子元素。每个应用程序都有一个用户可固定至“开始”屏幕的磁贴。以下各节提供相关名称并在清单文件中描述磁贴的元素和属性。有关更多信息,请参阅 Windows Phone 的图块概述

PRIMARYTOKEN 元素

PRIMARYTOKEN 元素是 TOKENS 元素的子元素。它描述与应用程序相关的磁贴。

属性

类型

说明

TokenID

字符串

磁贴名称。默认值为项目名称。

警告说明警告:
如果更改主要标记的 TokenID,则其不应与任何一个次要磁贴的 TokenID 匹配。如果出现那种情况,用户可能无法安装应用程序更新。

TaskName

字符串

用户点按磁贴时磁贴所调用任务名称。默认值为 _default

TEMPLATETYPE5 元素

TEMPLATETYPE5 元素是 PRIMARYTOKEN 元素的子元素。它是控制应用程序磁贴的默认模板。下表描述 TEMPLATETYPE5 元素的子元素。

元素

类型

说明

BACKGROUNDIMAGEURI

字符串

包含磁贴背景图像的本地或远程资源名称。

COUNT

Integer

磁贴可以包含显示介于 0 到 99 之间的值的计数器。若值为 0,则不在磁贴中显示计数器。

标题

字符串

磁贴中出现的标题。默认值是项目名称。

返回页首

EXTENSIONS 元素是 APP 元素的子元素。此元素用于指定您的应用程序支持的扩展名。有关更多信息,请参阅 Windows Phone 的搜索可扩展性概述

EXTENSION 元素

EXTENSION 元素是 EXTENSIONS 元素的子元素。

属性

类型

说明

ConsumerID

GUID

利用指定的 ProductID 限制对使用者扩展名的访问。所有搜索扩展名均要求使用同一个值,5B04B775-356B-4AA0-AAF8-6491FFEA5661

ExtensionName

字符串

扩展支持类型的标识符。

ExtraFile

字符串

指定 Extras.xml 文件的位置。文件必须位于名为 Extensions 的文件夹中,并且必须命名为 Extras.xml。

TaskID

字符串

将调用路由到指定的 TaskID。若未指定此属性,则调用将路由至默认任务。

返回页首

显示: