Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un manifeste d’application (également appelé manifeste d’application côte à côte ou manifeste de fusion ) est un fichier XML qui décrit et identifie les assemblys côte à côte partagés et privés auxquels une application doit se lier au moment de l’exécution. Il doit s’agir des mêmes versions d’assembly que celles utilisées pour tester l’application. Les manifestes d’application peuvent également décrire les métadonnées des fichiers privés à l’application.
Pour obtenir une liste complète du schéma XML, consultez le schéma du fichier manifeste.
Les manifestes d’application ont les éléments et attributs suivants.
| Élément | Attributs | Obligatoire |
|---|---|---|
| assemblée | Oui | |
| manifestVersion | Oui | |
| noInherit | Non | |
| assemblyIdentity | Oui | |
| type | Oui | |
| nom | Oui | |
| Langue | Non | |
| processorArchitecture | Non | |
| Version | Oui | |
| publicKeyToken | Non | |
| compatibilité | Non | |
| application | Non | |
| supportedOS | Non | |
| Id de | Oui | |
| maxversiontested | Non | |
| Id de | Oui | |
| dépendance | Non | |
| dependentAssembly | Non | |
| lime | Non | |
| nom | Oui | |
| hashalg | Non | |
| hash | Non | |
| activateableClass | Non | |
| nom | Oui | |
| threadingModel | Oui | |
| activeCodePage | Non | |
| autoElevate | Non | |
| disableTheming | Non | |
| disableWindowFiltering | Non | |
| dpiAware | Non | |
| dpiAwareness | Non | |
| gdiScaling | Non | |
| highResolutionScrollingAware | Non | |
| longPathAware | Non | |
| printerDriverIsolation | Non | |
| ultraHighResolutionScrollingAware | Non | |
| msix | Non | |
| heapType | Non | |
| supportedArchitectures | Non | |
| trustInfo | Non |
Emplacement du fichier
Si possible, vous devez incorporer le manifeste d’application en tant que ressource dans le fichier de .exe votre application ou .dll. Si vous ne pouvez pas le faire, vous pouvez placer le fichier manifeste de l’application dans le même répertoire que le .exe ou .dll.
Pour plus d’informations, consultez Installation d’assemblys côte à côte.
Nom de fichier
Par convention, un manifeste d’application doit avoir le même nom que le fichier exécutable de votre application, avec l’extension .manifest ajoutée.
Par exemple, un manifeste d’application qui fait référence ou example.exeexample.dll doit utiliser la syntaxe de nom de fichier suivante (si l’ID de ressource est 1, vous pouvez omettre le < segment ID> de ressource de la syntaxe).
example.exe.<ID de> ressource. manifeste
example.dll.<ID de> ressource. manifeste
Éléments
Les noms d’éléments et d’attributs respectent la casse. Les valeurs des éléments et des attributs ne respectent pas la casse, à l’exception de la valeur de l’attribut de type.
assemblée
Élément conteneur. Son premier sous-élément doit être un élément noInherit ou assemblyIdentity . Obligatoire.
L’élément assembly doit se trouver dans l’espace de noms urn:schemas-microsoft-com:asm.v1. Les éléments enfants de l’assembly doivent également se trouver dans cet espace de noms, par héritage ou par balisage.
L’assembly a les attributs suivants.
| Attribut | Descriptif |
|---|---|
| manifestVersion | L’attribut manifestVersion doit être défini sur 1.0. |
noInherit
Incluez cet élément dans un manifeste d’application pour définir les contextes d’activation générés à partir du manifeste avec l’indicateur « aucun héritage ». Lorsque cet indicateur n’est pas défini dans un contexte d’activation et que le contexte d’activation est actif, il est hérité par de nouveaux threads dans le même processus, les fenêtres, les procédures de fenêtre et les appels de procédure asynchrone. La définition de cet indicateur empêche le nouvel objet d’hériter du contexte actif.
L’élément noInherit est facultatif et généralement omis. La plupart des assemblys ne fonctionnent pas correctement à l’aide d’un contexte d’activation sans héritage, car l’assembly doit être explicitement conçu pour gérer la propagation de son propre contexte d’activation. L’utilisation de l’élément noInherit nécessite que tous les assemblys dépendants référencés par le manifeste de l’application aient un élément noInherit dans leur manifeste d’assembly.
Si noInherit est utilisé dans un manifeste, il doit s’agir du premier sous-élément de l’élément d’assembly . L’élément assemblyIdentity doit se trouver immédiatement après l’élément noInherit . Si noInherit n’est pas utilisé, assemblyIdentity doit être le premier sous-élément de l’élément assembly . L’élément noInherit n’a aucun élément enfant. Il n’est pas un élément valide dans les manifestes d’assembly.
assemblyIdentity
Comme premier sous-élément d’un élément d’assembly , assemblyIdentity décrit et identifie de manière unique l’application propriétaire de ce manifeste d’application. Comme premier sous-élément d’un élément dépendantAssembly , assemblyIdentity décrit un assembly côte à côte requis par l’application. Notez que chaque assembly référencé dans le manifeste de l’application nécessite un assemblyIdentity qui correspond exactement à l’assemblyIdentity dans le manifeste d’assembly référencé.
L’élément assemblyIdentity a les attributs suivants. Il n’a pas de sous-éléments.
| Attribut | Descriptif |
|---|---|
| type | Spécifie le type d’application ou d’assembly. La valeur doit être win32 et tout en minuscules. Obligatoire. |
| nom | Nomme de manière unique l’application ou l’assembly. Utilisez le format suivant pour le nom : Organization.Division.Name. Par exemple, Microsoft.Windows.mysampleApp. Obligatoire. |
| Langue | Identifie la langue de l’application ou de l’assembly. Si l’application ou l’assembly est spécifique au langage, spécifiez le code de langage DHTML. Dans l’assemblyIdentity d’une application destinée à une utilisation mondiale (neutre en langue) omettez l’attribut de langue. Dans un assemblyIdentity d’un assembly destiné à une utilisation mondiale (neutre en langue) définissez la valeur de la langue *sur . Optionnel. |
| processorArchitecture | Spécifie le processeur. Les valeurs valides incluent x86, amd64arm et arm64. Vous pouvez également spécifier *, ce qui garantit que toutes les plateformes sont ciblées. Optionnel. |
| Version | Spécifie la version de l’application ou de l’assembly. Utilisez le format de version en quatre parties : mmmmm.nnnnn.ooooo.ppppp. Chacune des parties séparées par des périodes peut être comprise entre 0 et 65535. Pour plus d’informations, consultez Les versions d’assembly. Obligatoire. |
| publicKeyToken | Chaîne hexadécimale de 16 caractères représentant les 8 derniers octets du hachage SHA-1 de la clé publique sous laquelle l’application ou l’assembly est signé. La clé publique utilisée pour signer le catalogue doit être de 2048 bits ou supérieur. Obligatoire pour tous les assemblys côte à côte partagés. |
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
...
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
...
</assembly>
compatibilité
Contient au moins une application. Il n’a aucun attribut. Optionnel. Manifestes d’application sans élément de compatibilité par défaut pour la compatibilité windows Vista sur Windows 7.
L’élément de compatibilité doit se trouver dans l’espace de noms urn:schemas-microsoft-com:compatibility.v1. Les éléments enfants de la compatibilité doivent également se trouver dans cet espace de noms, par héritage ou par balisage.
application
Contient au moins un élément supportedOS . À compter de Windows 10, version 1903, il peut également contenir un élément maxversiontested facultatif. Il n’a aucun attribut. Optionnel.
supportedOS
L’élément supportedOS a l’attribut suivant. Il n’a pas de sous-éléments.
| Attribut | Descriptif |
|---|---|
| Id de | Définissez l’attribut ID sur {e2011457-1546-43c5-a5fe-008deee3d3f0} pour exécuter l’application à l’aide de la fonctionnalité Vista. Cela peut permettre à une application conçue pour Windows Vista de s’exécuter sur un système d’exploitation ultérieur. Définissez l’attribut ID sur {35138b9a-5d96-4fbd-8e2d-a2440225f93a} pour exécuter l’application à l’aide de la fonctionnalité Windows 7. Les applications qui prennent en charge les fonctionnalités Windows Vista, Windows 7 et Windows 8 ne nécessitent pas de manifestes distincts. Dans ce cas, ajoutez les GUID pour tous les systèmes d’exploitation Windows. Pour plus d’informations sur le comportement de l’attribut Id dans Windows, consultez le livre de recettes de compatibilité Windows 8 et Windows Server 2012. Les GUID suivants correspondent aux systèmes d’exploitation indiqués : {8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a} -> Windows 10, Windows 11, Windows Server 2016, Windows Server 2019 et Windows Server 2022 {1f676c76-80e1-4239-95bb-83d0f6d0da78} -> Windows 8.1 et Windows Server 2012 R2 {4a2f28e3-53b9-4441-ba9c-d69d4a4a4a6e38} -> Windows 8 et Windows Server 2012 {35138b9a-5d96-4fbd-8e2d-a2440225f93a} -> Windows 7 et Windows Server 2008 R2 {e2011457-1546-43c5-a5fe-008deee3d3f0} -> Windows Vista et Windows Server 2008 Vous pouvez le tester sur Windows 7 ou Windows 8.x en exécutant Resource Monitor (resmon), en accédant à l’onglet PROCESSEUR, en cliquant avec le bouton droit sur les étiquettes de colonne, « Sélectionner une colonne... » et en vérifiant « Contexte du système d’exploitation ». Sur Windows 8.x, vous pouvez également trouver cette colonne disponible dans le Gestionnaire des tâches (taskmgr). Le contenu de la colonne affiche la valeur la plus élevée trouvée ou « Windows Vista » comme valeur par défaut. |
maxversiontested
L’élément maxversiontested spécifie les versions de Windows testées par l’application à partir de la version minimale du système d’exploitation prise en charge par l’application jusqu’à la version maximale. L’ensemble complet de versions est disponible ici. Cela est destiné à être utilisé par les applications de bureau qui utilisent XAML Islands et qui ne sont pas déployées dans un package MSIX. Cet élément est pris en charge dans Windows 10, version 1903 et versions ultérieures.
L’élément maxversiontested a l’attribut suivant. Il n’a pas de sous-éléments.
| Attribut | Descriptif |
|---|---|
| Id de | Définissez l’attribut ID sur une chaîne de version en 4 parties qui spécifie la version maximale de Windows sur laquelle l’application a été testée. Par exemple, « 10.0.18362.1 » pour Windows 10, version 1903. Obligatoire. |
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
...
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10, version 1903 -->
<maxversiontested Id="10.0.18362.1"/>
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
...
</assembly>
dépendance
Contient au moins une dépendanceAssembly. Il n’a aucun attribut. Optionnel.
dependentAssembly
Le premier sous-élément de dependentAssembly doit être un élément assemblyIdentity qui décrit un assembly côte à côte requis par l’application. Chaque dépendantAssembly doit se trouver à l’intérieur d’une seule dépendance. Il n’a aucun attribut.
fichier
Spécifie les fichiers privés de l’application. Optionnel.
L’élément de fichier comporte les attributs indiqués dans le tableau suivant.
| Attribut | Descriptif |
|---|---|
| nom | Nom du fichier. Par exemple, Comctl32.dll. Obligatoire. |
| hashalg | Algorithme utilisé pour créer un hachage du fichier. Cette valeur doit être SHA1. Optionnel. |
| hash | Hachage du fichier référencé par son nom. Chaîne hexadécimale de longueur en fonction de l’algorithme de hachage. Optionnel. |
activateableClass
Permet aux applications de bureau non empaquetées d’utiliser des composants Windows Runtime (WinRT) définis par l’utilisateur. Cet élément est pris en charge dans Windows 10, version 1903 et versions ultérieures. Pour plus d’informations, consultez cet article.
L’élément activateableClass doit se trouver dans l’espace de noms urn:schemas-microsoft-com:winrt.v1.
L’élément activateableClass a les attributs suivants.
| Attribut | Descriptif |
|---|---|
| nom | Spécifie l’identificateur de classe pour la classe activable. Obligatoire. |
| threadingModel | Représente le modèle de thread d’appartement à utiliser pour activer un serveur in-process. Les valeurs valides incluent both, STAou MTA. Pour plus d’informations, consultez cet article . Obligatoire. |
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
...
<file name="WinRTComponent.dll">
<activatableClass
name="WinRTComponent.MessageHolder"
threadingModel="both"
xmlns="urn:schemas-microsoft-com:winrt.v1"
/>
</file>
...
</assembly>
activeCodePage
Sur Windows 10, cet élément force un processus à utiliser UTF-8 comme page de codes de processus. Pour plus d’informations, consultez La page de codes UTF-8. Sur Windows 10, la seule valeur valide pour activeCodePage est UTF-8.
À compter de Windows 11, cet élément autorise également la sélection de la page de codes non UTF-8 héritée ou des pages de codes pour des paramètres régionaux spécifiques pour la compatibilité des applications héritées. Les applications modernes sont fortement encouragées à utiliser Unicode. Sur Windows 11, activeCodePage peut également être défini sur la valeur Héritée ou un nom de paramètres régionaux tel que en-US ou ja-JP.
- Sur les machines configurées sur une page de codes active système UTF-8, legacy rétablit le processus dans les pages de codes des paramètres régionaux système. Si les paramètres régionaux système n’ont pas défini de pages de codes, Windows-1252/437 sera utilisé. Le paramètre de page de codes hérité n’est pris en charge que dans les manifestes Fusion et commence uniquement par Windows 11.
- Lorsqu’un nom de paramètres régionaux tel que en-US est fourni, la page de codes de processus est définie de manière appropriée pour cette page de codes de paramètres régionaux. Par exemple, Windows-1252 et 437 pour en-US, ou 932 pour ja-JP.
Cet élément a été ajouté pour la première fois dans Windows 10 version 1903 (mise à jour de mai 2019). Vous pouvez déclarer cette propriété et cette cible/s’exécuter sur des builds Windows antérieures, mais vous devez gérer la détection et la conversion de pages de codes héritées comme d’habitude. Cet élément n’a aucun attribut.
L’exemple suivant montre comment utiliser cet élément pour forcer le processus actuel à utiliser UTF-8 comme page de codes de processus.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">
<activeCodePage>UTF-8</activeCodePage>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
autoElevate
Spécifie si l’élévation automatique est activée. TRUE indique qu’elle est activée. Il n’a aucun attribut. Le fichier exécutable doit être signé numériquement par Windows Publisher. Pour une utilisation interne.
disableTheming
Spécifie si l’attribution d’éléments d’interface utilisateur à un thème est désactivée. TRUE indique désactivé. Il n’a aucun attribut.
disableWindowFiltering
Spécifie s’il faut désactiver le filtrage de fenêtres. TRUE désactive le filtrage des fenêtres afin de pouvoir énumérer les fenêtres immersives à partir du bureau. disableWindowFiltering a été ajouté dans Windows 8 et n’a aucun attribut.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2011/WindowsSettings">
<disableWindowFiltering>true</disableWindowFiltering>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
dpiAware
Spécifie si le processus actuel est conscient des points par pouce (ppp).
Windows 10, version 1607 : L’élément dpiAware est ignoré si l’élément dpiAwareness est présent. Vous pouvez inclure les deux éléments dans un manifeste si vous souhaitez spécifier un comportement différent pour Windows 10, version 1607 que pour une version antérieure du système d’exploitation.
Le tableau suivant décrit le comportement qui résulte en fonction de la présence de l’élément dpiAware et du texte qu’il contient. Le texte dans l’élément n’est pas sensible à la casse.
| État de l’élément dpiAware | Descriptif |
|---|---|
| Absent | Le processus actuel n’est pas au courant par défaut. Vous pouvez modifier ce paramètre par programmation en appelant la fonction SetProcessDpiAwareness ou SetProcessDPIAware . |
| Contient « true » | Le processus actuel est conscient du ppp système. |
| Contient « false » |
Windows Vista, Windows 7 et Windows 8 : Le comportement est identique au moment où le dpiAware est absent. Windows 8.1 et Windows 10 : Le processus actuel n’est pas conscient et vous ne pouvez pas modifier ce paramètre par programmation en appelant la fonction SetProcessDpiAwareness ou SetProcessDPIAware . |
| Contient « true/pm » |
Windows Vista, Windows 7 et Windows 8 : Le processus actuel est conscient du ppp système. Windows 8.1 et Windows 10 : Le processus actuel prend en charge les ppp par moniteur. |
| Contient « par moniteur » |
Windows Vista, Windows 7 et Windows 8 : Le comportement est identique au moment où le dpiAware est absent. Windows 8.1 et Windows 10 : Le processus actuel prend en charge les ppp par moniteur. |
| Contient toute autre chaîne |
Windows Vista, Windows 7 et Windows 8 : Le comportement est identique au moment où le dpiAware est absent. Windows 8.1 et Windows 10 : Le processus actuel n’est pas conscient et vous ne pouvez pas modifier ce paramètre par programmation en appelant la fonction SetProcessDpiAwareness ou SetProcessDPIAware . |
Pour plus d’informations sur les paramètres de sensibilisation aux ppp, consultez Développement d’applications de bureau haute résolution sur Windows.
dpiAware n’a aucun attribut.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
dpiAwareness
Spécifie si le processus actuel est conscient des points par pouce (ppp).
La version minimale du système d’exploitation qui prend en charge l’élément dpiAwareness est Windows 10, version 1607. Pour les versions qui prennent en charge l’élément dpiAwareness , la dpiAwareness remplace l’élément dpiAware . Vous pouvez inclure les deux éléments dans un manifeste si vous souhaitez spécifier un comportement différent pour Windows 10, version 1607 que pour une version antérieure du système d’exploitation.
L’élément dpiAwareness peut contenir un seul élément ou une liste d’éléments séparés par des virgules. Dans ce dernier cas, le premier (le plus à gauche) de la liste reconnue par le système d’exploitation est utilisé. De cette façon, vous pouvez spécifier différents comportements pris en charge dans les futures versions du système d’exploitation Windows.
Le tableau suivant décrit le comportement qui résulte en fonction de la présence de l’élément dpiAwareness et du texte qu’il contient dans son élément reconnu le plus à gauche. Le texte dans l’élément n’est pas sensible à la casse.
| État de l’élément dpiAwareness : | Descriptif |
|---|---|
| L’élément est absent | L’élément dpiAware spécifie si le processus est conscient des ppp. |
| Contient aucun élément reconnu | Le processus actuel n’est pas au courant par défaut. Vous pouvez modifier ce paramètre par programmation en appelant la fonction SetProcessDpiAwareness ou SetProcessDPIAware . |
| Le premier élément reconnu est « système » | Le processus actuel est conscient du ppp système. |
| Le premier élément reconnu est « permonitor » | Le processus actuel prend en charge les ppp par moniteur. |
| Le premier élément reconnu est « permonitorv2 » | Le processus actuel utilise le contexte de sensibilisation par moniteur-v2 ppp. Cet élément est reconnu uniquement sur Windows 10 version 1703 ou ultérieure. |
| Le premier élément reconnu n’est pas « sans connaissance » | Le processus actuel n’est pas au courant. Vous ne pouvez pas modifier ce paramètre par programmation en appelant la fonction SetProcessDpiAwareness ou SetProcessDPIAware . |
Pour plus d’informations sur les paramètres de sensibilisation aux ppp pris en charge par cet élément, consultez DPI_AWARENESS et DPI_AWARENESS_CONTEXT.
dpiAwareness n’a aucun attribut.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
<dpiAwareness>PerMonitorV2, unaware</dpiAwareness>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
gdiScaling
Spécifie si la mise à l’échelle GDI est activée. La version minimale du système d’exploitation qui prend en charge l’élément gdiScaling est Windows 10 version 1703.
L’infrastructure GDI (interface d’appareil graphique) peut appliquer la mise à l’échelle DPI aux primitives et au texte par moniteur sans mettre à jour l’application elle-même. Cela peut être utile pour les applications GDI qui ne sont plus mises à jour activement.
Les graphiques non vectoriels (tels que les bitmaps, les icônes ou les barres d’outils) ne peuvent pas être mis à l’échelle par cet élément. En outre, les graphiques et le texte apparaissant dans les bitmaps construits dynamiquement par les applications ne peuvent pas non plus être mis à l’échelle par cet élément. Pour plus d’informations, consultez Amélioration de l’expérience haute résolution dans les applications de bureau basées sur GDI.
Vous pouvez modifier ce paramètre par programmation en appelant la fonction SetThreadDpiAwarenessContext ou SetProcessDpiAwarenessContext avec DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED la valeur.
TRUE indique que cet élément est activé. Il n’a aucun attribut.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2017/WindowsSettings">
<gdiScaling>true</gdiScaling>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
highResolutionScrollingAware
Spécifie si la prise en charge du défilement haute résolution est activée. TRUE indique qu’elle est activée. Il n’a aucun attribut.
longPathAware
Active les chemins longs qui dépassent MAX_PATH longueur. Cet élément est pris en charge dans Windows 10, version 1607 et ultérieure. Pour plus d’informations, consultez cet article.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
<ws2:longPathAware>true</ws2:longPathAware>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
printerDriverIsolation
Spécifie si l’isolation du pilote d’imprimante est activée. TRUE indique qu’elle est activée. Il n’a aucun attribut. L’isolation des pilotes d’imprimante améliore la fiabilité du service d’impression Windows en permettant aux pilotes d’imprimante de s’exécuter dans des processus distincts du processus dans lequel le spouleur d’impression s’exécute. Prise en charge de l’isolation des pilotes d’imprimante démarrée dans Windows 7 et Windows Server 2008 R2. Une application peut déclarer l’isolation du pilote d’imprimante dans son manifeste d’application pour s’isoler du pilote d’imprimante et améliorer sa fiabilité. Autrement dit, l’application ne se bloque pas si le pilote d’imprimante a une erreur.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2011/WindowsSettings">
<printerDriverIsolation>true</printerDriverIsolation>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
ultraHighResolutionScrollingAware
Spécifie si la prise en charge du défilement ultra-haute résolution est activée. TRUE indique qu’elle est activée. Il n’a aucun attribut.
msix
Spécifie les informations d’identité d’un package avec un emplacement externe pour l’application actuelle (voir Grant package identity by packaging with external location). Cet élément est pris en charge dans Windows 10, version 2004 et versions ultérieures.
L’élément msix doit se trouver dans l’espace de noms urn:schemas-microsoft-com:msix.v1. Il contient les attributs indiqués dans le tableau suivant.
| Attribut | Descriptif |
|---|---|
| éditeur | Décrit les informations de l’éditeur. Cette valeur doit correspondre à l’attribut Publisher dans l’élément Identity dans le manifeste de package de votre application empaquetée avec un emplacement externe. |
| packageName | Décrit le contenu du package. Cette valeur doit correspondre à l’attribut Name dans l’élément Identity dans le manifeste de package de votre application empaquetée avec un emplacement externe. |
| applicationId | Identificateur unique de l’application. Cette valeur doit correspondre à l’attribut ID dans l’élément Application dans le manifeste de package de votre application empaquetée avec un emplacement externe. |
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="Contoso.PhotoStoreApp"/>
<msix xmlns="urn:schemas-microsoft-com:msix.v1"
publisher="CN=Contoso"
packageName="ContosoPhotoStore"
applicationId="ContosoPhotoStore"
/>
</assembly>
heapType
Remplace l’implémentation par défaut du tas pour les API de tas Win32 à utiliser.
- La valeur SegmentHeap indique que le segment de mémoire sera utilisé. Segment de segment est une implémentation de tas moderne qui réduit généralement votre utilisation globale de la mémoire. Cet élément est pris en charge dans Windows 10, version 2004 (build 19041) et versions ultérieures.
- Toutes les autres valeurs sont ignorées.
Cet élément n’a aucun attribut.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2020/WindowsSettings">
<heapType>SegmentHeap</heapType>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
supportedArchitectures
Pour les exécutables .NET Framework il uniquement, spécifie une liste d’architectures de processeur natives avec laquelle l’application est compatible. Peut contenir une ou plusieurs des valeurs suivantes, séparées par des espaces :
- amd64
- arm64
Cet élément n’a aucun attribut.
Cet élément est pris en charge dans Windows 11, version 24H2 et ultérieures.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2024/WindowsSettings">
<supportedArchitectures>amd64 arm64</supportedArchitectures>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
trustInfo
Toutes les applications compatibles UAC doivent avoir un niveau d’exécution demandé ajouté au manifeste de l’application. Les niveaux d’exécution demandés spécifient les privilèges requis pour une application. Pour plus d’informations, consultez Comment le contrôle de compte d’utilisateur (UAC) affecte votre application.
Le niveau d’exécution demandé est spécifié avec l’attribut de niveau de la descendente requestedExecutionLevel de l’élément trustInfo . Les valeurs autorisées pour le niveau sont les suivantes :
| Valeur | Descriptif |
|---|---|
| asInvoker | L’application s’exécute au même niveau d’autorisation que le processus qui l’a démarré. Vous pouvez élever l’application à un niveau d’autorisation supérieur en sélectionnant Exécuter en tant qu’administrateur. |
| requireAdministrator | L’application s’exécute à l’aide des autorisations d’administrateur. L’utilisateur qui démarre l’application doit être membre du groupe Administrateurs. Si le processus d’ouverture n’est pas en cours d’exécution avec des autorisations d’administration, le système demande des informations d’identification. |
| highestAvailable | L’application s’exécute au niveau d’autorisation le plus élevé qu’elle peut. Si l’utilisateur qui démarre l’application est membre du groupe Administrateurs, cette option est la même que level="requireAdministrator". Si le niveau d’autorisation disponible le plus élevé est supérieur au niveau du processus d’ouverture, le système demande des informations d’identification. |
Définition du niveau pour highestAvailable garantir que l’application s’exécutera correctement avec les deux utilisateurs membres du groupe Administrateurs et ceux qui ne le sont pas. Si l’application ne peut fonctionner qu’avec un accès administratif au système, le marquage de requireAdministrator l’application avec un niveau d’exécution demandé garantit que le système identifie ce programme en tant qu’application administrative et effectue les étapes d’élévation nécessaires.
Par défaut, l’éditeur de liens Visual C++ incorpore un fragment UAC dans le manifeste d’une application avec un niveau d’exécution de asInvoker.
L’élément requestedExecutionLevel a également un attribut facultatif uiAccess. Définissez cette valeur true si vous souhaitez que l’application contourne les niveaux de protection de l’interface utilisateur et que vous lecteurz l’entrée vers des fenêtres d’autorisation supérieure sur le bureau. Définissez cet attribut true uniquement pour les applications d’accessibilité de l’interface utilisateur. La valeur par défaut est false. Des restrictions supplémentaires des paramètres de stratégie de sécurité peuvent être appliquées, consultez Contrôle de compte d’utilisateur : élever uniquement les applications UIAccess installées dans des emplacements sécurisés. Pour plus d’informations, consultez Considérations relatives à la sécurité pour les technologies d’assistance.
La spécification du nœud RequestedExecutionLevel désactive la virtualisation des fichiers et des registres. Si vous souhaitez utiliser File and Registry Virtualization pour la compatibilité descendante, omettez le nœud RequestedExecutionLevel .
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
Exemple :
Voici un exemple de manifeste d’application pour une application nommée MySampleApp.exe. L’application utilise l’assembly côte à côte SampleAssembly.
<?xml version="1.0" encoding="UTF-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" name="MyOrganization.MyDivision.MySampleApp" version="6.0.0.0" processorArchitecture="*" />
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Proseware.Research.SampleAssembly" version="6.0.0.0" processorArchitecture="*" publicKeyToken="0000000000000000" />
</dependentAssembly>
</dependency>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 and Windows 11 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />
</application>
</compatibility>
</assembly>