Como converter um aplicativo da área de trabalho do Windows em um aplicativo universal do Windows

Com a atualização de aniversário do Windows 10 , a Microsoft está possibilitando que os desenvolvedores convertam os aplicativos de desktop tradicionais do Windows em aplicativos da Plataforma Universal do Windows (UWP). Mas qualquer pessoa pode fazer isso com qualquer aplicativo – não apenas os desenvolvedores.

Com o conversor do Windows 10, basta fornecer um arquivo .msi ou .exe e ele gerará um pacote .appx. Você pode então fazer o sideload desse aplicativo em seu PC ou – se você for o desenvolvedor do aplicativo – você pode enviar o aplicativo UWP resultante para a Windows Store. Esse recurso chegará para todos com a Atualização de Aniversário do Windows 10, trazendo muitos aplicativos “legados” para a Windows Store .

Por que você gostaria de fazer isso

Este recurso é o resultado final do Projeto Centenário da Microsoft, que foi projetado para trazer os aplicativos de desktop Win32 e .NET “herdados” do Windows para a Windows Store e a nova Plataforma Universal do Windows.

Você pode se perguntar por que alguém iria querer converter um aplicativo de desktop em um novo aplicativo UWP. Por um lado, apenas aplicativos UWP são permitidos na Windows Store. Isso permite que os desenvolvedores tenham muito mais atenção em seus aplicativos, sem mencionar a instalação com um único clique, a fácil compra e as atualizações automáticas.

A nova plataforma de aplicativos UWP da Microsoft é isolada, mas os aplicativos de desktop que você converte não. Esses aplicativos terão acesso total ao seu sistema, assim como um aplicativo de desktop tradicional. Como diz a documentação da Microsoft : “Como um aplicativo UWP, seu aplicativo é capaz de fazer as coisas que faria como um aplicativo de desktop clássico. Ele interage com uma visão virtualizada do registro e do sistema de arquivos que não pode ser distinguida do registro e do sistema de arquivos reais. ”

As limitações

Existem algumas limitações importantes aqui. Primeiro, você só pode fazer isso na atualização de aniversário do Windows 10. Por enquanto, ele funcionará com o Windows 10 Insider Preview build 14316 e superior, então você precisará ingressar no programa Windows Insider e  usar um Insider Preview do Windows 10 .

Recomendado:  Como definir o Windows Media Player como padrão no Windows 10

Este recurso também requer as edições Professional ou Enterprise do Windows 10. Os usuários do Windows 10 Home não poderão usar o Desktop App Converter. Na compilação 14316, ele funcionava apenas no Windows 10 Enterprise, mas o suporte para o Windows 10 Professional está chegando. Atualmente, essa ferramenta só pode ser usada em versões de 64 bits do Windows, e o pacote AppX resultante só pode ser instalado em versões de 64 bits do Windows. Isso mudará nas futuras compilações do Insider do Windows 10.

Os aplicativos resultantes são destinados a PCs com Windows 10. Eles não funcionam em smartphones Windows 10 Mobile, Xbox One, HoloLens, Surface Hub e as outras plataformas Windows 10 que executam aplicativos UWP. No entanto, se você for um desenvolvedor, a Microsoft oferece um caminho para colocar seu aplicativo de desktop em um aplicativo UWP de plataforma cruzada: “Se você decidir mover todas as funcionalidades do seu aplicativo da partição de confiança total do aplicativo para o partição de contêiner de aplicativo, então seu aplicativo poderá ser executado em qualquer dispositivo Windows 10. ”

No entanto, alguns tipos de comportamento de aplicativo não são suportados. Um aplicativo não pode exigir que seja executado como Administrador ou use outros tipos de acesso ao sistema de baixo nível. A Microsoft fornece uma lista de comportamentos que não são permitidos .

Como configurar o conversor de aplicativos para desktop

Supondo que você esteja usando uma compilação nova o suficiente do Windows 10 Insider Preview, você pode baixar e instalar o  Desktop App Converter no site de desenvolvedores da Microsoft. Baixe os arquivos DesktopAppConverter.zip e BaseImage-14316.wim. Extraia o arquivo DesktopAppConverter.zip baixado para uma pasta em seu computador e coloque o arquivo BaseImage no mesmo diretório. (Se houver uma nova versão do Windows 10 disponível, você deverá ver um novo arquivo BaseImage. Você precisará usar o arquivo BaseImage com o mesmo número de versão da versão instalada do Windows 10.)

Você também precisará baixar e instalar o Windows 10 SDK .

Em seguida, abra uma janela do PowerShell como Administrador. Para fazer isso, abra o menu Iniciar, pesquise “PowerShell”, clique com o botão direito no atalho e selecione “Executar como Administrador”.

Recomendado:  Como usar o BitLocker sem um Módulo de plataforma confiável (TPM)

Altere a política de execução do PowerShell executando o seguinte comando. Concorde com a mudança digitando ydepois.

Bypass Set-ExecutionPolicy

Execute o comando abaixo, substituindo C:\Users\NAME\Downloads\DesktopAppConvertorpelo caminho para o diretório em seu computador:

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

Configure o Desktop App Converter executando o seguinte comando:

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

Se for solicitado que você reinicie enquanto executa qualquer um desses comandos, reinicie o computador e execute o comando novamente.

Como converter um aplicativo de desktop

Agora você pode executar o DesktopAppConverter.ps1script em uma janela do Administrador do PowerShell para converter um aplicativo de desktop em um aplicativo UWP em um único comando. Você precisará do instalador do aplicativo para fazer isso. Como exemplo, usaremos o VLC aqui.

Para visualizar a lista detalhada de opções, você pode executar o seguinte comando a qualquer momento:

get-help. \ DesktopAppConverter.ps1 -detailed

Este é um comando que você pode usar e ajustar para seu aplicativo:

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

Você precisará ajustar o comando para adicionar seu próprio nome de editor, versão, nome de pacote e apontá-lo para o arquivo do instalador e o diretório de destino de sua preferência. A -InstallerArguments "/S"opção aqui passa a /Smudança para o instalador, o que faz com que muitos instaladores de aplicativos sejam instalados silenciosamente, sem qualquer intervenção do usuário. Os aplicativos devem ser instaláveis ​​sem qualquer entrada do usuário ou você não pode convertê-los.

O instalador do aplicativo deve estar em seu próprio diretório, sem quaisquer outros arquivos, pois os arquivos no mesmo diretório do instalador serão copiados para o pacote .appx resultante.

Por exemplo, estamos usando VLC aqui, então aqui está o 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" -Destino C: \ Output \ VLC
 -PackageName "VLC" -Publisher "CN = VideoLAN" -Versão 0.2.2.2 -MakeAppx -Verbose

A ferramenta fornecerá um pacote .appx, que é a versão UWP do aplicativo.

Como instalar o aplicativo sem assiná-lo

Normalmente, você precisa assinar aplicativos com uma assinatura válida antes que possam ser instalados. A Microsoft recomenda criar um certificado autoassinado e assinar o aplicativo com ele em seu computador. Você pode fazer isso usando as instruções abaixo, se desejar.

Recomendado:  Reduza a fadiga ocular e durma melhor usando f.lux no seu computador

No entanto, se você deseja apenas instalar o aplicativo em seu computador, pode fazer isso mais rápido, sem mexer em nenhuma assinatura. O Windows 10 permite que você instale aplicativos sem assiná-los se estiver instalando um aplicativo “desempacotado” de um diretório.

Para fazer isso, abra uma janela do PowerShell como administrador e execute o seguinte comando:

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

Você encontrará o arquivo AppxManifest.xml próximo ao arquivo Application.appx no diretório de saída especificado.

Agora você pode iniciar o aplicativo a partir do menu Iniciar. Será um “aplicativo do Windows” em vez de um “aplicativo de área de trabalho”, mas, de outra forma, terá a aparência e o funcionamento de um aplicativo de área de trabalho normal.

Como assinar e instalar o aplicativo

Você não precisa seguir essas instruções se já tiver instalado o aplicativo. Esta é a maneira mais difícil.

Normalmente, você só pode instalar um pacote .appx se ele tiver uma assinatura válida. A Microsoft recomenda usar o aplicativo signtool.exe incluído no SDK do Windows 10 para criar um certificado autoassinado, que permitirá que você instale e teste o aplicativo em seu próprio computador.

Basta abrir uma janela de Prompt de Comando como Administrador e executar os seguintes comandos para criar um certificado autoassinado e assinar o pacote .appx com ele:

cd "C: \ Arquivos de programas (x86) \ Windows Kits \ 10 \ bin \ x64"
MakeCert.exe -r -h 0 -n "CN = Editor" -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

Observe que o editor que você especificar – esse é o "CN=Publisher"– deve corresponder ao editor que você especificou antes ao criar o arquivo AppX. Então, continuando com nosso exemplo VLC acima, teríamos que usar "CN=VideoLAN".

Você será solicitado a inserir uma senha. Você pode apenas deixar a senha em branco.

Agora você pode instalar o pacote .appx em uma janela do PowerShell (administrador) com o comando Add-AppxPackage:

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

Este recurso pode ser usado por qualquer pessoa, mas apenas os desenvolvedores – e talvez alguns administradores de sistema – irão querer seguir esse caminho. Felizmente, o processo é extremamente fácil para os desenvolvedores.