Hoe een Windows Desktop-app converteren naar een universele Windows-app
Met de Anniversary Update 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.
Met de converter van Windows 10 geeft u het gewoon een MSI- of EXE-bestand en spuugt het 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 kunt indienen bij de Windows Store. Deze functie komt voor iedereen met de verjaardagsverjaardag van Windows 10, waardoor veel "legacy" -toepassingen naar de Windows Store worden gebracht.
Waarom je dit zou willen doen
Deze functie is het eindresultaat van Microsoft's Project Centennial, dat is ontworpen om die "verouderde" Win32- en .NET Windows-bureaubladtoepassingen naar de Windows Store en het nieuwe Universal Windows Platform te brengen.
U vraagt zich 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 met één klik, eenvoudige aanschaf en automatische updates.
Het nieuwe UWP-applicatieplatform van Microsoft is sandboxed, maar desktop-apps die u converteert zijn dat niet. Deze applicaties hebben volledige toegang tot uw systeem, net als een traditionele desktop-applicatie. 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 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-versie van Windows 10 gebruiken.
Deze functie vereist ook de Professional- of Enterprise-edities van Windows 10. Windows 10 Home-gebruikers 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 dit hulpprogramma 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 veranderen in toekomstige Insider-versies van Windows 10.
De resulterende toepassingen 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 verschillende platforms te krijgen: "Als u ervoor kiest om alle functionaliteit van uw app uit de volledig vertrouwende partitie van de app en naar de app-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.
Hoe de Desktop App Converter te installeren
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 de Windows 10 SDK downloaden en installeren.
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 te typen Y
daarna.
Set-ExecutionPolicy bypass
Voer de onderstaande opdracht uit en vervang deze C: \ Users \ NAAM \ Downloads \ DesktopAppConvertor
met het pad naar de map op uw computer:
cd -Path C: \ Users \ NAME \ Downloads \ DesktopAppConvertor
Stel de Desktop App Converter in 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 de DesktopAppConverter.ps1
script van een PowerShell-venster van de 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.
Om de gedetailleerde lijst met opties te bekijken, kunt u de volgende opdracht op elk gewenst moment uitvoeren:
get-help. \ DesktopAppConverter.ps1 -gedetailleerd
Hier is 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" - Uitgever "CN =" -Version 0.0.0.1 -MakeAppx -Verbose
U moet de opdracht aanpassen om uw eigen uitgeversnaam, -versie, pakketnaam toe te voegen en naar het installatiebestand en de doelmap van uw voorkeur te verwijzen. De -InstallerArguments "/ S"
optie geeft hier de / S
overschakelen naar het installatieprogramma, waardoor veel installatieprogramma's van applicaties stil worden geïnstalleerd zonder enige gebruikersinvoer. Toepassingen 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" -bestemming 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.
Hoe de app te installeren zonder het te ondertekenen
Normaal gesproken bent u verplicht teken-apps met een geldige handtekening aan te schaffen 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 -Register
U vindt het bestand AppxManifest.xml naast het bestand Application.appx in de uitvoermap die u hebt opgegeven.
U kunt nu de applicatie starten vanuit uw Start-menu. Het wordt een "Windows-app" in plaats van een "Desktop-app", maar hij ziet er anders uit en werkt als een normale desktop-app.
Hoe de app te ondertekenen en te 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 beveelt 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 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 -sv my.pvk my.cer
pvk2pfx.exe -pvk my.pvk -spc my.cer -pfx my.pfx
signtool.exe -teken -f mijn.pfx -fd SHA256 -v C: \ Pad \ naar \ application.appx
Merk op dat de uitgever die u opgeeft, dat is de "CN = uitgever"
-moet overeenkomen met de publisher die u eerder hebt opgegeven bij het maken van het AppX-bestand. Dus, doorgaan met ons VLC-voorbeeld van hierboven, zouden we moeten gebruiken "CN = VideoLAN"
.
U wordt gevraagd om een wachtwoord in te voeren. U kunt het wachtwoord gewoon leeg laten.
U kunt nu het .appx-pakket 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 ontwikkelaars - en misschien sommige systeembeheerders - zullen deze route willen volgen. Gelukkig is het proces voor ontwikkelaars uiterst eenvoudig.