1Sep

Como converter uma aplicação de desktop do Windows em uma aplicação Universal Windows

Com a atualização do aniversário do Windows 10, a Microsoft está permitindo que os desenvolvedores convertam aplicativos de desktop tradicionais do Windows em aplicativos de plataforma Universal Windows Platform( UWP).Mas qualquer um pode fazer isso com qualquer aplicativo - não apenas desenvolvedores.

Com o conversor do Windows 10, dê um arquivo. msi ou. exe e cuspir um pacote. appx. Você pode fazer o uso desse aplicativo em seu próprio PC, ou - se você for o desenvolvedor do aplicativo - você pode enviar o aplicativo UWP resultante para a loja do Windows. Este recurso chegará para todos com a atualização do aniversário do Windows 10, trazendo muitos aplicativos "legados" para a loja do Windows.

Por que você quer fazer isso

Este recurso é o resultado final do Project Centennial da Microsoft, que é projetado para trazer esses aplicativos de desktop "legacy" Win32 e. NET Windows para a loja do Windows e a nova Plataforma Universal Windows.

Você pode se perguntar por que alguém quereria converter um aplicativo de desktop para um novo aplicativo UWP.Por um lado, apenas as aplicações UWP são permitidas na loja do Windows. Isso permite aos desenvolvedores obter muito mais olhos em suas aplicações, para não mencionar instalação de um único clique, fácil de comprar e atualizações automáticas.

A nova plataforma de aplicativos da Microsoft também é caixa de areia, por isso há um benefício de segurança para converter aplicativos antigos em aplicativos UWP.A ferramenta de conversão irá analisar o comportamento do seu desktop e criar um sandbox apenas para ele, dando-lhe apenas as permissões necessárias para executar corretamente. Se o aplicativo estiver comprometido, não será capaz de sair dessa caixa de areia limitada e mexer com o resto do sistema. Os aplicativos serão instalados e desinstalados de forma limpa sem deixar o lixo no sistema de arquivos e no registro.

As aplicações resultantes ainda são poderosas, apesar da sandbox. Esses aplicativos podem usar recursos UWP, mas devem ser tão poderosos quanto um aplicativo de desktop tradicional. Como a documentação da Microsoft diz: "Como um aplicativo UWP, seu aplicativo pode fazer as coisas que poderia fazer como um aplicativo de desktop clássico. Ele interage com uma visão virtualizada do registro e do sistema de arquivos que é indistinguível do sistema de registro e arquivo atual. "

Limitações

Há algumas limitações importantes aqui. Primeiro, você só pode fazer isso no Windows 10 Anniversary Update. Por enquanto, funcionará com o Windows 10 Insider Preview compilação 14316 e superior, então você precisará se juntar ao programa Insider do Windows e usar uma versão de Insider Preview do Windows 10.

Este recurso também requer as edições Professional ou Enterprise deWindows 10. Os usuários domésticos do Windows 10 não poderão usar o Conversor de aplicativos da área de trabalho. A partir da compilação 14316, ele só funcionou no Windows 10 Enterprise, mas o suporte para o Windows 10 Professional está chegando. Atualmente, esta 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 do Windows 10.Eles não funcionarão nos smartphones móveis do Windows 10, Xbox One, HoloLens, Surface Hub e outras plataformas do Windows 10 que executem aplicativos UWP.No entanto, se você é um desenvolvedor, a Microsoft oferece um caminho para obter seu aplicativo de desktop em um aplicativo UWP multi-plataforma: "Se você optar por mover toda a funcionalidade do seu aplicativo para fora da partição de confiança total do aplicativo e nopartição do contêiner do aplicativo, seu aplicativo poderá ser executado em qualquer dispositivo do Windows 10. "

No entanto, alguns tipos de comportamento do aplicativo não são suportados. Um aplicativo não pode exigir que ele 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 do aplicativo de mesa

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

Você também precisa baixare instale o SDK do Windows 10.

Em seguida, abra uma janela do PowerShell como Administrador. Para fazer isso, abra o menu Iniciar, procure "PowerShell", clique com o botão direito do mouse em seu atalho e selecione "Executar como administrador".

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

Set-ExecutionPolicy bypass

Execute o comando abaixo, substituindo C: \ Users \ NAME \ Downloads \ DesktopAppConvertor com o caminho para o diretório no seu computador:

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

Configure oDesktop App Converter, executando o seguinte comando:

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

Se você for solicitado a reiniciar ao executar qualquer um desses comandos, reinicie seu computador e depois execute o comando novamente.

Como converter uma aplicação desktop

Agora você pode executar o script DesktopAppConverter.ps1 a partir de uma janela do PowerShell do administrador para converter um aplicativo 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 -

detalhado Aqui está um comando que você pode usar e ajustar para sua aplicação:

. \ 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 = & lt; publisher_name & gt; "-Versão 0.0.0.1 -MakeAppx -Verbose

Você precisará ajustar o comando para adicionar seu próprio nome de editor, versão, nome do pacote e apontá-lo no arquivo do instalador e no diretório de destino que você preferir. A opção -InstallerArguments "/ S" aqui passa a opção / S para o instalador, o que faz instalar muitas instaladoras de aplicativos silenciosamente sem qualquer entrada 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 outros arquivos, pois os arquivos no mesmo diretório que o instalador serão copiados para o pacote. appx resultante.

Por exemplo, estamos usando o VLC aqui, então aqui está o comando que usamos:

. \ 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" -Publisher "CN = VideoLAN" -Versão 0.2.2.2 -MakeAppx -Verbose

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

Como instalar a aplicação sem assinar isso

Você normalmente é obrigado a assinar aplicativos com uma assinatura válida antes de poderem ser instalados. A Microsoft recomenda a criação de um certificado auto-assinado e a assinatura do aplicativo com o seu computador. Você pode fazer isso usando as instruções abaixo, se desejar.

No entanto, se você quiser instalar o aplicativo em seu próprio computador, pode fazê-lo mais rápido, sem mexer com nenhuma assinatura. O Windows 10 permite que você instale aplicativos sem assiná-los se você estiver instalando um aplicativo "descompactado" 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 ao lado do aplicativo.arquivo appx no diretório de saída que você especificou.

Agora você pode iniciar o aplicativo no menu Iniciar. Será um "aplicativo do Windows" em vez de um "aplicativo da área de trabalho", mas de outra forma parecerá e funcionará como um aplicativo de desktop normal.

Como assinar e instalar o aplicativo

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

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

Apenas abra uma janela do prompt de comando como administrador e execute os seguintes comandos para criar um certificado auto-assinado e assine 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 -svmy.pvk my.cer pvk2pfx.exe -pvk my.pvk -spc my.cer -pfx my.pfx signtool.exe sinal -f my.pfx -fd SHA256 -v C: \ Caminho \ para \ application.appx

Notaque o editor que você especifica - esse é o "CN = Editor" - deve corresponder ao editor que você especificou anteriormente ao criar o arquivo AppX.Então, continuando com o nosso exemplo VLC de cima, teríamos que usar "CN = VideoLAN".

Você será solicitado a digitar uma senha. Você pode simplesmente 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

Esse recurso pode ser usado por qualquer pessoa, mas apenas desenvolvedores,e talvez alguns administradores de sistema - quererão seguir esta rota. Afortunadamente, o processo é extremamente fácil para os desenvolvedores, assumindo que suas aplicações não requerem nenhuma funcionalidade que não seja suportada pelo sandbox UWP.