¿Por qué el archivo .exe de una aplicación moderna no se ejecuta y produce un error relacionado con el contenedor de la aplicación?

¿Por qué el archivo .exe de una aplicación moderna no se ejecuta y produce un error relacionado con el contenedor de la aplicación?

Dentro de la C:\Program Files\WindowsApplicationscarpeta están los archivos .exe para las aplicaciones modernas de mi PC. Cuando hago doble clic en uno de ellos, una ventana emergente me dice:

This application can run only in the context of an app container

¿Existe alguna manera de ejecutar una aplicación moderna directamente desde su archivo .exe y no solo desde su mosaico?

¡Gracias de antemano!

PD: estoy en la vista previa técnica de Windows 10.

Respuesta1

Antes de Windows 8, podía tener aplicaciones .exe "independientes". La instalación consistía principalmente en crear enlaces y referencias para facilitar que la aplicación encontrara lo que necesitaba y se ejecutara. Si todo lo que la aplicación necesita lo proporciona la propia aplicación, podría ejecutarse sin instalación. El contenedor de aplicaciones es un concepto de seguridad introducido con Win 8. Sin instalación, una aplicación tiene acceso a sus propias carpetas y poco más, incluida la mayoría de los dispositivos. Una aplicación debe estar diseñada para funcionar con contenedores de aplicaciones para poder instalarse. Esteenlacetiene una descripción decente del concepto y cómo funciona.

Editar: para una aplicación instalada, parece que todas las asociaciones y permisos están adjuntos al mosaico, por lo que el archivo .exe no se puede ejecutar directamente.

Respuesta2

Puede ejecutar una aplicación moderna de Windows desde la línea de comandos usando un comando de shell explorer.exe como este:

explorer.exe shell:AppsFolder\<Package Name>_<Publisher ID>!<App ID>

O, a través de inicio, lo cual se recomienda si necesita pasar argumentos:

start shell:AppsFolder\<Package Name>_<Publisher ID>!<App ID> arg1 arg2

El truco consiste en descubrir el nombre del paquete, el ID del editor y el ID de la aplicación. Sería bueno si toda esta información estuviera disponible en la lista de Microsoft Store para la aplicación, o en el Administrador de tareas, o en la lista de la aplicación en Configuración -> Aplicaciones y características. Hasta ahora, no he encontrado una manera fácil de recopilar esos tres datos. Estos son los pasos para hacerlo usando el Administrador de tareas y el Explorador de archivos, copiados demi entrada de blog.

  1. Abra la aplicación moderna como lo haría normalmente, desde el menú Inicio, la barra de tareas, etc.
  2. Inicie el Administrador de tareas (hago clic derecho en la barra de tareas de Windows y elijo "Administrador de tareas")
  3. Expanda la lista de la aplicación que le interesa, haga clic derecho en el elemento secundario y elija "Ir a detalles".
  4. Haga clic derecho en el ejecutable resaltado y elija "Abrir ubicación del archivo".
  5. El nombre del directorio que acaba de abrir le proporciona el nombre del paquete y el ID del editor, si sabe cómo analizarlos. Usando la aplicación Calendario como ejemplo, el nombre del directorio, "microsoft.windowscommunicationsapps_16005.12827.20560.0_x64__8wekyb3d8bbwe", comienza con el nombre del paquete ("microsoft.windowscommunicationsapps"), va seguido de información de versión y plataforma que no necesita para esto. ("16005.12827.20560.0_x64") y luego viene el ID del editor ("8wekyb3d8bbwe"). Anote el nombre del paquete y el ID del editor para su uso posterior.
  6. Abra el archivo AppxManifest.xml en ese directorio
  7. Cerca de la parte superior del archivo AppxManifest.xml, encontrará un elemento Identidad, con un atributo Nombre; confirme que este valor coincida con el nombre del paquete, que ya obtuvimos del nombre del directorio.
  8. Busque en el archivo AppxManifest.xml el nombre del ejecutable, por ejemplo, HxCalenderAppImm.exe, y encontrará un elemento XML similar a este:
Esto le brinda la tercera información que necesita: el ID de la aplicación.

Ahora que ha recopilado los tres datos que necesitamos, puede crear el comando para abrir la aplicación desde la línea de comandos.

  1. Su comando se verá así, reemplazando las partes con los tres datos recopilados anteriormente:

    explorer.exe shell:AppsFolder\<Package Name>_<Publisher ID>!<App ID>

Continuando con el ejemplo de la aplicación Calendario del paquete Correo y Calendario, ingresaría algo como esto:

explorer.exe shell:AppsFolder\microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.calendar

Estimado Microsoft: ¡Haz esto más fácil!

Respuesta3

Creo que ahora es posible, al menos de alguna manera. La aplicación "Windows Scan", por ejemplo, se puede convertir en un acceso directo utilizando "Microsoft.WindowsScan_8wekyb3d8bbwe!App" como destino.

información relacionada