Comment Visual Studio génère un manifeste de package d’application
quand vous générez un projet avec Visual Studio, Visual Studio génère un manifeste de package (AppxManifest.xml), qui contient les informations dont le système a besoin pour déployer, afficher ou mettre à jour une application plateforme Windows universelle (UWP).
Il existe deux types de fichiers manifestes de package d’application que vous rencontrerez si vous développez une application avec Visual Studio
- Package.appxmanifest
Il s’agit d’un fichier de style XML que les développeurs utilisent pour configurer les détails d’une application, tels que les informations sur le serveur de publication, les logos, les architectures de processeur, etc. Il s’agit d’une version temporaire configurable et facile du manifeste du package d’application utilisé pendant le développement de l’application. - AppxManifest.xml
ce fichier est généré par le processus de génération Visual Studio et est basé sur les informations contenues dans le fichier Package. appxmanifest. Il s’agit de la version finale du manifeste de package d’application utilisé avec les applications publiées et faisant. Si des mises à jour sont apportées au fichier Package. appxmanifest, vous devez régénérer le projet pour afficher les mises à jour dans le fichier de AppxManifest.xml.
Pour obtenir une vue d’ensemble du processus d’empaquetage, consultez empaqueter une application UWP avec Visual Studio.
Validation du manifeste d'application
Avant de pouvoir publier votre application, vous devez corriger les erreurs qui provoquent l’échec des contrôles de validation Visual Studio. Lorsque Visual Studio génère le manifeste, Visual Studio valide votre application comme suit :
- Validation syntaxique
Visual Studio confirme si toutes les données dans le manifeste d'application sont conformes au schéma du manifeste d'application. - Validation sémantique
Visual Studio fournit des instructions quant aux données attendues, selon le contexte des informations.
Notes
Si ces sections ne mentionnent pas le champ que vous recherchez, elles sont générées à partir de données qui ont pu être configurées séparément ou d’une valeur par défaut à partir du schéma de manifeste.
Génération du contenu du manifeste
Visual Studio remplit les champs dans les tables suivantes lorsqu’il génère le fichier AppxManifest.xml pour le package d’application.
Identité
La Identity
section du manifeste de l’application contient les champs suivants.
Champ | Description |
---|---|
Nom | Nom du package, qui est renseigné différemment dans les scénarios suivants :
|
Serveur de publication | Nom de l'éditeur. Ce nom est renseigné différemment dans les scénarios suivants :
|
Version | Version de l’application en cours de génération. Cela est généralement incrémenté chaque fois que l’application a été modifiée et empaquetée. Pour vous assurer que le Version est correctement incrémenté, utilisez la boîte de dialogue fournie lors de l’appel de packages d’application Store- > créer... pour effectuer des mises à jour. |
ProcessorArchitecture | Valeur générée en fonction de la configuration de build que vous avez spécifiée pour le projet. Si des références de projet ou des références de fichier dans le projet ciblent une architecture différente de celle du package d’application, une erreur de génération est générée et vous devez modifier l’architecture cible du package d’application pour qu’elle fonctionne pour toutes les références. |
Voici un exemple de code XML de Identity
sortie :
<Identity Name="Microsoft.UWPAppExample"
Publisher="CN=Microsoft Corporation"
Version="1.0.0.0"
ProcessorArchitecture="x86" />
Propriétés
La Properties
section du manifeste de l’application contient les champs dans le tableau suivant.
Champ | Description |
---|---|
PublisherDisplayName | Cette chaîne est remplie différemment dans les scénarios suivants :
|
DisplayName | Cette chaîne est renseignée différemment dans les scénarios suivants :
|
Logo | un modèle de Visual Studio sera utilisé Assets\StoreLogo.png par défaut. Cette valeur doit être personnalisée par le développeur dans le fichier Package. appxmanifest. |
Voici un exemple de code XML de Properties
sortie :
<Properties>
<DisplayName>UWP App Example</DisplayName>
<PublisherDisplayName>Microsoft Corporation</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
Application
Un manifeste d’application peut contenir plusieurs Application
éléments, chacun d’eux ayant un nom d’affichage qui apparaît sur la vignette dans le client. La Application
section du manifeste de l’application contient les champs dans le tableau suivant.
Champ | Description |
---|---|
Id | Cette chaîne est renseignée différemment dans les scénarios suivants :
|
Exécutable | La valeur de ce champ est le nom de sortie de l'assembly du projet. Le jeton exécutable $targetnametoken $.exe qui est utilisé dans le fichier manifeste source (package. appxmanifest) est remplacé par le nom de fichier réel lors de la génération du manifeste. |
EntryPoint | Cette valeur est basée sur les valeurs et Id générées Executable . |
Exemple Application
de sortie :
<Applications>
<Application Id="App" Executable="UWPAppExample.exe" EntryPoint="UWPAppExample.App">
<!-- Other elements configured within the Application, such as Extensions, VisualElements, etc. -->
</Applications>
PackageDependency
la PackageDependency
section contient toutes les dépendances de la bibliothèque de composants Windows pour ce package. par exemple, si votre projet a une référence à WinJS, Visual Studio récupère les informations d’identité du package des dépendances lors de la génération du manifeste. Visual Studio remplit ensuite cette section avec les Name
champs et MinVersion
pour chaque package dépendant.
dans un projet C++ natif, Visual Studio ajoute une référence au Runtime Visual C/C++ :
<Dependencies>
<PackageDependency Name="Microsoft.VCLibs.140.00.Debug" MinVersion="14.0.30035.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />
</Dependencies>
extensions d’inscription de Windows Runtime
vous pouvez implémenter des composants de Windows Runtime pour vos applications, mais vous devez inscrire ces composants auprès du système d’exploitation pour qu’ils s’exécutent correctement. pour inscrire un composant Windows Runtime, vous devez placer les informations d’inscription dans les fichiers WinMD et dans le manifeste de l’application. si un projet implémente un composant Windows Runtime, la sortie de génération du projet contient un fichier WinMD. Visual Studio extrait les informations d’inscription Windows Runtime à partir du fichier WinMD et génère les éléments appropriés Extension
dans le manifeste de l’application.
Le système prend en charge deux formes de serveurs : les serveurs .dll (in-process) et les serveurs .exe (out-of-process). Ces serveurs nécessitent des informations d'inscription semblables, mais différentes, qui doivent être copiées dans le manifeste d'application. Visual Studio prend en charge la génération de manifeste uniquement pour les serveurs .dll, et l'extension DLLServer est nécessaire pour inscrire les serveurs .dll. Les valeurs suivantes dans le manifeste d’application sont extraites des fichiers WinMD pour générer l’extension DLLServer :
- DllPath
- ActivatableClassId
- ThreadingModel
- ActivatableClass (attribut ActivatableClassId)
Voici un exemple de sortie XML :
<extension category="Microsoft.Windows.ActivatableClass">
<dllServer>
<dllPath>Fabrikam.dll</dllPath>
<activatableClass activatableClassId="Fabrikam.MyClass" threadingModel="sta" />
</dllServer>
</extension>
pour plus d’informations sur cette rubrique, consultez Windows Runtime components.
Ressources
La Resources
section contient une entrée pour chaque langue prise en charge par l’application. Vous devez avoir au moins une langue de ressource spécifiée dans le manifeste de l’application. Visual Studio génère automatiquement la liste des langues prises en charge en fonction des informations de localisation dans le projet. Le jeton de langage de ressource « x-Generate » utilisé dans le fichier manifeste source (package. appxmanifest) est remplacé par le code de langue réel lors de la génération du manifeste. Voici un exemple de sortie XML :
<Resources>
<Resource Language="en-us">
<Resource Language="fr-fr">
</Resources>
La première entrée de la liste est la langue par défaut de l'application.
TargetDeviceFamily
La TargetDeviceFamily
section contient les champs suivants :
- Nom
- MinVersion
- MaxVersionTested
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.22000.0" />
</Dependencies>
ces éléments sont renseignés à partir des propriétés de MSBuild.
Voir aussi
Créer un package d’application UWP avec Visual Studio
Architectures de package d’application
Informations de référence sur le schéma du manifeste de package Windows 10