1Sep

Hoe een Windows Desktop-app converteren naar een universele Windows-app

Met de verjaardagsverjaardag van Windows 10 maakt Microsoft het voor ontwikkelaars mogelijk om traditionele Windows-bureaubladtoepassingen om te zetten naar UWP-toepassingen( Universal Windows Platform).Maar iedereen kan dit met elke app doen, niet alleen met ontwikkelaars.

Geef met de converter van Windows 10 gewoon een MSI- of EXE-bestand op en het spuugt een. appx-pakket uit. U kunt deze app vervolgens sideloaden op uw eigen pc, of - als u de ontwikkelaar van de app bent - u de resulterende UWP-app in de Windows Store kunt indienen. Deze functie komt voor iedereen met de Anniversary Update van Windows 10, waardoor veel 'legacy'-applicaties naar de Windows Store worden gebracht.

Waarom u dit wilt doen

Deze functie is het eindresultaat van Microsoft's Project Centennial, dat is ontworpen om die "legacy" Win32- en. NET Windows-bureaubladtoepassingen naar de Windows Store en het nieuwe Universal Windows Platform te brengen.

Je vraagt ​​je misschien af ​​waarom iemand een desktop-applicatie naar een nieuwe UWP-app wil converteren. Om te beginnen zijn alleen UWP-apps toegestaan ​​in de Windows Store. Hierdoor kunnen ontwikkelaars veel meer aandacht krijgen voor hun apps, om maar te zwijgen van installatie per enkele klik, eenvoudige aanschaf en automatische updates.

Het nieuwe toepassingsplatform van Microsoft is ook sandboxed, dus er is een beveiligingsvoordeel bij het converteren van oude apps naar UWP-apps. Het conversietool analyseert het gedrag van je desktop-app en maakt er een sandbox voor, waardoor het alleen de rechten heeft die het nodig heeft om correct te werken. Als de toepassing wordt gehackt, kan deze de beperkte sandbox niet doorbreken en de rest van het systeem rotzooien. Applicaties zullen netjes worden geïnstalleerd en verwijderd zonder dat junk rondslingeren op het bestandssysteem en in het register.

De resulterende applicaties zijn nog steeds krachtig, ondanks de sandbox. Deze toepassingen kunnen UWP-functies gebruiken, maar moeten net zo krachtig zijn als een traditionele desktoptoepassing. Zoals de documentatie van Microsoft zegt: "Als een UWP-app kan uw app de dingen doen die hij zou kunnen doen als een klassieke desktop-app. Het werkt samen met een gevirtualiseerde weergave van het register en het bestandssysteem dat niet te onderscheiden is van het eigenlijke register en bestandssysteem. "

De beperkingen

Er zijn enkele belangrijke beperkingen hier. Ten eerste kunt u dit alleen doen op de Windows 10-jubileumupdate. Voorlopig werkt het met Windows 10 Insider Preview build 14316 en hoger, dus u moet deelnemen aan het Windows Insider-programma en een Insider Preview-build van Windows 10 gebruiken.

Deze functie vereist ook de Professional- of Enterprise-edities vanWindows 10. Windows 10 Thuisgebruikers kunnen de Desktop App Converter niet gebruiken. Vanaf build 14316 werkte het alleen op Windows 10 Enterprise, maar de ondersteuning voor Windows 10 Professional komt eraan. Momenteel kan deze tool alleen worden gebruikt op 64-bits versies van Windows en het resulterende AppX-pakket kan alleen worden geïnstalleerd op 64-bits versies van Windows. Dit zal in toekomstige Insider-versies van Windows 10 veranderen.

De resulterende applicaties zijn bedoeld voor Windows 10-pc's. Ze werken niet op Windows 10 mobiele smartphones, Xbox One, HoloLens, Surface Hub en de andere Windows 10-platforms waarop UWP-apps worden uitgevoerd. Als u echter een ontwikkelaar bent, biedt Microsoft een manier om uw desktoptoepassing in een UWP-toepassing op meerdere platforms te integreren: "Als u ervoor kiest om alle functionaliteit van uw app uit de volledig vertrouwende partitie van de app en naar deapp-containerpartitie, dan kan uw app op elk Windows 10-apparaat worden uitgevoerd. "

Sommige typen toepassingsgedrag worden echter niet ondersteund. Een toepassing kan niet vereisen dat deze wordt uitgevoerd als beheerder of andere typen systeemtoegang op laag niveau gebruikt. Microsoft biedt een lijst met gedragingen die niet zijn toegestaan.

De Desktop App Converter instellen

Ervan uitgaande dat u een nieuw genoeg build van de Windows 10 Insider Preview gebruikt, kunt u de Desktop App Converter downloaden en installeren vanaf de ontwikkelaarssite van Microsoft. Download zowel de DesktopAppConverter.zip en BaseImage-14316.wim-bestanden. Pak het gedownloade bestand DesktopAppConverter.zip uit naar een map op uw computer en plaats het bestand BaseImage in dezelfde map.(Als er een nieuwe build van Windows 10 beschikbaar is, zou u een nieuw BaseImage-bestand moeten zien. U moet het BaseImage-bestand gebruiken met hetzelfde versienummer als uw geïnstalleerde build van Windows 10.)

U moet ook downloadenen installeer de Windows 10 SDK.

Open vervolgens een PowerShell-venster als beheerder. Open hiervoor het menu Start, zoek naar "PowerShell", klik met de rechtermuisknop op de snelkoppeling en selecteer "Uitvoeren als beheerder".

Wijzig het uitvoeringsbeleid van PowerShell door de volgende opdracht uit te voeren. Ga akkoord met de verandering door y achteraf te typen.

Set-ExecutionPolicy bypass

Voer de onderstaande opdracht uit en vervang C: \ Users \ NAME \ Downloads \ DesktopAppConvertor door het pad naar de map op uw computer:

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

Stel deDesktop App Converter door de volgende opdracht uit te voeren:

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

Als u wordt gevraagd om opnieuw op te starten terwijl een van deze opdrachten wordt uitgevoerd, start u de computer opnieuw op en voert u de opdracht opnieuw uit.

Een bureaubladtoepassing converteren

U kunt nu het script DesktopAppConverter.ps1 uitvoeren vanuit een venster PowerShell van beheerder om een ​​bureaubladtoepassing naar een UWP-toepassing te converteren in één opdracht. U hebt het installatieprogramma van de toepassing nodig om dit te doen. Als voorbeeld gebruiken we hier VLC.

Als u de gedetailleerde lijst met opties wilt weergeven, kunt u op elk gewenst moment de volgende opdracht uitvoeren:

get-help. \ DesktopAppConverter.ps1 -detailleerde

Hier volgt een opdracht die u kunt gebruiken en aanpassen voor uw toepassing:

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

U moet de opdracht aanpassen om uw eigen uitgeversnaam, -versie, pakketnaam toe te voegen en te verwijzen naar het installatiebestand en de doelmap van uw voorkeur. De optie -InstallerArguments "/ S" geeft hier de schakeloptie / S door aan het installatieprogramma, waardoor veel installatieprogramma's van toepassingen stil worden geïnstalleerd zonder gebruikersinvoer. Applicaties moeten installeerbaar zijn zonder gebruikersinvoer of u kunt ze niet converteren.

Het installatieprogramma van de toepassing moet zich in een eigen map bevinden zonder andere bestanden, omdat de bestanden in dezelfde map als het installatieprogramma naar het resulterende. appx-pakket worden gekopieerd.

We gebruiken hier bijvoorbeeld VLC, dus hier is de opdracht die we zouden gebruiken:

. \ 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" -versie 0.2.2.2 -MakeAppx -Verbose

De tool geeft je een. appx-pakket, de UWP-versie van de app.

De app installeren zonder het te ondertekenen

Normaal gesproken bent u verplicht om apps met een geldige handtekening te ondertekenen voordat ze kunnen worden geïnstalleerd. Microsoft raadt aan een zelfondertekend certificaat te maken en de app te ondertekenen met die op uw computer. U kunt dat doen met behulp van de onderstaande instructies, als u dat wilt.

Als u de app echter alleen op uw eigen computer wilt installeren, kunt u dit sneller zelf doen zonder enige handtekeningen te gebruiken. Met Windows 10 kun je apps installeren zonder ze te ondertekenen als je een "onverpakte" app uit een directory installeert.

Hiertoe opent u een PowerShell-venster als beheerder en voert u de volgende opdracht uit:

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

registreren U vindt het bestand AppxManifest.xml naast de toepassing.appx-bestand in de uitvoermap die u hebt opgegeven.

U kunt nu de toepassing starten vanuit uw Start-menu. Het zal een "Windows-app" zijn in plaats van een "Desktop-app", maar hij ziet er anders uit en werkt als een normale desktop-app.

De app ondertekenen en installeren

U hoeft deze instructies niet te volgen als u de toepassing al hebt geïnstalleerd. Dit is de moeilijkere manier.

U kunt normaal gesproken alleen een. appx-pakket installeren als het een geldige handtekening heeft. Microsoft raadt aan de signtool.exe-toepassing te gebruiken die is meegeleverd bij de Windows 10 SDK om een ​​zelfondertekend certificaat te maken, waarmee u de toepassing op uw eigen computer kunt installeren en testen.

Open een opdrachtpromptvenster als beheerder en voer de volgende opdrachten uit om een ​​zelfondertekend certificaat te maken en het. appx-pakket ermee te ondertekenen:

cd "C: \ Program Files( 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 -svmy.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

Opmerkingdat de uitgever die u opgeeft - dat is de "CN = Publisher" - moet overeenkomen met de publisher die u eerder hebt opgegeven bij het maken van het AppX-bestand. Dus, doorgaand met ons VLC voorbeeld van hierboven, zouden we "CN = VideoLAN" moeten gebruiken.

U wordt gevraagd om een ​​wachtwoord in te voeren. U kunt het wachtwoord gewoon leeg laten.

U kunt het. appx-pakket nu installeren in een PowerShell( Administrator) -venster met de opdracht Add-AppxPackage:

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

Deze functie kan door iedereen worden gebruikt, maar alleen door ontwikkelaars-en misschien een aantal systeembeheerders - deze route willen gaan. Gelukkig is het proces uiterst eenvoudig voor ontwikkelaars, ervan uitgaande dat hun applicaties geen functionaliteit vereisen die niet wordt ondersteund door de UWP-sandbox.