The Manifest Designer, a tool offered in the Windows Store apps, allows for the modification of various aspects of a Windows Store app. It can be utilized to manage aspects such as tile behavior, access to resources, and publisher information. The tool provides an easy way to edit the package manifest file, even if you are not familiar with its schema details.

Here's how you can launch the App Manifest Designer from within Visual Studio:

In Visual Studio, open the package.appxmanifest file. This will open the manifest as a document which will appear on a tab with the name of the file. You will notice that there is no title saying "App Manifest Designer", but it is where you need to be.

To launch the App Manifest Designer, go to the menu bar and select either "Project" or "Store" > "Edit App Manifest". Note that if you're using Visual Studio Express 2012 for Windows 8, you need to choose "Store" > "Edit App Manifest" instead.

Once you are inside the App Manifest Designer, you will find four tabs available: Application UI, Capabilities, Declarations, and Content URIs (which only appears for JavaScript projects).

## Packaging

To create an app manifest, you can refer to examples provided in the documentation. The complete app manifests can be found inside individual Windows Store apps within the Windows Dev Center. To access these samples, please see [Windows Store app samples](https://docs.microsoft.com/en-us/windows/store/developer/packaging-app).

## Application UI

This section describes various visual behaviors and properties of your app that appear on the user's Start screen. Some key points include:

- How the app tile appears on the Start screen

- Whether the app is capable of displaying notifications to users

- The appearance of the app's splash screen

For more detailed information, please consult the following topics:

- VB/C#/C++ and XAML

- JavaScript and HTML

## Display Name

The display name for your app is a user-friendly name that appears when the app is shared with others or mentioned in public contexts. This string is designed to be localized, so it can be displayed in different languages. However, there are some reserved words that cannot be used as the display name for apps uploaded to the Windows Store. These include "NoUIEntryPoints" and "NoUIEntryPoints-DesignMode". These identifiers are reserved for use by development tools and test suites.

以下是重构后的内容:

启动类(Start Class):指定在应用程序被激活时运行的类(例如,Office.Winword.Class)。如果您指定了此属性但未指定Start Page属性,则必须指定Executable属性。此属性仅适用于Visual Basic、Visual C#和Visual C++项目。

启动页面(Start Page):指定应用程序的默认启动HTML页面的名称。此文件必须存在于应用程序包中。如果您指定了此属性,则不能同时指定Entry Point和Executable属性。此属性仅适用于JavaScript项目。

描述(Description):可选。指定描述应用程序的文本,以显示在控制面板的“默认程序”中。此字符串可本地化。

支持的旋转方式(Supported Rotations):

此属性指定应用程序在最佳用户体验方面更倾向于显示的方向:横向(Landscape)、纵向(Portrait)、横向翻转(Landscape-flipped)或纵向翻转(Portrait-flipped)。对于可以旋转的设备(如平板电脑),如果未指定此属性,则不会为非指定方向重新绘制应用程序。例如,如果设备旋转至纵向方向,但此属性仅指定了横向和横向翻转方向,则应用程序不会旋转。

对于无法旋转的设备,应用程序可能会以该设备的默认方向显示,并且应用程序的首选方向将被忽略。但是,如果您的应用程序启用了旋转锁定功能,则将在激活旋转锁定功能的设备上尊重应用程序的首选旋转方向。当为您的应用程序启动新会话时,这些方向偏好选择适用于启动画面和应用程序UI。

这个应用程序UI页面的一部分用于指定应用程序磁贴的外观以及徽标和启动画面的图像。关于您的应用程序需要哪些图像的信息,请参阅选择您的应用程序图像。

如果您提供单独的图像文件来增强具有不同像素密度的不同屏幕上的缩放效果,可以使用此部分来指定图像文件的名称和位置。您可以将文件存储在项目中的相同文件夹中,如果文件名包含缩放限定符(例如,Assets\Logo.Scale-100.png,AssetsLogo.Scale-140.png等),则可以这样做。作为替代方案,您可以将文件组织到带有缩放限定符的文件夹中(例如,Assets\Scale-100\Logo.png,Assets\Scale-140\Logo.png等)。

使用“缩放后的资源”框指定在具有不同像素密度的不同屏幕上进行缩放的图像。有关更多信息,请参阅适用于像素密度的缩放指南(Windows Store应用程序)。

This is a description of the parameters required for creating a Windows 8 tile app.

The first parameter, Show Name, specifies the short name that appears directly on the tile. This string is localizable, so you can change it to any language supported by your app.

The second parameter, Show Name Size, allows you to choose how the app's short name should be displayed on the tile, such as square only, wide only, both, or neither.

The third parameter, Foreground Text Color, sets the text color relative to the background color on the app’s tile in Windows. The value is either “Light” or “Dark”.

The fourth parameter, Background Color, sets the background color for the app’s tile in Windows. The color can be specified as a three-byte hexadecimal number preceded by #, such as #008800, or as a named color, such as maroon or teal. The background color specified here also applies to the button color in any app-owned dialog boxes and to the App Description page in the Store.

The fifth parameter, Logo Image, allows you to specify the image that will be used as the square tile for your app. For screens with different pixel densities, you can use the Scaled Assets boxes to specify which images should be used for scaling. Simply browse and select the image that you want to display.

The Windows 8 Start screen tiles allow users to access a variety of apps, websites, and other content. To design the Start screen tiles, you must create a custom tile that includes an app icon or site icon, as well as optional branding elements such as a background image and wide logo image.

When creating a custom tile, you can specify and add a logo file that has the appropriate dimensions for each box. This step will also rename the file to conform to the scale-naming convention that Windows 8 uses. To learn more about how to scale images, see Quickstart: Using file or image resources.

The scale-naming convention follows this pattern: {Scale-80} (120x120px), {Scale-100} (150x150px), {Scale-140} (210x210px), {Scale-180} (270x270px), and {Scale-280} (360x360px). The width and height of each scaling option are defined in the manifest file of your app package.

If you want to include a wide logo image in your Start screen tile, specify the wide version of the logo image, which appears when the tile appears in its wide format. If this image isn't provided, the tile can display only in the square format and can't accept notifications based on wide template types. However, we recommend including a wide logo image since it provides more flexibility in terms of layout and design. Once a wide logo image is added, the tile will appear initially in its wide format.

The scales and dimensions for wide logo images are different from those for regular logo images. When designing a wide Start screen tile using a custom font, make sure that the text is large enough to be legible at the desired size. You can use the built-in FontFamily class to define the font family and size for each element in your app.

This is a list of different sizes and dimensions for different types of images used in Microsoft Windows operating systems, particularly for the Windows Store where applications are hosted.

- **Small Logo** : This is a small image or emblem that appears in the corner of tiled apps to identify them. It can be displayed at different scales based on the original size of the image. For instance, it could be displayed at Scale-80 (24x24px), Scale-100 (30x30px), Scale-140 (42x42px), Scale-180 (54x54px), etc. Small logo images are used in various locations such as Start screen apps view, search contract pane, Share pane, and File Explorer.

- **Large Logo** : This is a larger version of the small logo, typically used when space is more limited. The large logo can also have different scales, such as Scale-100 (50x50px), Scale-140 (70x70px), and so forth. Large logos are used primarily in the Windows Store interface.

- **App Icons** : These are square or rectangular images that represent applications within File Explorer and the Open With dialog box. App icons can be scaled and displayed in different sizes like Targetsize-16 (16x16px), Targetsize-32 (32x32px), Targetsize-48 (48x48px), Targetsize-256 (256x256px).

- **Store Logo** : The Store Logo is an image that appears on your app in the Windows Store, typically representing your brand or identity. The store logo can also vary in scale, being displayed at Scale-100 (50x50px), Scale-140 (70x70px), Scale-180 (90x90px), among others.

- **Badge Logo** : A Badge Logo is a smaller logo or icon that appears next to the app name within the Start screen apps view. Badge logos can have different scales depending on their size relative to the app name, like Scale-80 (24x24px), Scale-100 (30x30px), and so forth. They help users quickly recognize and locate specific apps at a glance.

App Manifest (*appxmanifest) Properties

The app manifest file is an important configuration file that defines the properties of your app. Here's how to set some of the most common properties for your app in the **Properties** section of the **App Manifest File** :

## Specifies the image that appears next to the badge to identify the app. This image must be monochromatic, of type .png, and measure 24 x 24 pixels, unless you are using multiscaled images.

To set this property:

* Open your **AppXManifest.xml** file.

* Click on the **Property** tab.

* Enter a name for the image, and click on the drop-down menu to select **_Badge_** from the list of available options.

* In the **Value** field, enter the path to your image file. Ensure that it meets the following requirements:

1. It is a monochromatic image (black or white).

2. Its file extension is .png.

3. Its dimensions must be either 24 x 24 pixels or larger if you are using multiscaled images.

## Scales and Dimensions

This property specifies how your app should be scaled based on the device resolution and size of its launch window.

To set this property:

* Open your **AppXManifest.xml** file.

* Click on the **Property** tab.

* Enter a name for the scale factor, and click on the drop-down menu to select **_Scale_** from the list of available options.

* In the **Value** field, enter one of the following values:

1. **_100_** (16:9 aspect ratio).

2. **_140_** (16:10 aspect ratio).

3. **_180_** (18:9 aspect ratio).

4. **_340_** (3:2 aspect ratio).

* Optionally, enter a value for **_Height and Width_** if you want to specify a fixed height and width for your app's launch window. For example, **_340_** would mean a launch window with dimensions of 680 x 380 pixels.

## SplashScreen

### Background Color

You can set the background color for your app's splash screen using the `backgroundColor` property in the `SplashScreen` class. The background color can be specified as either a three-byte hexadecimal number preceded by #, such as `#008800`, or as a named color, such as `maroon` or `teal`. Here is an example of how to change the background color:

```markdown

```

In this example, the background color is set to `#008800`, which is a dark green color. You can replace this with any valid color value to customize the appearance of your splash screen.

## Capabilities

The `Capabilities` page allows you to specify which resources your web app can access programmatically, such as the Pictures library or connected devices like cameras or microphones. Any capabilities chosen in the app manifest designer will be displayed in the app manifest (`Package.appxmanifest` file and the build output `AppxManifest.xml` file) within the `` tags. For example:

```markdown

```

In this example, the app has been granted permission to access the Documents Library, which includes files stored on the user's device. This capability will be listed in the app manifest along with other capabilities selected by the developer.

## Capabilities (Check Box List)

The `Capabilities (Check Box List)` page allows you to request access to additional features or devices that are not already included in the app manifest. This can be useful if you need to access certain APIs or functionalities that are not available through default means. To add a new capability to the list, simply check off the corresponding box next to the desired feature. Once you have added all the required capabilities, save your changes and they will be reflected in the app manifest.

Description: This capability provides information about the currently selected feature.

List of Capabilities: The app's ability to utilize specific features or devices is outlined in this list.

Documents Library: This capability allows users to add, modify, or delete files from their Documents library. Note that access to these files is limited by the File Type Association handler declared in the app manifest. For example, an application designed to read DOC files will only be able to open .doc files and not other file types. Furthermore, it cannot access Document libraries on HomeGroup computers unless explicitly declared via the Documents Library capability. This capability should only be utilized when programmatic access is required for scenarios not achievable through the use of a file picker.

```xml

.dat

```

## Enterprise Authentication

The **Windows domain credentials** feature enables a user to log into remote resources using their credentials and act as if they were providing their user name and password. This capability is commonly utilized in line-of-business (LOB) apps that connect to servers within an enterprise. However, this functionality is not necessary for generic communication across the internet.

It is important to note that the **Enterprise Authentication** capability is intended for supporting common LOB apps. You should not declare it in apps that do not require access to corporate resources.

When your app requires programmatic access to corporate resources, but cannot be achieved by using the file picker mechanism, you can declare the Enterprise Authentication capability. This capability is written in the `AppxManifest.xml` file and is shown below:

```xml

```

Remember to only include this declaration when necessary, as it adds complexity to your application manifest and may not be required for all scenarios.

Private Networks (Client & Server)

The Private Networks (Client & Server) capability provides inbound and outbound access to home and work networks through the firewall. This feature is typically used for games that require communication across the local area network (LAN), as well as apps that need to share data with various local devices. If your app specifies musicLibrary, picturesLibrary, or videosLibrary, there's no need to use this capability to access the corresponding library in a Home Group. Inbound access to critical ports is always blocked by default. To enable this capability, you should add the following XML code to your AppxManifest.xml file:

<Capabilities>

<Capability Name="privateNetworkClientServer" />

</Capabilities>

Internet (Client & Server)

The Internet (Client & Server) capability enables your app to connect to the internet and communicate with servers on the internet. This includes accessing web services, downloading files from the internet, and making online purchases, among other things. To enable this capability in Windows 10, you need to add the following manifest entry to your AppxManifest.xml file:

<Capabilities> <Capability Name="internetClientServer`` /> </Capabilities>

In the context of an app's capabilities, inbound and outbound access can be provided through firewalls to allow communication with the Internet and public networks like airports and coffee shops. However, critical ports are typically blocked for added security measures. This capability is often utilized in peer-to-peer (P2P) scenarios where apps use file sharing and VOIP services. The Internet (Client & Server) capability encompasses the former by providing access to both the Internet (Client) and Internet (Server).

To achieve this functionality, the AppxManifest.xml file includes a specific code snippet:

```xml

```

This ensures that applications built using this capability have full access to both client and server functions within the application.

Outbound access to the Internet and public networks is provided through firewalls, such as airports and coffee shops. These are known as intranet networks where users have designated them as public. Most apps requiring Internet access should utilize this capability. The specific capability is written in the AppxManifest.xml file using the following code:

```xml

```

Location capability provides access to location functionality, which can be obtained from dedicated hardware such as a GPS sensor or derived from available network info. However, it's essential to handle cases where users disable location services in their Settings charm. The capability is written in the AppxManifest.xml file with the following code:

```xml

```

Lastly, Microphone capability allows apps to access the user's microphone. This capability is also typically written in the AppxManifest.xml file:

```xml

```

The microphone capability provides access to the audio feed from connected microphones, allowing apps to record audio. However, it is essential for apps to handle cases where the user has disabled microphone access from the Settings charm. To do so, the capability must be written in the AppxManifest.xml file as shown below:

```xml

```

On the other hand, the music library capability offers programmatic access to the user's Music library, enabling apps to enumerate and access all files in the library without requiring user interaction. This capability is typically utilized in jukebox apps that need complete control over the Music library.

The file picker component provides an effective UI mechanism that allows users to open files for use with an app. In order to declare the music library capability, developers can add the following code to their AppxManifest.xml file:

```xml

```

By declaring the `musicLibrary` capability in the manifest, applications can access and manipulate the user's Music library programmatically, providing a seamless user experience.

The Capabilities section in the AppxManifest.xml file is used to define various capabilities for your app. One such capability is the Pictures Library, which provides programmatic access to a user's Pictures library, allowing the app to enumerate and access all files in the library without user interaction. This capability is particularly useful in photo playback apps that need to access the entire Photos library.

It's important to note that using the Pictures Library capability should be done with caution, as it provides full control over a user's private data. The capability should only be declared and used when the scenarios for your app require programmatic access, and you can't achieve those same goals through the use of a file picker. A file picker provides a robust UI mechanism that enables users to open files for use with an app, ensuring that any access to private data is done in a controlled and secure manner.

To declare the Pictures Library capability in your AppxManifest.xml file, you would add something like the following code:

```xml

```

By including both musicLibrary and picturesLibrary capabilities, you are providing your app with both the ability to access the user's music library and their photos library, depending on the scenario that requires it.

CapabilitiesThe Capabilities section in an AppxManifest.xml file defines the features and abilities of an app that can be used by Windows. It allows developers to specify which capabilities are supported by their app, enabling users to make informed decisions about whether to download and run the app. In this example, we will discuss three common capabilities: picturesLibrary, proximity, and removableStorage.

Pictures Library Capability

The Pictures Library capability enables an app to access and manage the user's picture library on devices running Windows 10. This capability is typically used in apps that require access to a user's photo collection, such as social media apps or photo editing tools. To use the Pictures Library capability, you need to include it in the Capabilities section of your AppxManifest.xml file, as shown below:

```xml

```

Proximity Capability

The Proximity capability allows multiple devices in close proximity to communicate with one another. This capability is typically used in casual multi-player games and in apps that exchange information. Devices attempt to use the communication technology that provides the best possible connection, including Bluetooth, WiFi, and the Internet. This capability is used only to initiate communication between the devices. The capability is written in the AppxManifest.xml file as the following code shows:

```xml

```

Removable Storage Capability

The Removable Storage capability allows an app to access data stored on removable storage devices, such as USB drives and SD cards. This feature is useful for apps that need to save or retrieve files outside of the default app data location on devices with local storage (such as internal hard drives). To use the Removable Storage capability, you need to include it in the Capabilities section of your AppxManifest.xml file, as shown below:

```xml

```

The RemovableStorage capability provides programmatic access to files on removable storage, such as USB keys and external hard drives. This is filtered to the file type associations that are declared in the package manifest. For instance, if a DOC reader app declares a .doc file type association, it can open .doc files but not other types of files on the removable storage device. However, it is important to be cautious when declaring this capability, as users may include various kinds of information in their removable storage devices and expect the app to provide a valid justification for programmatic access to the entire file type.

Users generally expect your app to handle all file associations that you declare. Therefore, it is advisable not to declare file associations that your app cannot responsibly handle. The file picker component provides a robust UI mechanism that enables users to open files for use with an app. To declare the RemovableStorage capability, use the tag in the AndroidManifest.xml file. Here's an example:

```xml

android:name="android.support.v4.content.FileProvider"

android:authorities="com.example.myapp.fileprovider"

android:exported="false"

android:grantUriPermissions="true">

android:name="android.support.FILE_PROVIDER_PATHS"

android:resource="@xml/file_paths" />

```

In summary, the RemovableStorage capability allows an app to access files on removable storage devices, provided that the appropriate file type associations are declared in the package manifest and handled responsibly by the app. The file picker component provides a user-friendly interface for opening files in an app, and the FileProvider system is used to associate file paths with the app's package.

以下是重构后的内容:

仅在您的应用程序需要通过编程方式访问某些场景时,才需要这些功能。如果无法使用文件选择器实现,则需要这些功能。这些功能以AppxManifest.xml文件的代码形式呈现,如下所示:

```xml

```

共享用户证书功能

共享用户证书功能使应用程序能够访问软件和硬件证书,例如存储在智能卡上用于验证用户身份的证书。通常,此功能用于金融服务或企业应用程序,这些应用程序需要智能卡进行身份验证。当在运行时调用此功能时,用户必须插入卡片、选择证书等操作。此功能的代码形式如下:

```xml

```

视频库功能

视频库功能允许应用程序访问用户的视频库。这通常用于提供用户可以在其中查看、编辑和分享视频的功能。具体的实现方式取决于应用程序的需求和设计。

Programmatic access to the user's Videos library can be achieved using the 'videosLibrary' capability. This allows an app to enumerate and access all files in the library without requiring user interaction. The 'videosLibrary' capability is commonly used in movie playback apps that need access to the entireVideos library.

In some cases, however, it may not be possible or appropriate to use the file picker for accessing theVideos library. In such scenarios, the app developer can declare the 'videosLibrary' capability in the AppxManifest.xml file as needed.

It is worth noting that this capability should only be declared when the specific scenarios for your app require programmatic access to theVideos library, and cannot be achieved through other means. If you need more information about how to record video, you can refer to the How to record audio or video section.

Overall, while using the 'videosLibrary' capability provides convenient access to the user's Videos library, it is important to carefully consider whether it is necessary based on the needs of your app.

The 'capability' provides access to the webcam's video feed, which enables the app to capture snapshots and movies from a connected webcam. This capability is commonly utilized in video chat or conferencing apps. To ensure seamless functionality, apps must take care of scenarios where the user has disabled webcam access from the Settings charm. For more information on how to record video, refer to How to record audio or video.

The 'Webcam' capability grants access exclusively to the video stream. However, if you wish to grant access to the audio stream as well, you must include the 'Microphone' capability. The 'Microphone' capability is specified in the AppxManifest.xml file, as follows:

```xml

```

If you are looking for additional features beyond basic functionality, you can utilize Windows Store app capabilities. Use this page to extend or customize standard Windows features for use in your Windows store apps. For instance, an app can declare that it handles files with specific file extensions. If you need an overview of declarations, refer to App contracts and extensions.

Here is a list of available declarations that you can utilize:

[Available Declarations]

This is a description of the structure and functionality of the Supported Declarations list. The Supported Declarations list allows you to declare what your app can support. You can add declarations to this list by clicking the "Add" button. Each declaration has its own description, which describes the current selection in detail.

When looking at the Supported Declarations list, you will also see a list of all currently selected declarations. This list shows each declaration with its own "Remove" button. If you wish to remove a specific declaration from the list, you can use this button to do so.

In addition to the Supported Declarations, there are Properties that allow you to set properties associated with the currently selected declaration. These properties depend on the declaration itself and can vary depending on the type of extension being defined. However, three properties are always listed for app contracts: Executable, Entry Point, and Additional Information.

The Executable property specifies the default executable for the extension. If this property is specified, then the Entry Point property is also used. If the executable property isn't specified, then the executable that's defined for the app is used. If the Entry Point property isn't specified, then the Entry Point that's defined for the app is used.

Finally, the Entry Point property specifies a string that identifies the object that handles the extension. This property is crucial in ensuring that your app can communicate with the extension correctly.

The following declarations are available in the list of Available Declarations for your app:

1. Account Picture Provider

2. AutoPlay Content

3. AutoPlay Device

4. Background Tasks

When users want to change their account picture, they can either select an existing picture from their device or use an app to take a new one. If your app has the ability to capture images, you can utilize this extension to have Windows display your app in the Account Picture Settings control panel. This way, users can select your app to create a new account picture. It is important to note that only one instance of this declaration is permitted per app.

When a user connects a device to their computer, Windows generates an AutoPlay event. With this extension, your app will be listed as an AutoPlay choice during one or more AutoPlay events.

To register your app for Device events, such as attaching a camera, use the AutoPlay Device declaration. Multiple instances of this declaration are allowed within each app.

Finally, the Background Tasks declaration allows you to run tasks in the background without interfering with the user's experience.

Apps can utilize background tasks to execute app code even when the app is suspended. Background tasks are designed for small, non-interactive work items. Multiple instances of this declaration are permitted within each app. The following code is from the Background Task sample.

```xml

```

Cached File Updater

Here are some important declarations to keep in mind when creating a Windows Store app:

- To provide updates for particular files, you can use the `FileUpdateTrigger` class. This helps users who want to use your app as a central repository to track and maintain files. For example, Microsoft SkyDrive can track a file to ensure that the user sees the latest version of the file and trigger updates to the file if the SkyDrive app can provide a newer version. Additionally, if the user saves a newer version of a tracked file, SkyDrive can trigger an update to its version of the file to ensure that SkyDrive always has the newest version. Remember that only one instance of this declaration is allowed per app. For more information about the file picker, see Quickstart: Integrating with file picker contracts (Windows Store apps) and Integrating with file picker contracts (Windows Store apps).

- To provide a custom user interface for selecting camera options and choosing effects when a camera is used to capture photos or video, you can use the `CameraSettingsContract` class. This allows users to customize their camera settings and choose from various effects before capturing a photo or video. Remember that only one instance of this declaration is allowed per app.

- If your app needs to access certificates, such as those used for secure connections or authentication, you can use the `CertificateContract` class. This allows users to store and manage their certificates securely within your app. Just make sure to respect user privacy and only access the necessary certificates. Keep in mind that only one instance of this declaration is allowed per app.

Digital certificates play a crucial role in establishing trust between entities. For instance, they are commonly used to authenticate users accessing web services over SSL (Secure Sockets Layer). The ability to install a digital certificate with an app is made possible through the use of this extension. It's important to note that each application is allowed only one instance of this declaration.

The Contact Picker extension enables apps to register and provide access to contact data. By doing so, these apps are included in the list of accessible contacts whenever users require access to their own information. Again, it's important to remember that each app can only have one instance of this declaration.

File Open Picker is another useful extension for Windows Store apps. It enables the app to be registered as a file open picker, meaning other Windows 8 apps can access the content within the app. However, due to its functionality, it's also essential to ensure that each app has only one instance of this declaration. For more information on how to use the File Open Picker or related contracts, refer to the Quickstart: Integrating with File Picker Contracts guide for both Windows Store apps.

Lastly, we have the File Save Picker extension, which is similar to the File Open Picker but specifically designed for saving files. This extension allows apps to register as a file save picker, making their content available to other Windows Store apps for saving. As with previous extensions, it's vital to ensure that each app is using only one instance of this declaration to avoid any potential issues. To learn more about integrating with file save pickers or related contracts, refer to the appropriate documentation.

## Register as File Save Picker

Registering an app as a file save picker is useful for other Windows 8 apps to access the app as a save location. This feature can be accessed via a single instance of this declaration per application. For more details, consult the Quickstart: Integrating with file picker contracts (Windows Store apps) and Integrating with file picker contracts (Windows Store apps) documentation.

```markdown

Registers the app as a file save picker, making the app an available save location for other Windows 8 apps. Only one instance of this declaration is allowed per app. For more information about the file picker, see Quickstart: Integrating with file picker contracts (Windows Store apps) and Integrating with file picker contracts (Windows Store apps).

```

### File Type Associations

File type associations are also supported by Windows Store apps. This allows registering file types like `.jpeg` on behalf of the app. Multiple instances of this declaration can be used in each app. For further details on handling file activation, consult the following documentation: How to handle file activation (Windows Store apps using JavaScript and HTML) (Windows), How to handle file activation (Windows Store apps using C#/VB/C++ and XAML) (Windows), and Guidelines and checklist for file types and URIs (Windows Store apps) (Windows).

```markdown

Registers file type associations, such as `.jpeg`, on behalf of the app. Multiple instances of this declaration are allowed in each app. For more information, see How to handle file activation (Windows Store apps using JavaScript and HTML) (Windows), How to handle file activation (Windows Store apps using C#/VB/C++ and XAML) (Windows), and Guidelines and checklist for file types and URIs (Windows Store apps) (Windows).

```

### Game Explorer

Game Explorer is a powerful tool that simplifies game development for Windows Store applications. The tool provides a centralized hub where developers can manage their games, including uploading new builds and updating existing ones. With Game Explorer, developers can easily distribute their games to the Microsoft Store, ensuring that they reach a large audience.

Your app can register with the Windows Parental Control system as a game, allowing users to limit access when family safety features are enabled. To achieve this registration, you will need to create a Game Definition File (GDF) and declare it in the package manifest. The GDF should include information about the game, such as its rating according to PEGI, ESRB, or other regional rating systems. It is important to note that only one instance of this declaration is allowed per app.

When providing a GDF file for your game, Windows can take action to restrict access when family safety features are activated by the user. This ensures that users have a safer and more controlled experience when using the app.

Another feature that your app can offer is the ability to display a custom print-related user interface and communicate directly with a print device. This can be particularly useful for apps designed for specific make and model printers, as it provides a richer and more enhanced user experience. However, it's worth noting that each instance of this feature declaration should be limited to one app.

In summary, these are just a few examples of the many capabilities that your app can offer through Windows Parental Controls and print related settings. By leveraging these tools, you can create a more engaging and secure user experience for your app's target audience.

Your application can utilize various URI schemes for communication, such as mailto, or you can create a custom URI scheme. By utilizing this declaration, your app has the ability to register itself as a pluggable protocol handler, which is associated with the name of a specific URI scheme. It is possible to declare multiple URI schemes per app.

In addition, the app can include a search function that enables users to search not only within the app's content but also across other apps' content. Users can even transfer their search queries to other apps. When you agree to participate in this contract, you are acknowledging that your app's content will be accessible to and searchable by other participants, and you are responsible for presenting search results from these participants within your app. By doing so, you increase the likelihood of attracting traffic and usage to your app. Note that only one instance of this declaration is allowed per app.

The Share contract in Android allows developers to enable users to share content from their app with another app or service, and vice versa. By participating in this contract, developers can avoid writing extra code or providing SDKs to other developers, as supported apps can automatically share content with each other. This not only helps increase traffic and usage for the app but also streamlines the sharing process.

It is important to note that only one instance of the Share contract declaration is allowed per app. Additionally, when using content URIs for geolocation or Clipboard access, developers must also declare the app's capability in the package manifest. These URIs can include wildcard characters in subdomain names (e.g., https://*.microsoft.com).

This page, which appears only if the app is a Windows Store app built using JavaScript, allows you to configure URIs that have access to web standards for geolocation and Clipboard access. With these features, your app can provide a more seamless and user-friendly experience for its users, allowing them to share content easily between different apps and services.

The Windows Store provides the following features and restrictions when creating Windows applications:

1. **Linking to external web pages**: This feature allows you to create links in your application that direct users to external web pages using JavaScript and HTML. For more information, see How to link to external web pages (Windows Store apps using JavaScript and HTML) (Windows).

2. **Context-specific features and restrictions**: This feature enables you to define different sets of features and restrictions based on the context in which your app is run. For example, you can enable certain features or restrict access to certain functionalities only when the app is running on a desktop device or only when the app is running on a mobile device. See Features and restrictions by context (Windows Store apps using JavaScript and HTML) (Windows) for more details.

3. **URI handling**: The URI (Uniform Resource Identifier) is the address of a resource on the internet. Your app can have access to certain URIs, but there may also be certain URIs that your app cannot access. You can specify whether your app should include or exclude specific URIs in the app manifest. To add a new URI, you can use the "Add new URI" option in the app manifest editor.

4. **Packaging**: Packaging involves giving your app a unique identity that includes its name, version, and publisher information. This helps users identify your app when it is available in the Windows Store. For more information about naming your app and defining its identity, see Naming your app (Windows) and Identity (Windows).

5. **Package Name**: This is a required field in the app manifest that specifies the unique name that identifies your package on the system. When you upload your package to the Windows Store, this name replaces the default name generated by the system. It is case-sensitive, so be sure to use the correct case when entering it. In addition to the Package Name, you can also use the Package Display Name to provide a user-friendly name that describes your app's purpose or functionality.

The `PackageDisplayName` property is used to display a package name to users. This string must not end with a period and must not be one of the following strings: "CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", and "LPT8. It is also important that this string does not end with a period (.), which would indicate that it is an executable file.

The `PackageDisplayName` property should be set as follows:

```python

package = {

'name': 'MyApp',

'display_name': 'My Friendly App Name',

'logo': '/path/to/logo.png',

'version': '1.0.0',

'publisher': 'My Company'

}

```

In addition to the `PackageDisplayName`, it is also possible to specify other properties such as `Logo` and `Version`. For example:

```python

package = {

'name': 'MyApp',

'display_name': 'My Friendly App Name',

'logo': '/path/to/logo.png',

'version': '1.0.0',

'publisher': 'My Company',

'description': 'This is a description of my app.'

}

``

The SigningCertificate属性是必需的,它指定了用于验证应用程序包的签名证书的主题字段。当将应用程序包上传到商店时,此名称将被替换。有关更多信息,请参阅签署Windows商店应用程序包(Windows商店应用程序)。

选择证书选项会打开一个对话框,使您可以选择或创建一个证书。有关更多信息,请参阅签署Windows商店应用程序包(Windows商店应用程序)。

PublisherDisplayName属性指定在开发人员门户网站网站上的Publisher Name字段中使用的名字。当将应用程序包上传到商店时,此名称将被替换。

PackageFamilyName属性是一个唯一名称,用于标识系统上的应用程序包,由应用程序包名称和发布者字符串的哈希组成。

有关其他概念和其他资源的信息,请参阅相关文档。