Cómo convertir una aplicación de escritorio de Windows en una aplicación universal de Windows

Con la Actualización de aniversario de Windows 10 , Microsoft hace posible que los desarrolladores conviertan las aplicaciones de escritorio tradicionales de Windows en aplicaciones de la Plataforma universal de Windows (UWP). Pero cualquiera puede hacer esto con cualquier aplicación, no solo con los desarrolladores.

Con el convertidor de Windows 10, simplemente dele un archivo .msi o .exe y escupirá un paquete .appx. Luego, puede descargar esta aplicación en su propia PC o, si es el desarrollador de la aplicación, puede enviar la aplicación para UWP resultante a la Tienda Windows. Esta función llegará para todos con la Actualización de aniversario de Windows 10, que traerá muchas aplicaciones «heredadas» a la Tienda Windows .

Por qué querrías hacer esto

Esta característica es el resultado final del Proyecto Centennial de Microsoft, que está diseñado para llevar esas aplicaciones de escritorio Win32 y .NET Windows “heredadas” a la Tienda Windows y la nueva Plataforma Universal de Windows.

Quizás se pregunte por qué alguien querría convertir una aplicación de escritorio en una nueva aplicación para UWP. Por un lado, solo se permiten aplicaciones para UWP en la Tienda Windows. Esto permite a los desarrolladores tener más atención en sus aplicaciones, sin mencionar la instalación con un solo clic, la compra fácil y las actualizaciones automáticas.

La nueva plataforma de aplicaciones para UWP de Microsoft es un espacio aislado, pero las aplicaciones de escritorio que convierta no. Estas aplicaciones tendrán acceso completo a su sistema, al igual que una aplicación de escritorio tradicional. Como dice la documentación de Microsoft : “Como aplicación para UWP, su aplicación puede hacer las cosas que podría hacer como una aplicación de escritorio clásica. Interactúa con una vista virtualizada del registro y el sistema de archivos que es indistinguible del registro y el sistema de archivos reales «.

Las limitaciones

Aquí hay algunas limitaciones importantes. Primero, solo puede hacer esto en la Actualización de aniversario de Windows 10. Por ahora, funcionará con Windows 10 Insider Preview compilación 14316 y superior, por lo que deberá unirse al programa Windows Insider y usar una compilación de Insider Preview de Windows 10 .

Relacionado:  Cómo deshabilitar SMBv1 y proteger su PC con Windows de ataques

Esta función también requiere las ediciones Professional o Enterprise de Windows 10. Los usuarios de Windows 10 Home no podrán utilizar Desktop App Converter. A partir de la compilación 14316, solo funcionaba en Windows 10 Enterprise, pero llegará el soporte para Windows 10 Professional. Actualmente, esta herramienta solo se puede usar en versiones de 64 bits de Windows, y el paquete AppX resultante solo se puede instalar en versiones de 64 bits de Windows. Esto cambiará en futuras versiones de Insider de Windows 10.

Las aplicaciones resultantes están destinadas a PC con Windows 10. No funcionarán en teléfonos inteligentes con Windows 10 Mobile, Xbox One, HoloLens, Surface Hub y otras plataformas de Windows 10 que ejecutan aplicaciones para UWP. Sin embargo, si es un desarrollador, Microsoft ofrece una ruta para convertir su aplicación de escritorio en una aplicación UWP multiplataforma: «Si elige mover toda la funcionalidad de su aplicación de la partición de plena confianza de la aplicación a la partición del contenedor de la aplicación, entonces su aplicación podrá ejecutarse en cualquier dispositivo con Windows 10 «.

Sin embargo, no se admiten algunos tipos de comportamiento de la aplicación. Una aplicación no puede requerir que se ejecute como administrador o utilizar otros tipos de acceso al sistema de bajo nivel. Microsoft proporciona una lista de comportamientos que no están permitidos .

Cómo configurar el convertidor de aplicaciones de escritorio

Suponiendo que está utilizando una versión lo suficientemente nueva de Windows 10 Insider Preview, puede descargar e instalar Desktop App Converter desde el sitio para desarrolladores de Microsoft. Descargue los archivos DesktopAppConverter.zip y BaseImage-14316.wim. Extraiga el archivo DesktopAppConverter.zip descargado a una carpeta en su computadora y coloque el archivo BaseImage en el mismo directorio. (Si hay una nueva compilación de Windows 10 disponible, debería ver un nuevo archivo BaseImage. Deberá usar el archivo BaseImage con el mismo número de versión que la compilación instalada de Windows 10.)

También deberá descargar e instalar el SDK de Windows 10 .

A continuación, abra una ventana de PowerShell como administrador. Para hacerlo, abra el menú Inicio, busque «PowerShell», haga clic con el botón derecho en su acceso directo y seleccione «Ejecutar como administrador».

Cambie la política de ejecución de PowerShell ejecutando el siguiente comando. Acepte el cambio escribiendo ydespués.

Bypass de Set-ExecutionPolicy

Ejecute el siguiente comando, reemplazándolo C:\Users\NAME\Downloads\DesktopAppConvertorpor la ruta al directorio en su computadora:

cd -Path C: \ Users \ NAME \ Downloads \ DesktopAppConvertor

Configure Desktop App Converter ejecutando el siguiente comando:

. \ DesktopAppConverter.ps1 -Setup -BaseImage. \ BaseImage-14316.wim

Si se le pide que reinicie mientras ejecuta cualquiera de estos comandos, reinicie su computadora y luego ejecute el comando nuevamente.

Relacionado:  Ahora Windows 10 tiene actualizaciones C, B y D. ¿Qué es Microsoft Smoking?

Cómo convertir una aplicación de escritorio

Ahora puede ejecutar el DesktopAppConverter.ps1script desde una ventana de Administrador de PowerShell para convertir una aplicación de escritorio en una aplicación para UWP con un solo comando. Necesitará el instalador de la aplicación para hacer esto. Como ejemplo, usaremos VLC aquí.

Para ver la lista detallada de opciones, puede ejecutar el siguiente comando en cualquier momento:

get-help. \ DesktopAppConverter.ps1 -detailed

Aquí hay un comando que puede usar y ajustar para su aplicación:

. \ DesktopAppConverter.ps1 -ExpandedBaseImage C: \ ProgramData \ Microsoft \ Windows \ Images \ BaseImage-14316
 –Installer C: \ Installer \ MyApp.exe -InstallerArguments "/ S" -Destination C: \ Output \ MyApp
 -PackageName "MyApp" -Publisher "CN = <nombre_del_editor>" -Versión 0.0.0.1 -MakeAppx -Verbose

Deberá ajustar el comando para agregar su propio nombre de editor, versión, nombre de paquete y apuntarlo al archivo de instalación y al directorio de destino que prefiera. La -InstallerArguments "/S"opción aquí pasa el /Scambio al instalador, lo que hace que muchos instaladores de aplicaciones se instalen silenciosamente sin ninguna intervención del usuario. Las aplicaciones deben ser instalables sin ninguna entrada del usuario o no podrá convertirlas.

El instalador de la aplicación debe estar en su propio directorio sin ningún otro archivo, ya que los archivos en el mismo directorio que el instalador se copiarán en el paquete .appx resultante.

Por ejemplo, estamos usando VLC aquí, así que aquí está el comando que usaríamos:

. \ DesktopAppConverter.ps1 -ExpandedBaseImage C: \ ProgramData \ Microsoft \ Windows \ Images \ BaseImage-14316
 –Installer C: \ Users \ chris \ Downloads \ vlc \ vlc-2.2.2-win32.exe -InstallerArguments "/ S" -Destination C: \ Output \ VLC
 -PackageName "VLC" -Editor "CN = VideoLAN" -Version 0.2.2.2 -MakeAppx -Verbose

La herramienta le proporcionará un paquete .appx, que es la versión para UWP de la aplicación.

Cómo instalar la aplicación sin firmarla

Normalmente, es necesario firmar aplicaciones con una firma válida antes de que se puedan instalar. Microsoft recomienda crear un certificado autofirmado y firmar la aplicación con eso en su computadora. Puede hacerlo usando las instrucciones a continuación, si lo desea.

Relacionado:  Cómo buscar todos los archivos de su PC en el menú de inicio de Windows 10

Sin embargo, si solo desea instalar la aplicación en su propia computadora, puede hacerlo usted mismo más rápido, sin interferir con las firmas. Windows 10 le permite instalar aplicaciones sin firmarlas si está instalando una aplicación «sin empaquetar» desde un directorio.

Para hacer esto, abra una ventana de PowerShell como administrador y ejecute el siguiente comando:

Add-AppxPackage -Path C: \ Path \ to \ AppxManifest.xml -Register

Encontrará el archivo AppxManifest.xml junto al archivo Application.appx en el directorio de salida que especificó.

Ahora puede iniciar la aplicación desde su menú Inicio. Será una «aplicación de Windows» en lugar de una «aplicación de escritorio», pero por lo demás se verá y funcionará como una aplicación de escritorio normal.

Cómo firmar e instalar la aplicación

No es necesario que siga estas instrucciones si ya ha instalado la aplicación. Esta es la forma más difícil.

Normalmente, solo puede instalar un paquete .appx si tiene una firma válida. Microsoft recomienda usar la aplicación signtool.exe incluida con el SDK de Windows 10 para crear un certificado autofirmado, que le permitirá instalar y probar la aplicación en su propia computadora.

Simplemente abra una ventana del símbolo del sistema como administrador y ejecute los siguientes comandos para crear un certificado autofirmado y firmar el paquete .appx con él:

cd "C: \ Archivos de programa (x86) \ Windows Kits \ 10 \ bin \ x64"
MakeCert.exe -r -h 0 -n "CN = Publisher" -eku 1.3.6.1.5.5.7.3.3 -pe -sv my.pvk my.cer
pvk2pfx.exe -pvk my.pvk -spc my.cer -pfx my.pfx
signtool.exe sign -f my.pfx -fd SHA256 -v C: \ Path \ to \ application.appx

Tenga en cuenta que el editor que especifique, que es el, debe "CN=Publisher"coincidir con el editor que especificó anteriormente al crear el archivo AppX. Entonces, continuando con nuestro ejemplo de VLC anterior, tendríamos que usar "CN=VideoLAN".

Se le pedirá que ingrese una contraseña. Puede dejar la contraseña en blanco.

Ahora puede instalar el paquete .appx en una ventana de PowerShell (Administrador) con el comando Add-AppxPackage:

Add-AppxPackage C:\Path\to\application.appx

This feature can be used by anyone, but only developers–and maybe some system administrators–will want to go this route. Luckily, the process is extremely easy for developers.