MSDN Library
Información
El tema que ha solicitado se muestra abajo. Sin embargo, este tema no se encuentra en la biblioteca.

Implementación y paquetes de aplicaciones (aplicaciones de Windows en tiempo de ejecución)

[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows en tiempo de ejecución. Si estás desarrollando para Windows 10, consulta la documentación más reciente

Como desarrollador, no escribes rutinas para instalar o desinstalar tu aplicación de Windows en tiempo de ejecución, sino que empaquetas la aplicación y la envías a la Tienda. Los usuarios adquieren las aplicaciones en la Tienda en forma de paquetes de aplicación. El sistema operativo emplea la información de los paquetes de la aplicación para instalar la aplicación y garantizar que no va a quedar rastro de la aplicación en el dispositivo después de que el usuario la desinstale.

Un paquete de la aplicación es un contenedor basado en la norma Open Packing Conventions (OPC). OPC define una forma estructurada de almacenar datos y recursos de la aplicación en un archivo ZIP estándar. Para obtener información sobre cómo usar Microsoft Visual Studio para implementar paquetes de la aplicación, consulta el tema sobre cómo implementar aplicaciones de Windows en tiempo de ejecución desde Visual Studio.

A partir de Windows 8.1 y Windows Phone 8.1, existen nuevos paquetes de aplicaciones que sirven para optimizar el empaquetamiento y distribución de una aplicación. Y los paquetes de recursos te permiten ofrecer extras, como localización o activos para pantallas de alta resolución, a aquellos clientes que los quieran, sin que esto afecte al espacio en disco, el ancho de banda y la experiencia de compra desde la aplicación para aquellos usuarios que no los quieren. Además, los vínculos físicos optimizan la instalación de la aplicación, ya que eliminan la duplicación de datos al no descargar el mismo archivo más de una vez.

Implementación de aplicaciones de Windows en tiempo de ejecución

El modelo de aplicaciones de Windows en tiempo de ejecución es un proceso declarativo controlado por estado que implementa todos los datos de instalación y actualización, y las instrucciones de una aplicación, en un único paquete. En este modelo declarativo, las operaciones de implementación son fiables. Los archivos incluidos en el paquete son inmutables, lo que significa que no han sido modificados desde que se entregaron al dispositivo. Debido a que el propietario del paquete no necesita escribir código ni acciones personalizadas, se reduce el número de puntos de error.

Durante el proceso de actualización, la nueva versión de la aplicación se descarga y se instala en el perfil del usuario; inmediatamente después, la versión anterior se quita del dispositivo. A diferencia de Windows Installer, no hay un concepto de archivos de revisión ni otros archivos que se utilicen para implementar una aplicación de Windows en tiempo de ejecución.

Nota  

Debido a que las aplicaciones de Windows en tiempo de ejecución se instalan en el perfil de un usuario, cada usuario tiene un control total sobre sus aplicaciones de la Tienda Windows. Las aplicaciones se pueden instalar, actualizar y quitar sin afectar a las demás aplicaciones del usuario en el dispositivo.

Para más información sobre la implementación, consulta Implementación de aplicaciones de Windows en tiempo de ejecución.

Paquetes de aplicaciones de Windows en tiempo de ejecución: .appx

Todos los componentes que definen una aplicación de Windows en tiempo de ejecución se almacenan en un paquete de la aplicación de Windows en tiempo de ejecución. Este paquete de la aplicación de Windows en tiempo de ejecución tiene la extensión de archivo .appx y es la unidad de instalación de una aplicación de Windows en tiempo de ejecución. Los paquetes de la aplicación de Windows en tiempo de ejecución son archivos contenedores ZIP que se definen como un subconjunto de las normas de Convenciones de empaquetado abierto (OPC) ISO y ECMA. Cada paquete de la aplicación de Windows en tiempo de ejecución contiene los archivos de carga de la aplicación además de la información necesaria para validar, implementar, administrar y actualizar la aplicación. A grandes rasgos, cada paquete de aplicación de Windows en tiempo de ejecución contiene estos elementos:

Carga de la aplicación

Activos y archivos de código de la aplicación

Archivos de carga que son los activos y archivos de código que creas durante la creación de tu aplicación de Windows en tiempo de ejecución.

Manifiesto de la aplicación

Archivo de manifiesto de la aplicación (Package.appxmanifest)

El manifiesto de la aplicación declara la identidad de la aplicación, la capacidad de la misma e información para su implementación y actualización. Para obtener más información sobre el archivo de manifiesto de la aplicación, consulta Manifiesto del paquete de la aplicación.

Asignación de bloques de la aplicación

Archivo de asignación de bloques del paquete de la aplicación (AppxBlockMap.xml)

El archivo de asignación de bloques enumera todos los archivos de la aplicación incluidos en el paquete, además de los valores hash criptográficos asociados que el sistema operativo utiliza para validar la integridad de los archivos y para optimizar una actualización de la aplicación. Para obtener más información sobre el archivo de asignación de bloques, consulta Asignación de bloques del paquete de la aplicación.

Firma de la aplicación

Archivo de firma digital del paquete de la aplicación (AppxSignature.p7x)

La firma del paquete de la aplicación garantiza que el paquete y su contenido no han sido modificados después de ser firmados. Si el certificado de firma se valida con un certificado de una entidad de certificación raíz de confianza, la firma también identifica quién firmó el paquete. El firmante del paquete suele ser el editor o el autor de la aplicación.

Estos elementos anteriores componen una aplicación de Windows en tiempo de ejecución totalmente independiente que se puede implementar en Windows 8 y versiones posteriores, y en Windows Phone 8.1 y versiones posteriores. Tú creas los archivos de carga y manifiesto para tu aplicación. Cuando Visual Studio empaqueta tu aplicación, automáticamente agrega los archivos de asignación de bloques de la aplicación de firma al paquete. Pero también puedes usar las utilidades independientes MakeAppx y SignTool si quieres empaquetarla automáticamente. En estas secciones se describe cómo empaquetar e implementar aplicaciones de Windows en tiempo de ejecución.

Identidad del paquete

Una de las partes más importantes del paquete de la aplicación es la tupla de 5 partes que define el paquete. Esta tupla se conoce como identidad del paquete y consta de los siguientes datos:

Name

Un nombre general que se usa para el paquete de la aplicación. Por ejemplo, "myCompany.mySuite.myApp".

Nota  Este nombre no es necesariamente el que se muestra en el icono de la aplicación.
 
Publisher

El editor es el editor de la aplicación de Windows en tiempo de ejecución. En la mayoría de los casos, el editor es el mismo que la cuenta utilizada para registrarse en una cuenta de desarrollador.

Version

Un descriptor de versión con cuatro partes (principal.secundaria.compilación.revisión) que se utiliza para dar servicio a futuras versiones de la aplicación. Por ejemplo, "1.0.0.0".

Nota  Debes usar las cuatro partes del descriptor de versión.
 
ProcessorArchitecture

La arquitectura de destino del paquete de la aplicación. Este valor puede ser "x86", "x64", "arm" o "neutral". En muchos casos, este campo puede ser "neutral" para representar a todas las arquitecturas.

ResourceID

Opcional.

Una cadena definida por el editor que especifica los recursos del paquete de la aplicación. Esta parte de la tupla se usa principalmente si el paquete de la aplicación tiene activos específicos de una región, por ejemplo, idiomas.

Si creas el paquete manualmente, consulta el elemento Identity.

Formato del paquete

Aquí ofrecemos información detallada sobre los paquetes de aplicación, es decir, el formato de archivo .appx.

Los paquetes de aplicación son de solo lectura

Aunque los paquetes de aplicación se basan en un subconjunto de OPC, recomendamos no usar API existentes para editar los archivos OPC o ZIP. Después de crear un paquete de la aplicación, trátalo como de solo lectura. Los procesos de Visual Studio y MakeAppx que crean paquetes de la aplicación generan y agregan automáticamente el archivo AppxBlockMap.xml al paquete. Si cambias el contenido del paquete, deberás actualizar el archivo de asignación de bloques del paquete para que coincida. Para crear un nuevo paquete y archivo de asignación de bloques, debes volver a compilar el paquete con Visual Studio, el comando pack de MakeAppx o las API de IAppxPackageWriter de código nativo de Windows 8.

Nombres de archivos de carga del paquete de la aplicación

Para cumplir con OPC, los nombres de las rutas de todos los archivos que están almacenados en un paquete de la aplicación deben seguir el formato de Identificador uniforme de recursos (URI). Las rutas de archivo que no sigan el formato URI deben codificarse con porcentaje cuando se almacenen en un paquete de la aplicación, y decodificarse de nuevo a su ruta de archivo original cuando se extraigan del paquete. Tomemos como ejemplo este archivo de carga, cuya ruta y nombre contienen espacios incrustados y caracteres reservados de URI '[' y ']':


\my pictures\kids party[3].jpg

Cuando almacenas este archivo de carga en el paquete de la aplicación, la ruta del archivo se convierte en:


/my%20pictures/kids%20party%5B3%5D.jpg

Visual Studio, el empaquetador de aplicaciones (MakeAppx) y las API de empaquetado realizan la codificación con porcentaje y la decodificación de las rutas de archivo automáticamente. Si intentas extraer archivos directamente desde un archivo de la aplicación usando API o utilidades ZIP generales, las rutas del archivo podrían quedar codificadas con porcentaje. Por lo tanto, recomendamos que extraigas los archivos de un paquete de la aplicación mediante el comando unpack de MakeAppx o las API de IAppxPackageReader.

Capacidad del paquete de la aplicación

Los paquetes de aplicación admiten aplicaciones con estos límites de capacidad:

Capacidad del paqueteMáxima
Número de archivos100.000 archivos
Tamaño del paquete100 GB

 

Nombres de ruta y archivo reservados para paquetes de aplicación

Estos nombres de ruta y archivo están reservados, por lo que no debes usarlos para archivos de carga de la aplicación:

Nombres de ruta y archivo reservadosUsa
/Package.appxmanifestNombre de archivo reservado para el manifiesto del paquete de la aplicación creado por el desarrollador
/AppxBlockMap.xmlNombre de archivo reservado para la asignación de bloques del paquete de la aplicación
/AppxSignature.p7xNombre de archivo reservado para la firma digital de Microsoft Authenticode del paquete de la aplicación
/[Content_Types].xmlNombre de archivo reservado para los metadatos de tipo de contenido que OPC requiere para el paquete de la aplicación
/AppxMetadata/Ruta de carpeta reservada para los archivos de metadatos del paquete de la aplicación
/Microsoft.System.Package.Metadata/Ruta de carpeta reservada para los archivos de metadatos de Microsoft sobre los paquetes de aplicación implementados

 

Firmas digitales de paquetes de aplicación

Debes firmar todos los paquetes de aplicación para que los usuarios puedan instalarlos. Aunque la firma de paquetes de aplicación se automatiza en parte mediante Authenticode, debes controlar las siguientes características cuando firmes paquetes de aplicación:

  • El nombre del firmante del certificado de firma del código debe coincidir con el atributo Publisher que se especifica en el elemento Identity del archivo AppxManifest.xml del paquete de la aplicación.
  • El algoritmo hash que se usa para firmar el paquete de la aplicación debe coincidir con el algoritmo hash que se usa para generar el archivo AppxBlockMap.xml en el paquete de la aplicación. Este algoritmo hash se especifica en el atributo HashMethod del elemento BlockMap.
  • No se puede aplicar una marca de hora a un paquete de la aplicación de forma independiente de la firma. Si se desea una marca de tiempo, debe aplicarse durante la firma.
  • Los paquetes de aplicación no admiten varias firmas encapsuladas.

La firma de un paquete determina la licencia de la aplicación de Windows en tiempo de ejecución. La licencia de una aplicación afecta a cómo se puede instalar y ejecutar, por lo que incluso dos paquetes de aplicación con la misma identidad de paquete podrían no ser tratados como equivalentes durante la instalación. Por ejemplo, no puedes instalar un paquete con la misma identidad de paquete que otro ya instalado si no tiene también la misma firma.

Instalación declarativa

La implementación de aplicaciones de Windows en tiempo de ejecución es un proceso completamente declarativo que se basa en el manifiesto del paquete de la aplicación. El manifiesto del paquete de la aplicación se usa para capturar la integración que deseas con el sistema operativo. Por ejemplo, el manifiesto del paquete de la aplicación se usa para declarar la necesidad de utilizar una asociación de tipo de archivo, como .jpg, en el sistema operativo.

Con ello, el sistema operativo puede administrar completamente el proceso de implementación de la aplicación de Windows en tiempo de ejecución para que sea una experiencia coherente y segura para cada usuario en numerosos dispositivos. Además, con una aplicación de Windows en tiempo de ejecución de instalación declarativa, la desinstalación de la aplicación se convierte en determinista y reproducible.

En el manifiesto del paquete de la aplicación puedes declarar diversas tecnologías como parte de la instalación de la aplicación de Windows en tiempo de ejecución.

Requisitos previos de la aplicación:  

Para implementar correctamente una aplicación, el sistema operativo debe satisfacer todos los requisitos previos de la aplicación a los que se hace referencia en el manifiesto del paquete de la aplicación. Por ejemplo, si una versión del sistema operativo expone una nueva API a la que llama una aplicación de Windows en tiempo de ejecución, la aplicación declara un requisito previo para esa versión mínima específica del sistema operativo. En este caso, el sistema operativo adecuado debe estar presente en el dispositivo de destino antes de poder instalar la aplicación. En Windows 8 y Windows Phone 8.1, y versiones posteriores de ambos sistemas operativos, puedes declarar estos tipos principales de requisitos previos en el manifiesto del paquete de la aplicación:

OSMinVersion

Especifica la versión mínima del sistema operativo y la plataforma del modelo de aplicaciones donde esta aplicación tiene permiso para ejecutarse.

OSMaxVersionTested

Especifica la versión máxima del sistema operativo donde el programador probó esta aplicación y que se sabe que está operativa. El sistema operativo usa este campo de requisito previo para determinar si durante el uso de la aplicación podrían surgir problemas de compatibilidad de la aplicación. Por ejemplo, si la aplicación llama a una API desde el SDK de Windows 8 y la API se modifica más adelante en una versión posterior del sistema operativo, el comportamiento de la aplicación podría ser incorrecto. Este campo de requisito previo ayuda a garantizar que el sistema operativo pueda identificar y corregir este comportamiento para que la aplicación continúe funcionando en todas las versiones posteriores del sistema operativo.

Funcionalidad

Las aplicaciones de Windows en tiempo de ejecución que necesitan acceso mediante programación a los recursos del usuario como Imágenes o a los dispositivos conectados como una cámara web, deben declarar la funcionalidad apropiada. Una aplicación solicita acceso declarando las funcionalidades en su manifiesto del paquete de la aplicación. Puedes declarar las funcionalidades utilizando el Diseñador de manifiestos en Visual Studio o puedes agregarlas manualmente al manifiesto del paquete tal y como se describe en el tema sobre cómo especificar funcionalidades en un manifiesto del paquete. Para obtener más información sobre funcionalidades, consulta Declaraciones de funcionalidades de aplicación.

Dependencias:  

La Tienda hospeda un conjunto único de paquetes de la aplicación que contienen componentes del sistema operativo a los que se da servicio independientemente del sistema operativo. Las aplicaciones de Windows en tiempo de ejecución pueden usar estos paquetes de la aplicación declarando una dependencia en su manifiesto del paquete de la aplicación. Los componentes incluidos en paquetes de la aplicación hospedados por la Tienda se denominan bibliotecas de componentes del sistema operativo. La Tienda administra el proceso que garantiza que la versión correcta de la biblioteca de componentes está presente cuando se instala la aplicación en un dispositivo. Estas bibliotecas, incluidas la biblioteca de Windows para JavaScript, las bibliotecas en tiempo de ejecución de C++ (CRT) y PlayReady DRM, son esenciales para la creación de aplicaciones de Windows en tiempo de ejecución. Cuando se implementa una aplicación desde la Tienda, el sistema operativo cumple la declaración de dependencias y descarga e instala la biblioteca de componentes apropiada junto con la aplicación que se está descargando de la Tienda.

En el caso de las aplicaciones de la Tienda Windows de instalación de prueba para la implementación de pruebas o empresarial, el paquete de la aplicación de la biblioteca de componentes de Windows se debe suministrar y especificar durante la implementación del paquete de la aplicación.

Paquetes de aplicaciones

A partir de Windows 8.1 y Windows Phone 8.1, puedes usar el paquete de aplicaciones (o paquete .appxbundle) para optimizar el empaquetado y la distribución de una aplicación de Windows en tiempo de ejecución y de paquetes de recursos a usuarios de todo el mundo.

Nota  Crea un paquete de aplicaciones para todas las arquitecturas en lugar de paquetes separados para cada una.
 

Tú eres el que crea la carga del paquete de aplicaciones de tu aplicación. mientras que Visual Studio crea y agrega el manifiesto del paquete. Cuando Visual Studio empaqueta la aplicación, divide los recursos automáticamente en paquetes separados y agrega los archivos de firma y de asignación de bloques de la aplicación al paquete. Estos elementos son los que componen una aplicación de Windows en tiempo de ejecución completamente independiente que se puede implementar en sistemas a partir de Windows 8.1 y Windows Phone 8.1.

Paquetes de aplicaciones (.appx)

El paquete de aplicaciones puede contener más de un paquete solo si cada uno de ellos se destina a una arquitectura concreta diferente. Por ejemplo, puede contener tanto un paquete x86.appx como un paquete amd64.appx, pero no dos paquetes amd64.appx.

Paquetes de recursos (.appx)

El paquete de aplicaciones contiene paquetes de recursos (archivos .appx) para idioma, escala y nivel de característica de Microsoft DirectX. Cada lote de la aplicación puede contener muchos paquetes de recursos diferentes para admitir diferentes configuraciones de dispositivo. Cuando se hace referencia directa a un paquete de recursos en tu aplicación de Windows en tiempo de ejecución, te recomendamos que utilices todo el sistema de administración de recursos.

Nota  Los paquetes de recursos nunca deben contener código.
 
Manifiesto del paquete de aplicaciones (AppxBundleManifest.xml)

El manifiesto del paquete de aplicaciones (archivo .appxbundlemanifest) contiene toda la información de aplicabilidad acerca de los paquetes contenidos. Así, en él se especifica el tipo de paquete ("Application" o "Resource") de cualquier paquete en concreto, además de la versión y la información de destino de recursos. Específicamente en el caso de los paquetes de la aplicación, el manifiesto de paquete de aplicaciones contiene información acerca de la arquitectura.

En general, el manifiesto del paquete de aplicaciones permite que el modelo de aplicaciones conozca el contenido del lote de la aplicación y determine en el momento de la instalación qué paquete de la aplicación y paquetes de recursos deben instalarse en el dispositivo del usuario.

Aquí tienes un ejemplo de un archivo de manifiesto del paquete de aplicaciones.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Bundle xmlns="http://schemas.microsoft.com/appx/2013/bundle" SchemaVersion="1.0">
  <Identity Name="Example" Publisher="CN=ExamplePublisher" Version="2013.101.312.1053"/>
  <Packages>
    <Package Type="application" Version="1.0.0.5" Architecture="x86" FileName="AppPackage_X86.appx" Offset="49" Size="3207">
      <Resources>
        <Resource Language="en-us"/>
        <Resource Scale="100" />
      </Resources>
    </Package>
    <Package Type="application" Version="1.0.0.4" Architecture="x64" FileName="AppPackage_X64.appx" Offset="3329" Size="3204">
      <Resources>
        <Resource Language="en-us"/>
        <Resource Scale="100" />
      </Resources>
    </Package>
    <Package Type="resource" Version="1.0.0.0" ResourceId="French" FileName="ResourcePackage_French.appx" Offset="6606" Size="1423">
      <Resources>
        <Resource Language="fr"/>
        <Resource Language="fr-fr"/>
        <Resource Language="fr-ca"/>
      </Resources>
    </Package>
    <Package Type="resource" Version="1.0.0.3" ResourceId="HiRes" FileName="ResourcePackage_HiRes.appx" Offset="8111" Size="1584">
      <Resources>
        <Resource Scale="140"/>
      </Resources>
    </Package>
  </Packages>
</Bundle>

Asignación de bloques de la aplicación (AppxBlockMap.xml)

El archivo de asignación de bloques enumera todos los archivos del paquete (excepto los paquetes de la aplicación y de recursos), además de los valores hash criptográficos asociados que el sistema operativo utiliza para validar la integridad de los archivos y para optimizar una actualización de la aplicación. Para más información sobre el archivo de asignación de bloques, consulta Asignación de bloques del paquete de la aplicación.

Firma de aplicaciones (AppxSignature.p7x)

La firma del paquete de aplicaciones garantiza que el paquete y su contenido no se han modificado después de ser firmados. Si el certificado de firma se valida con un certificado de entidad de certificación raíz de confianza, la firma también identifica quién firmó el paquete. El firmante del paquete suele ser el editor o el autor de la aplicación.

Paquetes de recursos

Desde Windows 8.1 y Windows Phone 8.1, puedes usar paquetes de recursos que contengan más recursos para la aplicación principal (por ejemplo, activos específicos de francés como cadenas o imágenes). Al usar un paquete de recursos, puedes separar el paquete de la aplicación principal de esos otros recursos adicionales. Por lo tanto, el paquete de recursos sirve para personalizar la experiencia global de la aplicación sin necesidad de descargar e instalar todos los paquetes de recursos en el dispositivo.

El paquete de recursos es opcional y no puede depender del paquete de la aplicación. Esto significa que el paquete de la aplicación debe contener al menos un conjunto de recursos predeterminados que siempre puede usarse en el caso de que no se haya instalado ningún paquete de recursos en el dispositivo. Esto ayuda a mantener un par de promesas clave:

  • El paquete de la aplicación siempre puede instalarse e iniciarse correctamente en cualquier dispositivo sin paquetes de recursos.

  • Si el paquete de recursos instalado no está completo, el paquete de la aplicación tiene recursos a los cuales puede recurrir.

El paquete de recursos cumple estos propósitos en el modelo de aplicaciones:

  • Proporciona candidatos de recursos que el sistema de administración de recursos puede usar cuando se ejecuta la aplicación para personalizar la experiencia con dicha aplicación.

  • Proporciona metadatos que permiten que el paquete de recursos se dirija a un calificador de recursos específico (por ejemplo, idioma del usuario, escala de sistema y características de DirectX).

Los paquetes de recursos solo pueden dirigirse a un calificador de recursos por paquete. Sin embargo, tu aplicación puede tener muchos paquetes de recursos.

Los paquetes de recursos nunca deben contener código.

Vínculos físicos

A partir de Windows 8.1 y Windows Phone 8.1, cuando el sistema operativo instale tu aplicación, optimizará esta instalación no descargando el mismo archivo más de una vez cuando sea factible. Es decir, si el sistema operativo determina que la aplicación usa un archivo que ya se instaló anteriormente en el dispositivo, creará una versión compartida de dicho archivo y creará un vínculo físico entre la aplicación y la versión compartida. Así, reducirá el tiempo de instalación de la aplicación y la superficie de disco. Estos archivos compartidos pueden ser bibliotecas, tiempos de ejecución, etc. Para aprovechar los vínculos físicos, recomendamos que sigas los procedimientos recomendados. Por ejemplo, intenta siempre volver a usar los mismos binarios de tiempo de ejecución o de biblioteca, siempre que sea posible con cada versión de la aplicación, a menos que debas absolutamente actualizarlos.

Windows 8.1 Update :  En el lanzamiento inicial de Windows 8.1, los vínculos físicos estaban limitados únicamente a las aplicaciones de la Tienda Windows. En la actualización de Windows 8.1, los vínculos físicos se extienden a las aplicaciones de empresa con instalación de prueba. Para obtener más información acerca de las instalaciones de prueba, consulta Implementar aplicaciones de empresa.

Implementaciones por usuario

Nota  

La implementación de las aplicaciones de Windows en tiempo de ejecución se realiza por usuario, lo que significa que solo afecta a la cuenta del usuario que las instaló. Además, en escenarios multiusuario, los usuarios no saben qué se ha instalado para otro usuario. Por ejemplo, supongamos que UsuarioA instaló la aplicación Bloc de notas mientras que UsuarioB instaló la aplicación Calculadora. En este escenario, UsuarioA y UsuarioB no saben qué otras aplicaciones se instalaron en el mismo equipo (aislamiento de aplicaciones).

Aislamiento de aplicaciones

Nota  

El aislamiento de aplicaciones en el sistema operativo se limita únicamente a la parte del usuario de la aplicación de Windows en tiempo de ejecución. Todos los demás datos de la aplicación se almacenan en una ubicación a la que el sistema operativo puede acceder. Por ejemplo, supongamos que UsuarioA instaló la aplicación Calculadora y que UsuarioB también instaló la misma aplicación; en este escenario, solo se guarda una copia de los binarios de la aplicación Calculadora en la unidad (%ProgramFiles%\WindowsApps), y ambos usuarios tienen acceso. UsuarioA no ve los datos de la aplicación de UsuarioB y viceversa. Aunque los binarios en tiempo de ejecución se comparten, los datos de la aplicación siguen aislados.

El directorio %ProgramFiles%\WindowsApp no se puede cambiar. Esto también incluye el directorio %ProgramFiles% subyacente, así como los directorios %ProgramData% y %UserProfile%.

Existencia de múltiples versiones

Nota  

Además de contener todos los binarios de la aplicación de la Tienda Windows para todos los usuarios del sistema, el directorio WindowsApps también puede contener varias versiones de la misma aplicación de la Tienda Windows. Por ejemplo, supongamos que tanto UsuarioA como UsuarioB instalaron la aplicación Bloc de notas, y que UsuarioA actualizó a la versión 2 de la aplicación pero UsuarioB no. En este escenario, hay dos versiones de la aplicación Bloc de notas en el sistema operativo. Como solo se instala una versión para cada usuario, las diferentes versiones no presentan conflictos entre sí.

Este comportamiento también es aplicable a los paquetes de dependencias.

Implementación de aplicaciones de Windows en tiempo de ejecución

En estas secciones se describe el flujo de instalación, actualización y eliminación de aplicaciones de Windows en tiempo de ejecución.

Instalación de aplicaciones de Windows en tiempo de ejecución

Esta ilustración muestra el flujo de instalación de aplicaciones de Windows en tiempo de ejecución:

Flujo de instalación de aplicaciones de la Tienda Windows

La implementación de la aplicación de Windows en tiempo de ejecución se realiza en varias fases. Inicialmente, el sistema operativo adquiere y valida el manifiesto de la aplicación, la asignación de bloques de la aplicación y la firma de la aplicación. A continuación, el sistema operativo comprueba los criterios de implementación del paquete de la aplicación para asegurarse de que la implementación de la aplicación será correcta. Después, el sistema operativo realiza una copia intermedia de los binarios del paquete en el directorio WindowsApps. Por último, el sistema operativo registra el paquete en la cuenta del usuario.

Comprobaciones de la implementación (validación)

Esta figura muestra la fase en la que el sistema operativo realiza las comprobaciones de la implementación:

Comprobaciones de la instalación de la implementación

Después de que el usuario inicia la instalación de una aplicación de Windows en tiempo de ejecución, el sistema operativo debe realizar estas comprobaciones para que el proceso de implementación pueda comenzar:

Debe satisfacer OSMinVersion

Los requisitos previos de la aplicación se especifican en el manifiesto del paquete de la aplicación. Expresan el requisito de que haya una versión mínima específica del sistema operativo. Para obtener más información acerca de los requisitos previos de una aplicación, consulta los requisitos previos de la aplicación.

Deben satisfacerse las dependencias de la aplicación

Las aplicaciones de Windows en tiempo de ejecución pueden expresar una dependencia de otro paquete de la aplicación para una funcionalidad adicional que la aplicación necesita. Para obtener más información acerca de las dependencias, consulta el tema sobre dependencias.

Debe haber suficiente espacio en disco

Cada aplicación de Windows en tiempo de ejecución requiere una cierta cantidad de espacio en disco para que se pueda implementar. Si no hay suficiente espacio en disco en el dispositivo para implementar la aplicación, la instalación no se realiza.

La aplicación no está ya instalada

En el contexto del usuario específico que instaló la aplicación de Windows en tiempo de ejecución, esta no se puede instalar de nuevo por lo que se debe comprobar que la aplicación no esté ya instalada.

Los activos de la aplicación deben pasar la comprobación de la firma

Usando el archivo BlockMap ya validado, se debe comprobar la integridad de cada uno de los archivos del paquete de la aplicación.

Copia intermedia del paquete

Esta figura muestra la fase en la que el sistema operativo realiza las copias intermedias del paquete:

Copia intermedia del paquete de implementación

Una vez que el modelo de aplicaciones determina que el paquete se puede implementar en el dispositivo, el sistema operativo almacena el contenido del paquete en el disco, en el directorio %ProgramFiles%\WindowsApps, en un nuevo directorio cuyo nombre se asigna según la identidad del paquete:


<Package Name>_<Version>_<Architecture>_<ResourceID>_<Publisher Hash>

El proceso de copia intermedia se produce mediante un conjunto de solicitudes que realiza el motor de implementación al origen de la ubicación del paquete. El origen responde a estas solicitudes, que se devuelven al motor de implementación una vez descomprimidas, se validan con el archivo BlockMap y se copian en el archivo apropiado.

Registro del paquete

Esta figura muestra la fase en la que el sistema operativo registra el paquete:

Registro del paquete de implementación

El registro del paquete es la fase final del proceso de implementación. Durante esta fase, las extensiones que se declaran en el manifiesto se registran en el sistema operativo. Esto permite que la aplicación se integre estrechamente con el sistema operativo. Por ejemplo, si quieres que tu aplicación pueda abrir archivos .txt, declara una extensión FileTypeAssociation como XML en tu manifiesto del paquete de la aplicación y especifica .txt como tipo de archivo. En tiempo de implementación, este XML se traduce al conjunto de cambios del sistema que es necesario que se produzcan para registrar correctamente la aplicación y que pueda administrar archivos .txt. Estos cambios los realiza el modelo de aplicaciones en nombre de la aplicación. El modelo de aplicaciones admite muchas extensiones diferentes. Para obtener más información acerca de estas extensiones, consulta el tema sobre las extensiones y contratos para aplicaciones.

Actualización de aplicaciones de Windows en tiempo de ejecución

Esta ilustración muestra el flujo de actualización de aplicaciones de Windows en tiempo de ejecución:

Actualización de la implementación

El flujo de actualización es similar al de instalación de aplicaciones de Windows en tiempo de ejecución, pero existen algunas diferencias que hacen que la actualización sea única.

Comprobaciones de la implementación para actualizar

Esta figura muestra la fase en la que el sistema operativo realiza las comprobaciones de la implementación en la actualización:

Comprobaciones de la actualización de la implementación

Si la versión del paquete de la aplicación actualmente instalada es mayor o igual que la versión que el usuario está intentando instalar, la implementación no se realizará correctamente.

Copia intermedia del paquete (descargas diferencial)

Esta figura muestra la fase en la que el sistema operativo realiza las copias intermedias del paquete actualizado:

Copia intermedia de la actualización de la implementación

El proceso de copia intermedia durante la actualización es similar al proceso de copia intermedia típico durante la instalación. La principal diferencia es que ya hay una versión previamente existente del paquete instalada en el sistema operativo. Una vez finalizada la instalación del paquete previamente existente, se descarga un conjunto de archivos de carga y se copia en el dispositivo. En la mayoría de los casos, muchos de estos archivos de carga no cambiarán o cambiarán ligeramente en la versión actualizada del paquete de la aplicación. Puedes usar estos archivos de carga para construir el contenido y los activos del paquete de la aplicación actualizado. Como la estructura de BlockMap del paquete de la aplicación contiene una lista de hashes para cada bloque de cada archivo, el sistema operativo puede calcular el conjunto exacto de cambios en un nivel de bloque comparando los archivos BlockMap de la aplicación anterior y de la nueva. Estos son los posibles resultados de esta comparación:

Un archivo no cambió

El archivo está físicamente vinculado a la ubicación de la carpeta del paquete actualizado.

Los bloques de un archivo no cambiaron

Los bloques no modificados se copian en la carpeta del paquete actualizado.

Los bloques del archivo cambiaron

Los bloques modificados se marcan para descargarse del origen.

Un archivo completo es nuevo

Se descargará el archivo completo del origen.

Un archivo ya no existe

No se usará el archivo en absoluto para la actualización.

Una vez finalizada la comparación, todos los datos que pueden conservarse se vinculan físicamente o se copian, y los datos nuevos se descargan del origen y se usan para crear los archivos actualizados.

Registro del paquete para actualización

Esta figura muestra la fase en la que el sistema operativo registra el paquete actualizado:

Registro del paquete de implementación actualizado

Cuando actualizas el registro de un paquete, el sistema operativo también tiene que actualizar los registros de las versiones anteriores. El modelo de aplicaciones actualiza automáticamente los registros de extensiones existentes, quita los registros obsoletos y registra las nuevas extensiones en función de las declaraciones presentes en los manifiestos de las versiones anteriores y nueva de la aplicación.

Aplicaciones en uso

El proceso de eliminar un paquete de la aplicación del registro del sistema operativo implica quitar la información interna que permite al sistema operativo iniciar la aplicación de Windows en tiempo de ejecución. En algunos casos, la aplicación puede estar en ejecución cuando se produce la actualización. En este escenario, el motor de implementación solicita la suspensión y posterior terminación de la aplicación. El proceso de actualización se realiza correcta o incorrectamente en función del resultado de dicha solicitud. Si las operaciones se realizan correctamente, también se impide que la aplicación se inicie durante el corto período de tiempo en el que se realiza el registro del nuevo paquete de la aplicación y se elimina el registro del paquete de la aplicación anterior. Una vez finalizada esta fase, la aplicación tiene permiso para volver a iniciarse.

Datos de aplicación

Los datos de aplicación son una nueva entidad con una versión que queda fuera de la aplicación de Windows en tiempo de ejecución en sí. Como tal, si ApplicationData.Version no se actualizó durante la actualización de la aplicación de Windows en tiempo de ejecución, el estado de la aplicación no se ve afectado por la actualización de la aplicación de Windows en tiempo de ejecución.

Eliminación de la copia intermedia del paquete

Esta figura muestra la fase en la que el sistema operativo elimina la copia intermedia del paquete actualizado:

Eliminación de la copia intermedia del paquete de implementación actualizado

Una vez finalizada la operación de registro correctamente, la versión previamente existente del paquete, si no está siendo usada por otro usuario del sistema operativo, se marca para su eliminación del sistema operativo. Inicialmente, el sistema operativo copia la carpeta del paquete de la aplicación de la versión previamente existente en el directorio %ProgramFiles%\WindowsApps\Deleted. Si no hay otras operaciones de implementación en curso, el sistema operativo elimina la carpeta del paquete de la aplicación de la versión previamente existente.

Nota  En escenarios multiusuario, el paquete de la aplicación podría quedar instalado en el sistema operativo para otro usuario. En este caso, la copia intermedia del contenido del paquete no se elimina del sistema operativo hasta todos los usuarios lo hayan quitado.

Eliminación de aplicaciones de Windows en tiempo de ejecución

Esta ilustración muestra el flujo de eliminación de aplicaciones de Windows en tiempo de ejecución:

Eliminación de la implementación

Nota  Igual que los paquetes se instalan en un equipo por usuario, también se eliminan únicamente por usuario. Si la aplicación de la Tienda Windows se instala para varios usuarios, solo se elimina el registro del usuario actual. Por ejemplo, si UsuarioA y UsuarioB tienen instalada la aplicación Calculadora y UsuarioA la desinstala, se quitará solo para UsuarioA y no para UsuarioB. Este proceso de eliminación consta de las mismas fases básicas que el proceso de actualización.

Eliminación del registro del paquete

Esta figura muestra la fase en la que el sistema operativo elimina el registro del paquete eliminado:

Eliminación del registro del paquete de implementación eliminado

En el proceso de eliminación del registro se quita la integración de la aplicación de Windows en tiempo de ejecución en la cuenta del usuario. Los datos asociados que se instalaron en la cuenta del usuario, como el estado de la aplicación, también se quitan. De forma similar al proceso de actualización, el motor de implementación debe solicitar la suspensión y terminación de la aplicación mediante el Administrador de vigencia de procesos (PLM) para que se pueda eliminar el registro de la aplicación de la cuenta del usuario.

Nota  Después de que PLM vuelva, la operación continúa eliminando el registro de la aplicación de Windows en tiempo de ejecución de la cuenta del usuario. La operación continúa aunque el PLM no lo haya logrado.
 

Eliminación de la copia intermedia del paquete

Esta figura muestra la fase en la que el sistema operativo elimina la copia intermedia del paquete eliminado:

Eliminación de la copia intermedia del paquete de implementación eliminado

Una vez finalizada la operación de eliminación del registro correctamente, el paquete, si no está siendo usado por otro usuario del sistema operativo, se marca para su eliminación del sistema operativo. Inicialmente, el sistema operativo copia la carpeta del paquete de la aplicación en el directorio %ProgramFiles%\WindowsApps\Deleted. Si no hay otras operaciones de implementación en curso, el sistema operativo elimina la carpeta del paquete de la aplicación.

Nota  

En escenarios multiusuario, el paquete de la aplicación podría quedar instalado en el sistema operativo para otro usuario. En este caso, la copia intermedia del contenido del paquete no se elimina del sistema operativo hasta todos los usuarios lo hayan quitado.

Implementación de paquetes de aplicaciones

A partir de Windows 8.1 y Windows Phone 8.1, puedes implementar paquetes de aplicaciones para optimizar el empaquetamiento y distribución de tu aplicación.

La implementación de lotes de la aplicación a través de Windows en tiempo de ejecución sigue este flujo de trabajo.

Flujo de empaquetado de la aplicación

La implementación de la aplicación de Windows en tiempo de ejecución se realiza en varias fases. Inicialmente, el sistema operativo adquiere y valida el manifiesto del lote de la aplicación, la asignación de bloques de lote y la firma del lote. Después, el sistema operativo comprueba el manifiesto del lote para asegurarse de que haya una aplicación que pueda implementarse en la arquitectura actual. Cuando se encuentra el paquete de la aplicación correcto, el sistema operativo comprueba los criterios de implementación del paquete de la aplicación para asegurarse de que la implementación de la aplicación será correcta.

A continuación, el sistema operativo determina el subconjunto de paquetes de recursos aplicables en la implementación y realiza una copia intermedia de los binarios del paquete en el directorio \WindowsApps\. Finalmente, el sistema operativo registra el paquete de la aplicación y los paquetes de recursos en la cuenta del usuario.

Validación

Después de que el usuario inicia la instalación de una aplicación de Windows en tiempo de ejecución, el sistema operativo debe realizar estas comprobaciones para que la implementación pueda comenzar.

PruebaCondiciones

Compatibilidad de arquitectura

El paquete puede contener hasta tres paquetes de la aplicación específicos de la arquitectura, todos ellos especificados en el manifiesto del paquete de aplicaciones.

Versión mínima del sistema operativo

Los requisitos previos se especifican en el manifiesto del paquete de la aplicación. Expresan el requisito de que haya una versión mínima específica del sistema operativo. Por ejemplo, el número de versión adecuada para Windows 8.1 es 6.3. Para obtener más información sobre los requisitos previos de la aplicación, consulta los requisitos previos para el empaquetado de aplicaciones.

Dependencias de aplicaciones

Las aplicaciones de Windows en tiempo de ejecución pueden expresar una dependencia de otro paquete del componente para obtener la función adicional que necesite la aplicación. Para obtener más información acerca de las dependencias de aplicaciones, consulta el tema sobre las dependencias de empaquetado de aplicaciones.

Espacio en disco

Cada aplicación de Windows en tiempo de ejecución requiere una determinada cantidad de espacio en disco para la implementación. Esta implementación no se llevará a cabo si no hay suficiente espacio en disco para implementar el paquete.

Comprobación de firmas

Se debe comprobar la integridad de cada uno de los archivos del paquete de la aplicación con respecto al BlockMap ya validado.

 

Aplicabilidad del paquete

Después de que el sistema operativo confirme que el lote de la aplicación se puede implementar en el sistema, determina los paquetes de recursos que deben implementarse junto con el paquete de la aplicación para mejorar la experiencia del usuario. La aplicabilidad se comprueba basándose en estos tres calificadores de recursos específicos.

CalificadorDescripción

Idioma del usuario

Los idiomas que el usuario haya agregado a su lista de idiomas preferidos se tendrán en cuenta en el conjunto final de paquetes de recursos de idiomas aplicables que se van a implementar. Windows 8.1 y Windows Phone 8.1, y sus respectivas versiones posteriores, admiten muchas configuraciones regionales e idiomas para los paquetes de recursos.

Escala del sistema

Los valores de escala para todos los monitores se usan para determinar el conjunto final de paquetes de recursos de escala aplicables que se van a implementar. Para Windows 8.1 y Windows Phone 8.1, y sus respectivas versiones posteriores, recomendamos estos factores de escala para los paquetes de recursos:

Windows 8.1 y versiones posteriores:  scale-100, scale-140 y scale-180

Windows Phone 8.1 y versiones posteriores:  scale-100, scale-140 y scale-240

Nivel de característica de DirectX

Todos los niveles de característica de DirectX disponibles en el sistema se usarán para determinar el conjunto final de paquetes de recursos de DirectX aplicables que se van a implementar. Windows 8.1 y Windows Phone 8.1, y sus respectivas versiones posteriores, admiten tres niveles de característica de DirectX para los paquetes de recursos: DXFL-DX9, DXFL-DX10 y DXFL-DX11.

 

Copia intermedia del paquete

Después de que el sistema operativo determine que el lote de la aplicación puede implementarse en el sistema y los paquetes que hay que implementar, el contenido del paquete se descarga en el directorio \WindowsApps\. Se crea un nuevo directorio para cada paquete descargado y se le asigna un nombre creado a partir del valor de nombre de identidad del paquete, como en el ejemplo siguiente.

<Package Name>_<Version>_<Architecture>_<ResourceID>_<Publisher Hash>

El proceso de copia intermedia se produce mediante un conjunto de solicitudes que realiza el motor de implementación al origen de la ubicación del paquete. El origen responde a estas solicitudes, que se devuelven al motor de implementación una vez descomprimidas, se validan con el archivo BlockMap y se copian en el archivo apropiado.

Registro del paquete

El registro del paquete es la fase final del proceso de implementación. Durante esta fase, se producen dos operaciones clave:

  • Las extensiones que se declaran en el manifiesto del paquete de la aplicación se registran en el sistema operativo. Esto permite que la aplicación se integre estrechamente en el sistema operativo. Por ejemplo, si quieres que tu aplicación pueda abrir archivos de texto (.txt), declara una extensión FileTypeAssociation como XML en tu manifiesto del paquete de la aplicación y especifica ".txt" como tipo de archivo.

    En el momento de la implementación, este XML se traduce al conjunto de cambios del sistema necesarios para registrar correctamente la aplicación para que pueda administrar archivos .txt. Tras ello, el modelo de aplicaciones realiza estos cambios en nombre de la aplicación. El modelo de aplicaciones admite muchas extensiones diferentes. Para más información sobre estas extensiones, consulta el tema sobre las extensiones y contratos para aplicaciones.

  • Todos los paquetes de recursos se registran con el sistema de administración de recursos. Este sistema puede usarlos para optimizar la experiencia del usuario cuando se ejecuta la aplicación.

Inventario de paquetes

Como las aplicaciones de Windows en tiempo de ejecución se instalan, actualizan y eliminan, un usuario puede ver en un momento dado qué paquetes de aplicación hay instalados o en copia intermedia.

Nota  Un usuario con privilegios de administrador también puede determinar qué paquetes de aplicación se instalan para todos los usuarios del sistema. Para obtener más información acerca de cómo realizar un inventario de los paquetes que hay en el sistema operativo, consulta las herramientas y cmdlets de PowerShell.

Preguntas más frecuentes

¿Cómo se instalan varios paquetes simultáneamente?

Para instalar varios paquetes, llama a las API de empaquetado varias veces o una vez para todo el conjunto de paquetes que se va a instalar. La implementación subyacente del modelo de aplicaciones permite que haya cualquier número de paquetes de aplicación esperando para su implementación, pero solo se permiten 3 operaciones de copia intermedia simultáneas por usuario (un total de 7 operaciones de copia intermedia simultáneas por sistema operativo) y una operación de registro por sistema operativo.

¿Qué sucede si el paquete ya está instalado?

Si el paquete ya está instalado, ya existe un paquete con la misma identidad de paquete registrado para la cuenta del usuario actual. En este escenario, no se instala el paquete idéntico.

¿Puede una actualización ser obligatoria?

Con el modelo de aplicaciones no se puede hacer que una actualización sea obligatoria. El modelo de actualizaciones es estrictamente opcional. En casos excepcionales, la Tienda puede considerar que una actualización es apropiada para su distribución como actualización de máxima prioridad (como una corrección de seguridad). En este caso, se puede forzar la implementación de la actualización a los clientes.

Nota  

En la edición Enterprise, puedes forzar una actualización mediante una directiva de grupo.

¿Cómo puedo revertir una actualización a la versión anterior?

No se puede revertir una aplicación de Windows en tiempo de ejecución a una versión anterior de la aplicación. Debido a que los datos del paquete de la aplicación se eliminan del sistema operativo poco después de desinstalar el paquete, no hay manera de restaurarlos.

¿Puedo mover mis directorios %ProgramFiles%, %ProgramData% o %UserProfile% a otro lugar?

Este escenario no se admite en las aplicaciones de Windows en tiempo de ejecución y provocará errores al usar la aplicación.

Interfaces de programación de empaquetado e implementación

Windows en tiempo de ejecución

Win32/COM

 

 

Mostrar:
© 2016 Microsoft