Página principal » cómo » Cómo convertir una aplicación de escritorio de Windows en una aplicación universal de Windows

    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 está haciendo posible que los desarrolladores conviertan las aplicaciones de escritorio tradicionales de Windows a las 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, solo dale 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 UWP resultante a la Tienda Windows. Esta función llegará para todos con la actualización de aniversario de Windows 10, que trae muchas aplicaciones "heredadas" a la Tienda Windows.

    Por qué querrías hacer esto

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

    Podría preguntarse por qué alguien querría convertir una aplicación de escritorio en una nueva aplicación UWP. Por un lado, solo las aplicaciones UWP están permitidas en la Tienda Windows. Esto permite a los desarrolladores tener más en cuenta 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 UWP de Microsoft está en un espacio aislado, pero las aplicaciones de escritorio que convierte no lo son. 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 una aplicación UWP, su aplicación puede hacer lo 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 no se puede distinguir del registro real y el sistema de archivos".

    Las limitaciones

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

    Esta función también requiere las ediciones Professional o Enterprise de Windows 10. Los usuarios de Windows 10 Home no podrán usar el Convertidor de aplicaciones de escritorio. A partir de la compilación 14316, solo funcionó en Windows 10 Enterprise, pero está disponible el soporte para Windows 10 Professional. Actualmente, esta herramienta solo se puede utilizar en versiones de Windows de 64 bits, y el paquete AppX resultante solo se puede instalar en versiones de Windows de 64 bits. Esto cambiará en futuras compilaciones internas de Windows 10.

    Las aplicaciones resultantes están destinadas a PC con Windows 10. No funcionarán en los teléfonos inteligentes con Windows 10 Mobile, Xbox One, HoloLens, Surface Hub y otras plataformas Windows 10 que ejecutan aplicaciones UWP. Sin embargo, si usted es un desarrollador, Microsoft ofrece una ruta para llevar su aplicación de escritorio a 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 la partición del contenedor de aplicaciones, entonces su aplicación podrá ejecutarse en cualquier dispositivo con Windows 10 ".

    Sin embargo, algunos tipos de comportamiento de aplicaciones no son compatibles. Una aplicación no puede requerir que se ejecute como Administrador o utilice otros tipos de acceso de 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 suficientemente nueva de la Vista previa interna de Windows 10, puede descargar e instalar el convertidor de aplicaciones de escritorio desde el sitio de desarrolladores de Microsoft. Descargue los archivos DesktopAppConverter.zip y BaseImage-14316.wim. Extraiga el archivo descargado DesktopAppConverter.zip en una carpeta de su computadora y coloque el archivo BaseImage en el mismo directorio. (Si hay una nueva versió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 versió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. De acuerdo con el cambio escribiendo y después.

    Set-ExecutionPolicy bypass

    Ejecute el siguiente comando, reemplazando C: \ Users \ NAME \ Downloads \ DesktopAppConvertor con la ruta al directorio en su computadora:

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

    Configure el convertidor de aplicaciones de escritorio 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.

    Cómo convertir una aplicación de escritorio

    Ahora puede ejecutar el DesktopAppConverter.ps1 script desde una ventana de Administrador PowerShell para convertir una aplicación de escritorio en una aplicación UWP en 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" - Editor "CN =" -Versión 0.0.0.1 -MakeAppx -Verbose

    Deberá ajustar el comando para agregar su propio nombre de editor, versión, nombre del paquete y señalarlo al archivo de instalación y al directorio de destino que prefiera. los -Archivos de instalación "/ S" La opción aquí pasa el / S cambie al instalador, lo que hace que muchos instaladores de aplicaciones se instalen de forma silenciosa sin la intervención del usuario. Las aplicaciones deben ser instalables sin la intervención del usuario o no se pueden convertir..

    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" -Versión 0.2.2.2 -MakeAppx -Verbose

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

    Cómo instalar la aplicación sin firmarla

    Normalmente se requieren aplicaciones de firma con una firma válida antes de que puedan instalarse. 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.

    Sin embargo, si solo desea instalar la aplicación en su propia computadora, puede hacerlo usted mismo más rápido, sin meterse con ninguna firma. Windows 10 le permite instalar aplicaciones sin firmarlas si está instalando una aplicación "desempaquetada" 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 el menú Inicio. Será una "aplicación de Windows" en lugar de una "aplicación de escritorio", pero de lo contrario 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 manera mas dificil.

    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 con él el paquete .appx:

    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 es el "CN = Publisher" -debe coincidir con el editor que especificó anteriormente al crear el archivo AppX. Entonces, continuando con nuestro ejemplo VLC de arriba, tendríamos que usar "CN = VideoLAN" .

    Se le pedirá que ingrese una contraseña. Puedes 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

    Cualquiera puede usar esta función, pero solo los desarrolladores (y quizás algunos administradores de sistemas) querrán seguir esta ruta. Por suerte, el proceso es extremadamente fácil para los desarrolladores..