1Sep

Come convertire un'applicazione desktop Windows in un'applicazione Windows universale

Con l'aggiornamento Anniversario di Windows 10, Microsoft consente agli sviluppatori di convertire le tradizionali applicazioni desktop Windows in applicazioni Universal Windows Platform( UWP).Ma chiunque può farlo con qualsiasi app, non solo con gli sviluppatori.

Con il convertitore di Windows 10, basta dargli un file. msi o. exe e si sputerà un pacchetto. appx.È quindi possibile caricare l'app sul PC, oppure, se si è lo sviluppatore dell'applicazione, è possibile inviare l'app UWP risultante a Windows Store. Questa funzione arriverà per tutti con l'Aggiornamento Anniversario di Windows 10, portando molte applicazioni "legacy" a Windows Store.

Perché vuoi farlo

Questa funzione è il risultato finale del Project Centennial di Microsoft, progettato per portare quelle "legacy" applicazioni desktop Windows Win32 e. NET a Windows Store e alla nuova piattaforma Windows universale.

Ci si potrebbe chiedere perché qualcuno vorrebbe convertire un'applicazione desktop in una nuova app UWP.Per prima cosa, solo le app UWP sono consentite in Windows Store. Ciò consente agli sviluppatori di avere molti più occhi sulle loro app, per non parlare dell'installazione con un solo clic, degli acquisti facili e degli aggiornamenti automatici.

La nuova piattaforma applicativa di Microsoft è anche in modalità sandbox, quindi c'è un vantaggio di sicurezza nella conversione di vecchie app in app UWP.Lo strumento di conversione analizzerà il comportamento dell'app desktop e creerà una sandbox solo per esso, assegnando solo le autorizzazioni necessarie per funzionare correttamente. Se l'applicazione è compromessa, non sarà in grado di uscire da quella sandbox limitata e fare confusione con il resto del sistema. Le applicazioni verranno installate e disinstallate in modo pulito senza lasciare cianfrusaglie nel file system e nel registro.

Le applicazioni risultanti sono ancora potenti, nonostante la sandbox. Queste applicazioni possono utilizzare le funzionalità UWP, ma dovrebbero essere altrettanto potenti di un'applicazione desktop tradizionale. Come dice la documentazione di Microsoft: "Come app UWP, la tua app è in grado di fare le cose che potrebbe fare come una classica app desktop. Interagisce con una vista virtualizzata del registro e del file system che è indistinguibile dal registro e dal file system effettivi. "

The Limitations

Ci sono alcune limitazioni importanti qui. Innanzitutto, puoi farlo solo nell'aggiornamento di Windows 10.Per ora, funzionerà con Windows 10 Insider Preview build 14316 e versioni successive, quindi dovrai unirti al programma Windows Insider e utilizzare una build Insider Preview di Windows 10.

Questa funzione richiede anche le edizioni Professional o Enterprise diWindows 10. Gli utenti Windows 10 Home non saranno in grado di utilizzare il convertitore di app desktop. A partire dalla build 14316, ha funzionato solo su Windows 10 Enterprise, ma il supporto per Windows 10 Professional è in arrivo. Attualmente, questo strumento può essere utilizzato solo su versioni a 64 bit di Windows e il pacchetto AppX risultante può essere installato solo su versioni a 64 bit di Windows. Questo cambierà nelle future build di Insider di Windows 10.

Le applicazioni risultanti sono destinate ai PC Windows 10.Non funzioneranno su smartphone Windows 10 Mobile, Xbox One, HoloLens, Surface Hub e altre piattaforme Windows 10 che eseguono app UWP.Tuttavia, se sei uno sviluppatore, Microsoft offre un percorso per portare la tua applicazione desktop in un'applicazione UWP multipiattaforma: "Se scegli di spostare tutte le funzionalità della tua app fuori dalla partizione piena attendibilità dell'app e nelpartizione del contenitore dell'app, quindi l'app sarà in grado di essere eseguita su qualsiasi dispositivo Windows 10. "

Tuttavia, alcuni tipi di comportamento dell'applicazione non sono supportati. Un'applicazione non può richiedere che venga eseguita come amministratore o utilizzare altri tipi di accesso al sistema di basso livello. Microsoft fornisce un elenco di comportamenti non consentiti.

Come configurare il convertitore app desktop

Supponendo che si stia utilizzando una versione abbastanza nuova di Windows 10 Insider Preview, è possibile scaricare e installare il convertitore app desktop dal sito per sviluppatori Microsoft. Scarica entrambi i file DesktopAppConverter.zip e BaseImage-14316.wim. Estrarre il file DesktopAppConverter.zip scaricato in una cartella sul computer e posizionare il file BaseImage nella stessa directory.(Se è disponibile una nuova build di Windows 10, dovresti vedere un nuovo file BaseImage. Dovrai usare il file BaseImage con lo stesso numero di versione della build installata di Windows 10.)

Dovrai anche scaricaree installare l'SDK di Windows 10.

Quindi, aprire una finestra di PowerShell come amministratore. Per fare ciò, apri il menu Start, cerca "PowerShell", fai clic con il pulsante destro del mouse sul suo collegamento e seleziona "Esegui come amministratore".

Modifica il criterio di esecuzione di PowerShell eseguendo il seguente comando. Accettare il cambiamento digitando y in seguito.

Set-ExecutionPolicy bypass

Eseguire il comando seguente, sostituendo C: \ Users \ NAME \ Download \ DesktopAppConvertor con il percorso della directory sul computer:

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

Impostare ilDesktop App Converter eseguendo il seguente comando:

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

Se viene chiesto di riavviarsi mentre si esegue uno di questi comandi, riavviare il computer e quindi eseguire di nuovo il comando.

Come convertire un'applicazione desktop

Ora è possibile eseguire lo script DesktopAppConverter.ps1 da una finestra di PowerShell dell'amministratore per convertire un'applicazione desktop in un'applicazione UWP in un singolo comando. Avrai bisogno del programma di installazione dell'applicazione per farlo. Ad esempio, useremo VLC qui.

Per visualizzare l'elenco dettagliato delle opzioni, è possibile eseguire il comando seguente in qualsiasi momento:

get-help. \ DesktopAppConverter.ps1 -detailed

Ecco un comando che è possibile utilizzare e regolare per l'applicazione:

. \ DesktopAppConverter.ps1 -ExpandedBaseImage C: \ ProgramData \ Microsoft \ Windows \ Images \ BaseImage-14316 -Installer C: \ Installer \ MyApp.exe -InstallerArguments "/ S" -Destinazione C: \ Output \ MyApp -PackageName "MyApp" -Publisher "CN = & lt; PUBLISHER_NAME & gt;"-Version 0.0.0.1 -MakeAppx -Verbose

Dovrai modificare il comando per aggiungere il nome del publisher, la versione, il nome del pacchetto e puntarlo nel file di installazione e nella directory di destinazione che preferisci. L'opzione -InstallerArguments "/ S" passa qui l'opzione / S al programma di installazione, il che rende l'installazione di molti programmi di installazione invisibile all'utente senza alcun input da parte dell'utente. Le applicazioni devono essere installabili senza l'input dell'utente o non è possibile convertirle.

Il programma di installazione dell'applicazione deve trovarsi nella propria directory senza altri file, poiché i file nella stessa directory del programma di installazione verranno copiati nel pacchetto. appx risultante.

Ad esempio, stiamo usando VLC qui, quindi ecco il comando che useremmo:

. \ DesktopAppConverter.ps1 -ExpandedBaseImage C: \ ProgramData \ Microsoft \ Windows \ Images \ BaseImage-14316 -Installer C: \ Users \ chris\ Download \ vlc \ vlc-2.2.2-win32.exe -InstallerArguments "/ S" -Destinazione C: \ Output \ VLC -PackageName "VLC" -Publisher "CN = VideoLAN" -Versione 0.2.2.2 -MakeAppx -Verbose

Lo strumento ti darà un pacchetto. appx, che è la versione UWP dell'app.

Come installare l'app senza firmarla

Di norma, sono necessarie app di segno con una firma valida prima di poter essere installate. Microsoft consiglia di creare un certificato autofirmato e di firmare l'app con quella sul tuo computer. Puoi farlo usando le istruzioni qui sotto, se vuoi.

Tuttavia, se si desidera installare l'app sul proprio computer, è possibile farlo da soli più velocemente, senza fare alcuno sforzo con le firme. Windows 10 ti consente di installare app senza firmarle se installi un'applicazione "non compressa" da una directory.

Per fare ciò, aprire una finestra di PowerShell come amministratore ed eseguire il seguente comando:

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

Il file AppxManifest.xml è accanto all'applicazione.appx nella directory di output specificata.

Ora è possibile avviare l'applicazione dal menu Start. Sarà una "app per Windows" invece di una "app per desktop", ma altrimenti funzionerà come una normale app per desktop.

Come firmare e installare l'app

Non è necessario seguire queste istruzioni se l'applicazione è già stata installata. Questo è il modo più difficile.

In genere, è possibile installare solo un pacchetto. appx se ha una firma valida. Microsoft consiglia di utilizzare l'applicazione signtool.exe inclusa nell'SDK di Windows 10 per creare un certificato autofirmato, che consentirà di installare e testare l'applicazione sul proprio computer.

Basta aprire una finestra del prompt dei comandi come amministratore ed eseguire i seguenti comandi per creare un certificato autofirmato e firmare il pacchetto. appx con esso:

cd "C: \ Programmi( x86) \ Kit di Windows \ 10 \ bin \ x64" MakeCert.exe -r -h 0 -n "CN = Publisher" -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 segno -f my.pfx -fd SHA256 -v C: \ Path \ to \ application.appx

Notache il publisher che hai specificato, ovvero "CN = Publisher", deve corrispondere al publisher specificato in precedenza durante la creazione del file AppX.Quindi, continuando con il nostro esempio VLC di cui sopra, dovremmo usare "CN = VideoLAN".

Ti verrà chiesto di inserire una password. Puoi lasciare la password vuota.

È ora possibile installare il pacchetto. appx in una finestra di PowerShell( Amministratore) con il comando Aggiungi-AppxPackage:

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

Questa funzione può essere utilizzata da chiunque, ma solo dagli sviluppatori-e forse alcuni amministratori di sistema, vorranno seguire questa strada. Fortunatamente, il processo è estremamente semplice per gli sviluppatori, assumendo che le loro applicazioni non richiedano alcuna funzionalità non supportata dalla sandbox UWP.