Cómo Visual Studio genera un manifiesto de paquete de la aplicación
Al compilar un proyecto con Visual Studio, Visual Studio genera un manifiesto de paquete (AppxManifest.xml), que contiene información que el sistema necesita para implementar, mostrar o actualizar una aplicación Plataforma universal de Windows (UWP).
Hay dos variedades de archivos de manifiesto de paquete de aplicación que encontrará si desarrolla una aplicación con Visual Studio
- Package.appxmanifest
Se trata de un archivo de estilo XML que los desarrolladores usan para configurar los detalles de una aplicación, como información del publicador, logotipos, arquitecturas de procesador, etc. Se trata de una versión temporal y fácil de configurar del manifiesto del paquete de aplicación que se usa durante el desarrollo de la aplicación. - AppxManifest.xml
Este archivo lo genera el Visual Studio de compilación y se basa en la información del archivo Package.appxmanifest. Esta es la versión final del manifiesto del paquete de aplicación que se usa con las aplicaciones publicadas y de prueba. Si se realizan actualizaciones en el archivo Package.appxmanifest, debe volver a generar el proyecto para ver las actualizaciones en el AppxManifest.xml archivo.
Para obtener información general sobre el proceso de empaquetado, consulta Empaquetado de una aplicación para UWP con Visual Studio.
Validar el manifiesto de aplicación
Para poder publicar tu aplicación, antes debes corregir los errores que hagan que cualquiera de las comprobaciones de validación de Visual Studio sufra un error. Cuando Visual Studio genera el manifiesto también valida tu aplicación de las maneras siguientes:
- Validación sintáctica
Visual Studio confirma si todos los datos del manifiesto de aplicación se ajustan al esquema del manifiesto de aplicación. - Validación semántica
Visual Studio ofrece orientación sobre los datos que se deben producir, según el contexto de la información.
Nota
Si en estas secciones no se menciona el campo que está buscando, se genera a partir de datos que se pueden haber configurado por separado o de un valor predeterminado del esquema del manifiesto.
Generar el contenido del manifiesto
Visual Studio rellena los campos de las tablas siguientes cuando genera el AppxManifest.xml para el paquete de aplicación.
Identidad
La Identity
sección del manifiesto de aplicación contiene los campos siguientes.
Campo | Descripción |
---|---|
Nombre | Nombre del paquete, que se rellena de forma diferente en los escenarios siguientes:
|
Publicador | Nombre del publicador. Este nombre se rellena de manera diferente en los escenarios siguientes:
|
Versión | La versión de la aplicación que se está construyendo. Normalmente, esto se incrementa cada vez que se modifica y empaqueta la aplicación. Para asegurarse de que se Version incrementa correctamente, use el cuadro de diálogo proporcionado al invocar Store -> Create App Packages... para realizar actualizaciones. |
ProcessorArchitecture | Valor que se genera en función de la configuración de compilación que especificó para el proyecto. Si las referencias de proyecto o las referencias de archivo del proyecto tienen como destino una arquitectura específica diferente a la del paquete de aplicación, se produce un error de compilación y debe cambiar la arquitectura de destino del paquete de aplicación para que funcione para todas las referencias. |
Este es un ejemplo del XML Identity
de salida:
<Identity Name="Microsoft.UWPAppExample"
Publisher="CN=Microsoft Corporation"
Version="1.0.0.0"
ProcessorArchitecture="x86" />
Propiedades
La Properties
sección del manifiesto de aplicación contiene los campos de la tabla siguiente.
Campo | Descripción |
---|---|
PublisherDisplayName | Esta cadena se rellena de forma diferente en los escenarios siguientes:
|
DisplayName | Esta cadena se rellena de manera diferente en los escenarios siguientes:
|
Logotipo | Una Visual Studio de trabajo usará de Assets\StoreLogo.png forma predeterminada. El desarrollador debe personalizar este valor en el archivo Package.appxmanifest. |
Este es un ejemplo del XML Properties
de salida:
<Properties>
<DisplayName>UWP App Example</DisplayName>
<PublisherDisplayName>Microsoft Corporation</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
Application
Un manifiesto de aplicación puede contener varios Application
elementos, cada uno de los cuales tiene un nombre para mostrar que aparece en el icono del cliente. La Application
sección del manifiesto de aplicación contiene los campos de la tabla siguiente.
Campo | Descripción |
---|---|
Identificador | Esta cadena se rellena de manera diferente en los escenarios siguientes:
|
Ejecutable | El valor de este campo es el nombre de salida del ensamblado del proyecto. El token ejecutable $targetnametoken$.exe que se usa en el archivo de manifiesto de origen (Package.appxmanifest) se reemplaza por el nombre de archivo real cuando se ha creado el manifiesto. |
EntryPoint | Este valor se basa en los valores y Executable generados Id . |
Salida de Application
ejemplo:
<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
sección contiene todas las dependencias Windows biblioteca de componentes para este paquete. Por ejemplo, si el proyecto tiene una referencia a WinJS, Visual Studio recupera la información de identidad del paquete de las dependencias cuando se genera el manifiesto. Visual Studio rellena esta sección con los campos Name
y MinVersion
de cada paquete dependiente.
En un proyecto nativo de C++, Visual Studio agregará una referencia al runtime de 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>
Windows Runtime de registro
Puede implementar componentes Windows Runtime para las aplicaciones, pero deberá registrar esos componentes en el sistema operativo para que se ejecuten correctamente. Para registrar un Windows Runtime, debe colocar la información de registro en los archivos WinMD y en el manifiesto de aplicación. Si un proyecto implementa un Windows Runtime, la salida de compilación del proyecto contendrá un archivo WinMD. Visual Studio extrae la Windows Runtime de registro del archivo WinMD y genera los elementos adecuados Extension
en el manifiesto de aplicación.
El sistema admite dos formas de servidor: servidores .dll (en proceso) y servidores .exe (fuera de proceso). Estos servidores requieren información de registro similar aunque diferente, la cual se debe copiar en el manifiesto de aplicación. Visual Studio admite la generación de manifiestos solo para los servidores .dll y se necesita la extensión de DLLServer para registrar los servidores .dll. Los siguientes valores en el manifiesto de aplicación se toman de los archivos de WinMD para construir la extensión de DLLServer:
- DllPath
- ActivatableClassId
- ThreadingModel
- ActivatableClass (atributo de ActivatableClassId)
A continuación se muestra un ejemplo del XML de salida:
<extension category="Microsoft.Windows.ActivatableClass">
<dllServer>
<dllPath>Fabrikam.dll</dllPath>
<activatableClass activatableClassId="Fabrikam.MyClass" threadingModel="sta" />
</dllServer>
</extension>
Para obtener más información sobre este tema, vea Windows Runtime componentes.
Recursos
La Resources
sección contiene una entrada para cada idioma que admite la aplicación. Debe tener al menos un idioma de recurso especificado en el manifiesto de aplicación. Visual Studio genera automáticamente la lista de idiomas admitidos según la información de localización del proyecto. El token de lenguaje de recursos "x-generate" que se usa en el archivo de manifiesto de origen (Package.appxmanifest) se reemplaza por el código de idioma real cuando se crea el manifiesto. A continuación se muestra un ejemplo del XML de salida:
<Resources>
<Resource Language="en-us">
<Resource Language="fr-fr">
</Resources>
La primera entrada de la lista es el idioma predeterminado para la aplicación.
TargetDeviceFamily
La TargetDeviceFamily
sección contiene los campos siguientes:
- Nombre
- MinVersion
- MaxVersionTested
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.22000.0" />
</Dependencies>
Estos elementos se rellenan a partir de MSBuild propiedades.
Consulte también
Empaquetar una aplicación para UWP con Visual Studio
Arquitecturas de paquetes de aplicaciones
Referencia de esquema del manifiesto del paquete de Windows 10