Manifiestos de aplicación
Un manifiesto de aplicación (también conocido como manifiesto de aplicación en paralelo o manifiesto de fusión) es un archivo XML en el que se describen e identifican los ensamblados en paralelo compartidos y privados a los que una aplicación debe enlazarse en tiempo de ejecución. Deben ser las mismas versiones de ensamblado utilizadas para probar la aplicación. Los manifiestos de aplicación también pueden describir los metadatos de los archivos que son privados para la aplicación.
Para obtener una lista completa del esquema XML, vea Esquema del archivo de manifiesto.
Los manifiestos de aplicación tienen los siguientes elementos y atributos.
Elemento | Atributos | Obligatorio |
---|---|---|
assembly | Sí | |
manifestVersion | Sí | |
noInherit | No | |
assemblyIdentity | Sí | |
type | Sí | |
name | Sí | |
language | No | |
processorArchitecture | No | |
version | Sí | |
publicKeyToken | No | |
compatibility | No | |
application | No | |
supportedOS | No | |
Id | Sí | |
maxversiontested | No | |
Id | Sí | |
dependencia | No | |
dependentAssembly | No | |
file | No | |
name | Sí | |
hashalg | No | |
hash | No | |
activatableClass | No | |
name | Sí | |
threadingModel | Sí | |
activeCodePage | No | |
autoElevate | No | |
disableTheming | No | |
disableWindowFiltering | No | |
dpiAware | No | |
dpiAwareness | No | |
gdiScaling | No | |
highResolutionScrollingAware | No | |
longPathAware | No | |
printerDriverIsolation | No | |
ultraHighResolutionScrollingAware | No | |
msix | No | |
heapType | No | |
supportedArchitectures | No | |
trustInfo | No |
Ubicación de los archivos
Si es posible, debe insertar el manifiesto de aplicación como recurso en el archivo .exe
o .dll
de la aplicación. Si no puede hacerlo, puede colocar el archivo de manifiesto de aplicación en el mismo directorio que .exe
o .dll
.
Para obtener más información, consulte Instalación de ensamblados en paralelo.
Nombre de archivo
Por convención, un manifiesto de aplicación debe tener el mismo nombre que el archivo ejecutable de la aplicación, con la extensión .manifest
anexada.
Por ejemplo, un manifiesto de aplicación que haga referencia a example.exe
o example.dll
debe usar la siguiente sintaxis de nombre de archivo (si Id. de recurso es 1, puede omitir el segmento <Id. de recurso> de la sintaxis).
example.exe.<Id. de recurso>.manifest
example.dll.<Id. de recurso>.manifest
Elementos
Los nombres de los elementos y atributos distinguen mayúsculas de minúsculas. Los valores de los elementos y atributos no distinguen mayúsculas de minúsculas, excepto el valor del atributo de tipo.
ensamblado
Es un elemento contenedor. Su primer subelemento debe ser un elemento noInherit o assemblyIdentity. Necesario.
El elemento assembly debe estar en el espacio de nombres urn:schemas-microsoft-com:asm.v1
. Los elementos secundarios del ensamblado también deben estar en este espacio de nombres, mediante herencia o etiquetado.
El elemento assembly tiene los siguientes atributos.
Atributo | Descripción |
---|---|
manifestVersion | El atributo manifestVersion debe establecerse en 1.0 . |
noInherit
Incluya este elemento en un manifiesto de aplicación para establecer los contextos de activación generados a partir del manifiesto con la marca "no inherit". Cuando esta marca no se establece en un contexto de activación y ese contexto está activo, lo heredan los subprocesos nuevos en el mismo proceso, ventanas, procedimientos de ventanas y llamadas a procedimientos asincrónicos. Al establecer esta marca, se impide que el nuevo objeto herede el contexto activo.
El elemento noInherit es opcional y suele omitirse. La mayoría de los ensamblados no funcionan correctamente con un contexto de activación que no se hereda porque el ensamblado debe estar diseñado explícitamente para administrar la propagación de su propio contexto de activación. El uso del elemento noInherit requiere que cualquier ensamblado dependiente al que haga referencia el manifiesto de aplicación tenga un elemento noInherit en su manifiesto de aplicación.
Si se usa noInherit en un manifiesto, debe ser el primer subelemento del elemento assembly. El elemento assemblyIdentity debe aparecer inmediatamente después del elemento noInherit. Si no se utiliza noInherit, assemblyIdentity debe ser el primer subelemento del elemento assembly. El elemento noInherit no tiene elementos secundarios. No es un elemento válido en los manifiestos de ensamblado.
assemblyIdentity
Como primer subelemento de un elemento assembly, assemblyIdentity describe e identifica de forma única la aplicación a la que pertenece este manifiesto de aplicación. Como primer subelemento de un elemento dependentAssembly, assemblyIdentity describe un ensamblado en paralelo requerido por la aplicación. Tenga en cuenta que todos los ensamblados a los que se hace referencia en el manifiesto de aplicación requieren un elemento assemblyIdentity que coincida exactamente con el elemento assemblyIdentity del manifiesto de ensamblado propio del ensamblado al que se hace referencia.
El elemento assemblyIdentity tiene los siguientes atributos. No tiene subelementos.
Atributo | Descripción |
---|---|
type | Especifica el tipo de ensamblado o aplicación. El valor debe ser win32 con todo en minúsculas. Necesario. |
name | Asigna nombres únicos a la aplicación o ensamblado. Use el siguiente formato para el nombre: Organization.Division.Name . Por ejemplo, Microsoft.Windows.mysampleApp . Necesario. |
language | Identifica el lenguaje de la aplicación o ensamblado. Si la aplicación o el ensamblado son específicos de un lenguaje, especifique el código de lenguaje DHTML. En el elemento assemblyIdentity de una aplicación destinada al uso internacional (independiente del lenguaje), omita el atributo de lenguaje. En un elemento assemblyIdentity de un ensamblado destinado al uso internacional (independiente del lenguaje), establezca el valor del lenguaje en * . Opcional. |
processorArchitecture | Especifica el procesador. Entre los valores válidos se incluyen x86 , amd64 , arm y arm64 . También puede especificar * , lo que garantiza que se dirige a todas las plataformas. Opcional. |
version | Especifica la versión de la aplicación o del ensamblado. Use el formato de versión de cuatro partes: mmmmm.nnnnn.ooooo.ppppp . El valor de cada una de las partes separadas por puntos puede ser de 0 a 65535 inclusive. Para obtener más información, consulte Versiones de ensamblado. Necesario. |
publicKeyToken | Cadena hexadecimal de 16 caracteres que representa los últimos 8 bytes del hash SHA-1 de la clave pública en la que se firma la aplicación o el ensamblado. La clave pública que se usa para firmar el catálogo debe ser de 2048 bits o superior. Obligatorio para todos los ensamblados en paralelo compartidos. |
<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>
compatibilidad
Contiene al menos una aplicación. No tiene atributos. Opcional. Los manifiestos de aplicación que no tengan un elemento compatibility tienen compatibilidad de Windows Vista en Windows 7 de forma predeterminada.
El elemento compatibility debe estar en el espacio de nombres urn:schemas-microsoft-com:compatibility.v1
. Los elementos secundarios de compatibility también deben estar en este espacio de nombres, por herencia o por etiquetado.
application
Contiene al menos un elemento supportedOS. A partir de Windows 10, versión 1903, también puede contener un elemento maxversiontested opcional. No tiene atributos. Opcional.
supportedOS
El elemento supportedOS tiene el atributo siguiente. No tiene subelementos.
Atributo | Descripción |
---|---|
Id | Establezca el atributo Id en {e2011457-1546-43c5-a5fe-008deee3d3f0} para ejecutar la aplicación con la funcionalidad de Vista. Esto puede permitir que una aplicación diseñada para Windows Vista se ejecute en un sistema operativo posterior. Establezca el atributo Id en {35138b9a-5d96-4fbd-8e2d-a2440225f93a} para ejecutar la aplicación con la funcionalidad de Windows 7. Las aplicaciones que admiten la funcionalidad de Windows Vista, Windows 7 y Windows 8 no requieren manifiestos independientes. En este caso, agregue los GUID para todos los sistemas operativos Windows. Para obtener información sobre el comportamiento del atributo Id en Windows, consulte la Guía de compatibilidad de Windows 8 y Windows Server 2012. Los GUID siguientes corresponden a los sistemas operativos indicados: {8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a} -> Windows 10, Windows 11, Windows Server 2016, Windows Server 2019 y Windows Server 2022 {1f676c76-80e1-4239-95bb-83d0f6d0da78} -> Windows 8.1 y Windows Server 2012 R2 {4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38} -> Windows 8 y Windows Server 2012 {35138b9a-5d96-4fbd-8e2d-a2440225f93a} -> Windows 7 y Windows Server 2008 R2 {e2011457-1546-43c5-a5fe-008deee3d3f0} -> Windows Vista y Windows Server 2008 Para probar esto en Windows 7 o Windows 8.x, ejecute el Monitor de recursos (resmon), vaya a la pestaña CPU, haga clic con el botón derecho en las etiquetas de columna, "Seleccionar columna...", y seleccione "Contexto del sistema operativo". En Windows 8.x, también puede encontrar esta columna disponible en el Administrador de tareas (taskmgr). El contenido de la columna muestra el valor más alto que se encuentra o "Windows Vista" como valor predeterminado. |
maxversiontested
El elemento maxversiontested especifica las versiones de Windows en las que se ha probado la aplicación, desde la versión mínima del sistema operativo que la aplicación admite hasta la versión máxima. Aquí puede encontrar el conjunto completo de las versiones. Está pensado para que lo usen las aplicaciones de escritorio que utilizan islas XAML y que no se implementan en un paquete MSIX. Este elemento se admite en Windows 10, versión 1903 y posteriores.
El elemento maxversiontested tiene el atributo siguiente. No tiene subelementos.
Atributo | Descripción |
---|---|
Id | Establezca el atributo Id en una cadena de versión de 4 partes que especifique la versión máxima de Windows en la que se ha probado la aplicación. Por ejemplo, "10.0.18362.1" para Windows 10, versión 1903. Necesario. |
<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>
dependency
Contiene al menos un elemento dependienteAssembly. No tiene atributos. Opcional.
dependentAssembly
El primer subelemento de dependentAssembly debe ser un elemento assemblyIdentity que describa un ensamblado en paralelo requerido por la aplicación. Cada dependentAssembly debe estar incluido exactamente dentro de una dependencia. No tiene atributos.
file
Especifica los archivos que son privados para la aplicación. Opcional.
El elemento file contiene los atributos que se muestran en la tabla siguiente.
Atributo | Description |
---|---|
name | Nombre del archivo. Por ejemplo, Comctl32.dll. Necesario. |
hashalg | Algoritmo usado para crear un hash del archivo. Este valor debe ser SHA1. Opcional. |
hash | Hash del archivo al que se hace referencia por el nombre. Cadena hexadecimal cuya longitud depende del algoritmo hash. Opcional. |
activatableClass
Permite que las aplicaciones de escritorio no empaquetadas usen componentes de Windows Runtime (WinRT) definidos por el usuario. Este elemento se admite en Windows 10, versión 1903 y posteriores. Para obtener más información, consulte este artículo.
El elemento activatableClass debe estar en el espacio de nombres urn:schemas-microsoft-com:winrt.v1
.
El elemento activatableClass tiene los atributos siguientes.
Atributo | Description |
---|---|
name | Especifica el identificador de la clase activable. Necesario. |
threadingModel | Representa el modelo de apartamento de subproceso que se va a usar para activar un servidor en proceso. Los valores válidos incluyen both , STA o MTA . Consulte este artículo para obtener más información. Necesario. |
<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
En Windows 10, este elemento fuerza un proceso para usar UTF-8 como página de códigos del proceso. Para obtener más información, consulte Uso de la página de códigos UTF-8. En Windows 10, el único valor válido para activeCodePage es UTF-8.
A partir de Windows 11, este elemento también permite seleccionar una página de códigos heredada que no sea UTF-8, o bien páginas de códigos de una configuración regional específica para la compatibilidad con aplicaciones heredadas. Se recomienda encarecidamente que las aplicaciones modernas usen Unicode. En Windows 11, activeCodePage también puede establecerse en el valor Legacy o en un nombre de configuración regional, como en-US o ja-JP.
- En las máquinas configuradas en una página de códigos activa de un sistema UTF-8, Legacy revertirá el proceso a las páginas de códigos de la configuración regional del sistema. Si la configuración regional del sistema no tiene páginas de códigos definidas, se usará Windows-1252/437. La configuración de página de códigos Legacy solo se admite en los manifiestos Fusion y únicamente a partir de Windows 11.
- Cuando se proporciona un nombre de configuración regional como en-US, la página de códigos de proceso se establecerá adecuadamente para la página de códigos de esa configuración regional. Por ejemplo, Windows-1252 y 437 para en-US o 932 para ja-JP.
Este elemento se agregó por primera vez en Windows 10, versión 1903 (actualización de mayo de 2019). Puede declarar esta propiedad y destinarla o ejecutarla en compilaciones anteriores de Windows, pero debe controlar la detección y la conversión de páginas de códigos heredadas de la forma habitual. Este elemento no tiene atributos.
En el ejemplo siguiente se muestra cómo usar este elemento para forzar que el proceso actual use UTF-8 como página de códigos del proceso.
<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
Especifica si la elevación automática está habilitada. TRUE indica que está habilitada. No tiene atributos. El archivo ejecutable debe estar firmado digitalmente por Windows Publisher. Para uso interno.
disableTheming
Especifica si la asignación de un tema a los elementos de la interfaz de usuario se ha deshabilitado. TRUE indica que se ha deshabilitado. No tiene atributos.
disableWindowFiltering
Especifica si debe deshabilitarse el filtrado de ventanas. TRUE deshabilita el filtrado de ventanas, de forma que puede enumerar las ventanas envolventes desde el escritorio. El elemento disableWindowFiltering se agregó en Windows 8 y no tiene atributos.
<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
Especifica si el proceso actual tiene reconocimiento de puntos por pulgada (ppp).
Windows 10, versión 1607: el elemento dpiAware se ignora si el elemento dpiAwareness está presente. Puede incluir ambos elementos en un manifiesto si quiere especificar un comportamiento distinto para Windows 10, versión 1607, que para una versión anterior del sistema operativo.
En la tabla siguiente se describe el comportamiento que se obtiene basado en la presencia del elemento dpiAware y el texto que contiene. El texto del elemento no distingue mayúsculas de minúsculas.
Estado del elemento dpiAware | Descripción |
---|---|
Absent | El proceso actual no tiene reconocimiento de ppp de forma predeterminada. Puede cambiar esta configuración mediante programación si llama a la función SetProcessDpiAwareness o SetProcessDPIAware. |
Contiene "true" | El proceso actual tiene reconocimiento de ppp del sistema. |
Contiene "false" | Windows Vista, Windows 7 y Windows 8: el comportamiento es el mismo que cuando dpiAware está ausente. Windows 8.1 y Windows 10: el proceso actual no tiene reconocimiento de ppp y esta configuración no se puede cambiar mediante programación al llamar a la función SetProcessDpiAwareness o SetProcessDPIAware. |
Contiene "true/pm" | Windows Vista, Windows 7 y Windows 8: el proceso actual tiene reconocimiento de ppp del sistema. Windows 8.1 y Windows 10: el proceso actual tiene reconocimiento de ppp por monitor. |
Contiene "per monitor" | Windows Vista, Windows 7 y Windows 8: el comportamiento es el mismo que cuando dpiAware está ausente. Windows 8.1 y Windows 10: el proceso actual tiene reconocimiento de ppp por monitor. |
Contiene cualquier otra cadena | Windows Vista, Windows 7 y Windows 8: el comportamiento es el mismo que cuando dpiAware está ausente. Windows 8.1 y Windows 10: el proceso actual no tiene reconocimiento de ppp y esta configuración no se puede cambiar mediante programación al llamar a la función SetProcessDpiAwareness o SetProcessDPIAware. |
Para obtener más información sobre la configuración de reconocimiento de ppp, consulte Desarrollo de aplicaciones de escritorio con valores altos de ppp en Windows.
dpiAware no tiene atributos.
<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
Especifica si el proceso actual tiene reconocimiento de puntos por pulgada (ppp).
La versión mínima del sistema operativo que admite el elemento dpiAwareness es Windows 10, versión 1607. En el caso de las versiones que admiten el elemento dpiAwareness, la instancia de dpiAwareness reemplaza al elemento dpiAware. Puede incluir ambos elementos en un manifiesto si quiere especificar un comportamiento distinto para Windows 10, versión 1607, que para una versión anterior del sistema operativo.
El elemento dpiAwareness puede contener un solo elemento o una lista de elementos separados por comas. En este último caso, se usa el primer elemento (situado más a la izquierda) de la lista reconocida por el sistema operativo. De este modo, puede especificar distintos comportamientos admitidos en futuras versiones del sistema operativo Windows.
En la tabla siguiente se describe el comportamiento que se obtiene basado en la presencia del elemento dpiAwareness y el texto que contiene en su elemento reconocido situado más a la izquierda. El texto del elemento no distingue mayúsculas de minúsculas.
Estado del elemento dpiAwareness: | Descripción |
---|---|
El elemento está ausente | El elemento dpiAware especifica si el proceso tiene reconocimiento de ppp. |
No contiene elementos reconocidos | El proceso actual no tiene reconocimiento de ppp de forma predeterminada. Puede cambiar esta configuración mediante programación si llama a la función SetProcessDpiAwareness o SetProcessDPIAware. |
El primer elemento reconocido es "system" | El proceso actual tiene reconocimiento de ppp del sistema. |
El primer elemento reconocido es "permonitor" | El proceso actual tiene reconocimiento de ppp por monitor. |
El primer elemento reconocido es "permonitorv2" | El proceso actual usa el contexto de reconocimiento de ppp per-monitor-v2. Este elemento solo se reconocerá en Windows 10, versión 1703 o posteriores. |
El primer elemento reconocido es "unaware" | El proceso actual no tiene reconocimiento de ppp. No puede cambiar esta configuración mediante programación si llama a la función SetProcessDpiAwareness o SetProcessDPIAware. |
Para obtener más información sobre la configuración de reconocimiento de ppp compatible con este elemento, consulte DPI_AWARENESS y DPI_AWARENESS_CONTEXT.
dpiAwareness no tiene atributos.
<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
Especifica si el escalado de GDI está habilitado. La versión mínima del sistema operativo que admite el elemento gdiScaling es Windows 10, versión 1703.
El marco GDI (interfaz de dispositivo gráfico) puede aplicar el escalado de ppp a primitivos y texto por monitor sin actualizaciones de la aplicación en sí. Esto puede resultar útil para las aplicaciones GDI que ya no se actualizan de forma activa.
Este elemento no puede escalar gráficos no vectoriales (como mapas de bits, iconos o barras de herramientas). Además, este elemento tampoco puede escalar los gráficos ni el texto que aparecen en mapas de bits creados por aplicaciones de forma dinámica. Para obtener más información, consulte Mejora de la experiencia de valores altos de PPP en aplicaciones de escritorio basadas en GDI.
Puede cambiar esta configuración mediante programación si llama a la función SetThreadDpiAwarenessContext o SetProcessDpiAwarenessContext con el valor DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED
.
TRUE indica que este elemento está habilitado. No tiene atributos.
<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
Especifica si está habilitado el reconocimiento del desplazamiento de alta resolución. TRUE indica que está habilitado. No tiene atributos.
longPathAware
Habilita rutas de acceso largas, con una longitud que supera el valor de MAX_PATH. Este elemento se admite en Windows 10, versión 1607 y posteriores. Para obtener más información, consulte este artículo.
<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
Especifica si el aislamiento del controlador de impresora está habilitado. TRUE indica que está habilitado. No tiene atributos. El aislamiento del controlador de impresora mejora la confiabilidad del servicio de impresión de Windows al permitir que los controladores de impresora se ejecuten en procesos independientes de aquel en el que se ejecuta el administrador de trabajos de impresión. La compatibilidad con el aislamiento de controladores de impresora comenzó en Windows 7 y Windows Server 2008 R2. Una aplicación puede declarar el aislamiento del controlador de impresora en su manifiesto de la aplicación para aislarse del controlador de impresora y mejorar su confiabilidad. Es decir, la aplicación no se bloqueará si el controlador de impresora tiene un error.
<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
Especifica si el reconocimiento de desplazamiento de resolución ultraalta está habilitado. TRUE indica que está habilitado. No tiene atributos.
msix
Especifica la información de identidad de un paquete con ubicación externa para la aplicación actual (consulte Concesión de la identidad del paquete mediante el empaquetado con ubicación externa). Este elemento se admite en Windows 10, versión 2004 y posteriores.
El elemento msix debe estar en el espacio de nombres urn:schemas-microsoft-com:msix.v1
. Tiene los atributos que se muestran en la tabla siguiente.
Atributo | Descripción |
---|---|
publisher | Describe la información del publicador. Este valor debe coincidir con el atributo Publisher del elemento Identity en el manifiesto de paquete de su aplicación empaquetada con ubicación externa. |
packageName | Describe el contenido del paquete. Este valor debe coincidir con el atributo Name en el elemento Identity en el manifiesto de paquete de su aplicación empaquetada con ubicación externa. |
applicationId | Identificador único de la aplicación. Este valor debe coincidir con el atributo Id en el elemento Application en el manifiesto de paquete de su aplicación empaquetada con ubicación externa. |
<?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
Reemplaza a la implementación predeterminada del montón para las API del montón Win32 que se van a usar.
- El valor SegmentHeap indica que se usará el montón de segmentos. El montón de segmentos es una implementación moderna del montón que normalmente reduce el uso general de la memoria. Este elemento se admite en Windows 10, versión 2004 (compilación 19041) y versiones posteriores.
- Se ignorará al resto de los otros valores.
Este elemento no tiene atributos.
<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
Para ejecutables .NET solo de IL, especifica una lista de arquitecturas de procesador nativas con las que la aplicación es compatible. Puede contener uno o varios de los siguientes valores, separados por espacios:
- amd64
- arm64
Este elemento no tiene atributos.
Este elemento se admite en Windows 11, versión 24H2 y posteriores.
<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
Todas las aplicaciones conformes a UAC deben tener un nivel de ejecución solicitado agregado al manifiesto de aplicación. Los niveles de ejecución solicitados especifican los privilegios necesarios para una aplicación. Para obtener más información, consulte Cómo el Control de cuentas de usuario (UAC) afecta a la aplicación.
El nivel de ejecución solicitado se especifica con el atributo level del valor descendiente requestedExecutionLevel del elemento trustInfo. Los valores permitidos para level son:
Valor | Descripción |
---|---|
asInvoker | La aplicación se ejecuta con el mismo nivel de permiso que el proceso que la inició. La aplicación se puede elevar a un nivel de permisos superior si seleccionaEjecutar como administrador. |
requireAdministrator | La aplicación se ejecuta con permisos de administrador. El usuario que inicia la aplicación debe ser miembro del grupo Administradores. Si el proceso de apertura no se está ejecutando con los permisos administrativos, el sistema solicitará las credenciales. |
highestAvailable | La aplicación se ejecuta con el nivel de permisos más alto posible para esta. Si el usuario que inicia la aplicación es miembro del grupo Administradores, esta opción es igual que level="requireAdministrator" . Si el máximo nivel de permiso disponible es superior al nivel del proceso de apertura, el sistema solicitará las credenciales. |
Al establecer el nivel en highestAvailable
se garantiza que la aplicación se ejecutará correctamente tanto con usuarios que son miembros del grupo Administradores como con aquellos que no lo son. Si la aplicación solo puede funcionar con acceso administrativo al sistema, al marcarla con un nivel de ejecución solicitado de requireAdministrator
se garantiza que el sistema identifica este programa como aplicación administrativa y se llevan a cabo los pasos de elevación pertinentes.
De forma predeterminada, el enlazador de Visual C++ incrusta un fragmento del UAC en el manifiesto de una aplicación con un nivel de ejecución de asInvoker
.
El elemento requestedExecutionLevel también tiene un atributo opcional uiAccess. Establezca este valor en true
si quiere que la aplicación omita los niveles de protección de la interfaz de usuario y dirija las entradas de datos a ventanas con un nivel de permisos superior en el escritorio. Establezca este atributo en true
solo para aplicaciones relacionadas con la accesibilidad de la interfaz de usuario. Su valor predeterminado es false
. Puede que se apliquen restricciones adicionales de la configuración de directiva de seguridad; consulte Control de cuentas de usuario: elevar solo aplicaciones UIAccess instaladas en ubicaciones seguras. Para obtener más información, consulte Consideraciones de seguridad para las tecnologías de asistencia.
Al especificar el nodo requestedExecutionLevel, se deshabilitará la virtualización de archivos y del Registro. Si quiere usar Virtualización de archivos y del Registro para la compatibilidad con versiones anteriores, omita el nodo 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>
Ejemplo
A continuación, se muestra un ejemplo de un manifiesto de aplicación para una aplicación denominada MySampleApp.exe. La aplicación consume el ensamblado en paralelo 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>