1Sep

Så här konverterar du en Windows Desktop App till en Universal Windows App

Med Windows 10 års årsuppdatering gör Microsoft det möjligt för utvecklare att konvertera traditionella Windows-skrivbordsapplikationer till Universal Windows Platform( UWP) -program. Men vem som helst kan göra det med någon app, inte bara utvecklare.

Med Windows 10-omvandlare, ge det bara en. msi eller. exe-fil och det kommer att spyta ut ett. appx-paket. Du kan sedan sidladdning den här appen på din egen dator, eller om du är programmets utvecklare, kan du skicka den resulterande UWP-appen till Windows Store. Den här funktionen kommer fram till alla med Windows 10-årsjubileumsuppdatering, vilket ger många "äldre" applikationer till Windows Store.

Varför skulle du vilja göra det här

Den här funktionen är slutresultatet för Microsofts Project Centennial, som är utformat för att få de "äldre" Win32 och. NET Windows-skrivbordsapplikationerna till Windows Store och den nya Universal Windows-plattformen.

Du kanske undrar varför någon skulle vilja konvertera en stationär applikation till en ny UWP-app. För en sak är endast UWP-appar tillåtna i Windows Store. Detta gör det möjligt för utvecklare att få mycket fler ögon på sina appar, för att inte tala om enkelklicksinstallation, enkel inköp och automatiska uppdateringar.

Microsofts nya applikationsplattform är också sandboxad, så det finns en säkerhetsförmån för att konvertera gamla appar till UWP-appar. Konverteringsverktyget analyserar ditt skrivbordsapps beteende och skapar en sandlåda bara för det, vilket ger bara de behörigheter som krävs för att det ska fungera korrekt. Om applikationen äventyras kommer den inte att kunna bryta ut den begränsade sandlåten och röra med resten av systemet. Applikationer installerar och avinstallerar rent utan att lämna skräp som ligger runt filsystemet och i registret.

De resulterande applikationerna är fortfarande kraftfulla, trots sandlåten. Dessa applikationer kan använda UWP-funktioner, men borde vara lika kraftfulla som en vanlig skrivbordsapplikation. Som Microsofts dokumentation säger: "Som en UWP-app kan din app göra saker som den kan göra som en klassisk stationär app. Det interagerar med en virtualiserad vy av registret och filsystemet som inte kan skilja sig från själva registret och filsystemet. "

Begränsningarna

Det finns några viktiga begränsningar här. Först kan du bara göra detta på Windows 10 årsdagen uppdatering. För tillfället kommer det att fungera med Windows 10 Insider Preview bygg 14316 och senare, så du måste ansluta till Windows Insider-programmet och använda en Insider Preview-byggnad av Windows 10.

Den här funktionen kräver även antingen professionella eller företagsversioner avWindows 10. Windows 10-hemanvändare kan inte använda skrivbordsprogramomvandlaren. När det gäller bygg 14316 fungerade den bara på Windows 10 Enterprise, men stöd för Windows 10 Professional kommer. För närvarande kan detta verktyg endast användas på 64-bitars versioner av Windows, och det resulterande AppX-paketet kan bara installeras på 64-bitars versioner av Windows. Detta kommer att förändras i framtiden Insider-byggnader i Windows 10.

De resulterande programmen är avsedda för Windows 10-datorer. De fungerar inte på Windows 10 Mobile-smartphones, Xbox One, HoloLens, Surface Hub och de andra Windows 10-plattformarna som kör UWP-appar. Om du är en utvecklare erbjuder Microsoft dock en väg att få ditt skrivbordsprogram till en UWP-applikation på plattformen: "Om du väljer att flytta all din apps funktionalitet ur appens fullständiga förtroendepartition och tillapp-containerpartitionen kommer din app att kunna köras på någon Windows 10-enhet. "

Men vissa typer av applikationsbeteende stöds inte. En applikation kan inte kräva att den körs som administratör eller använda andra typer av lågnivå systemåtkomst. Microsoft ger en lista över beteenden som inte är tillåtna.

Så här ställer du in skrivbordsapps konverteraren

Antag att du använder en ny noggrann byggnad av Preview för Windows 10 Insider, och du kan hämta och installera Desktop App Converter från Microsofts utvecklingswebbplats. Ladda ner både DesktopAppConverter.zip och BaseImage-14316.wim-filer. Extrahera den nedladdade DesktopAppConverter.zip-filen till en mapp på datorn och placera BaseImage-filen i samma katalog.(Om det finns en ny byggnad av Windows 10, bör du se en ny BaseImage-fil. Du måste använda BaseImage-filen med samma versionsnummer som din installerade byggnad av Windows 10.)

Du måste också ladda neroch installera Windows 10 SDK.

Öppna sedan ett PowerShell-fönster som administratör. För att göra det, öppna Start-menyn, sök efter "PowerShell", högerklicka på genvägen och välj "Kör som administratör".

Ändra PowerShells exekveringspolicy genom att köra följande kommando. Godta ändringen genom att skriva y efteråt.

Set-ExecutionPolicy bypass

Kör kommandot nedan, ersätt C: \ Users \ NAME \ Downloads \ DesktopAppConvertor med sökvägen till katalogen på din dator:

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

Ställ inDesktop App Converter genom att köra följande kommando:

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

Om du ombeds omstartas när du kör någon av dessa kommandon, starta om datorn och kör sedan kommandot igen.

Så här konverterar du en skrivbordsapplikation

Du kan nu köra skrivbordet DesktopAppConverter.ps1 från ett administratörs PowerShell-fönster för att konvertera ett skrivbordsprogram till en UWP-applikation i ett enda kommando. Du behöver programmets installationsprogram för att göra det här. Som exempel använder vi VLC här.

För att visa den detaljerade listan över alternativ kan du när som helst köra följande kommando:

get-help. \ DesktopAppConverter.ps1 -detalj

Här är ett kommando som du kan använda och justera för din applikation:

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

Du måste justera kommandot för att lägga till ditt eget utgivarens namn, version, paketnamn och peka det på installationsfilerna och destinationskatalogen du föredrar. Alternativet -InstallerArguments "/ S" passerar här / S-omkopplaren till installationsprogrammet, vilket gör att många installationsprogram installeras tyst utan någon användarinmatning. Applikationer måste kunna installeras utan någon användarinmatning eller du kan inte konvertera dem.

Applikationsinstallatören bör vara i sin egen katalog utan några andra filer, eftersom filerna i samma katalog som installationsprogrammet kopieras till det resulterande. appx-paketet.

Vi använder till exempel VLC här, så här är kommandot vi skulle använda:

. \ DesktopAppConverter.ps1-ExpandedBaseImage C: \ ProgramData \ Microsoft \ Windows \ Bilder \ BaseImage-14316 -installatör C: \ Users \ chris\ Nedladdningar \ vlc \ vlc-2.2.2-win32.exe -InstallerArguments "/ S" -Destination C: \ Output \ VLC -PackageName "VLC" -Publisher "CN = VideoLAN" -Version 0.2.2.2 -MakeAppx -Verbose

Verktyget ger dig ett. appx-paket, vilket är UWP-versionen av appen.

Så här installerar du appen utan att skriva den

Du behöver normalt teckensignaler med en giltig signatur innan de kan installeras. Microsoft rekommenderar att du skapar ett självsignerat certifikat och signerar appen med det på din dator. Du kan göra det med hjälp av instruktionerna nedan, om du vill.

Men om du bara vill installera appen på din egen dator kan du göra det själv snabbare, utan att röra med några signaturer. I Windows 10 kan du installera appar utan att signera dem om du installerar en "packad" app från en katalog.

Öppna ett PowerShell-fönster som Administratör och kör följande kommando:

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

Du hittar filen AppxManifest.xml bredvid Applikationen. Appx-fil i den utgående katalog du angav.

Du kan nu starta programmet från din Start-meny. Det kommer att bli en "Windows app" istället för en "Desktop app", men den kommer annars att se och fungera som en vanlig skrivbordsprogram.

Hur man loggar in och installerar appen

Du behöver inte följa dessa instruktioner om du redan har installerat programmet. Detta är det svårare sättet.

Du kan normalt bara installera ett. appx-paket om det har en giltig signatur. Microsoft rekommenderar att du använder programmet signtool.exe som ingår i Windows 10 SDK för att skapa ett självtecknat certifikat, vilket gör att du kan installera och testa programmet på din egen dator.

Öppna bara ett kommandotolfönster som administratör och kör följande kommandon för att skapa ett självtecknat certifikat och skriv in. appx-paketet med det:

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 -logg -f my.pfx -fd SHA256 -v C: \ Path \ to \ application.appx

Anm.som utgivaren du specificerar-det är "CN = Publisher" -musten matchar förlaget som du angav tidigare när du skapade AppX-filen. Så fortsätter vi med vårt VLC-exempel ovanifrån, vi måste använda "CN = VideoLAN".

Du kommer att bli ombedd att ange ett lösenord. Du kan bara lämna lösenordet tomt.

Du kan nu installera. appx-paketet i ett PowerShell-fönster( Administratör) med kommandot Add-AppxPackage:

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

Den här funktionen kan användas av alla, men bara utvecklare-och kanske några systemadministratörer - vill gå denna rutt. Lyckligtvis är processen extremt lätt för utvecklare, förutsatt att deras tillämpningar inte kräver någon funktion som inte stöds av UWP-sandlådan.