1Sep

So konvertieren Sie eine Windows Desktop App in eine Universal Windows App

Mit dem Jubiläums-Update von Windows 10 ermöglicht Microsoft Entwicklern die Konvertierung traditioneller Windows-Desktop-Anwendungen in UWP-Anwendungen( Universal Windows Platform).Aber jeder kann dies mit jeder App tun - nicht nur mit Entwicklern.

Geben Sie dem Windows 10-Konverter einfach eine. msi- oder. exe-Datei, und es wird ein. appx-Paket ausgegeben. Sie können diese App dann auf Ihrem eigenen PC sideladen oder - wenn Sie der Entwickler der Anwendung sind - können Sie die resultierende UWP-App im Windows Store einreichen. Diese Funktion wird mit dem Windows 10-Jubiläumsupdate für alle Nutzer verfügbar sein und viele "Legacy" -Anwendungen in den Windows Store bringen.

Warum

? Dieses Feature ist das Endergebnis von Microsoft Project Centennial, das entwickelt wurde, um diese "alten" Win32- und. NET Windows-Desktop-Anwendungen in den Windows Store und die neue Universal Windows Platform zu bringen.

Sie fragen sich vielleicht, warum jemand eine Desktop-Anwendung in eine neue UWP-App umwandeln möchte. Zum einen sind nur UWP-Apps im Windows Store erlaubt. Dadurch können Entwickler ihre Apps viel besser sehen, ganz zu schweigen von der Installation per Mausklick, dem einfachen Kauf und automatischen Updates.

Die neue Anwendungsplattform von Microsoft ist ebenfalls sandboxed, so dass die Konvertierung alter Apps in UWP-Apps einen Sicherheitsvorteil bietet. Das Konverter-Tool analysiert das Verhalten Ihrer Desktop-App und erstellt nur eine Sandbox, die nur die Berechtigungen enthält, die für eine ordnungsgemäße Ausführung erforderlich sind. Wenn die Anwendung kompromittiert ist, kann sie nicht aus dieser eingeschränkten Sandbox ausbrechen und sich mit dem Rest des Systems herumschlagen. Anwendungen werden sauber installiert und deinstalliert, ohne dass auf dem Dateisystem und in der Registrierung herumliegende Daten herumliegen.

Die resultierenden Anwendungen sind trotz der Sandbox immer noch leistungsfähig. Diese Anwendungen können UWP-Funktionen verwenden, sollten aber genauso leistungsstark sein wie eine herkömmliche Desktop-Anwendung. In der Microsoft-Dokumentation heißt es: "Als UWP-App kann Ihre App die Dinge tun, die sie als klassische Desktop-App bietet. Es interagiert mit einer virtualisierten Ansicht der Registry und des Dateisystems, die nicht von der eigentlichen Registry und dem Dateisystem zu unterscheiden ist. "

Die Einschränkungen

Hier gibt es einige wichtige Einschränkungen. Erstens können Sie dies nur beim Windows 10 Anniversary Update tun. Im Moment funktioniert es mit Windows 10 Insider Preview Build 14316 und höher. Sie müssen daher dem Windows Insider Programm beitreten und eine Insider Preview Version von Windows 10 verwenden.

Diese Funktion erfordert auch die Professional oder Enterprise Edition vonWindows 10. Windows 10 Home-Benutzer können den Desktop App Converter nicht verwenden. Ab Build 14316 funktionierte es nur unter Windows 10 Enterprise, aber Windows 10 Professional wird unterstützt. Derzeit kann dieses Tool nur für 64-Bit-Versionen von Windows verwendet werden, und das resultierende AppX-Paket kann nur auf 64-Bit-Versionen von Windows installiert werden. Dies wird sich in zukünftigen Insider-Builds von Windows 10 ändern.

Die resultierenden Anwendungen sind für Windows 10 PCs gedacht. Sie funktionieren nicht auf Windows 10 Mobile-Smartphones, Xbox One, HoloLens, Surface Hub und den anderen Windows 10-Plattformen, auf denen UWP-Apps ausgeführt werden. Wenn Sie jedoch ein Entwickler sind, bietet Microsoft einen Weg, um Ihre Desktop-Anwendung in eine plattformübergreifende UWP-Anwendung zu bekommen: "Wenn Sie alle Funktionen Ihrer App aus der voll vertrauenswürdigen Partition der App und in dieApp-Container-Partition, dann kann Ihre App auf jedem Windows 10-Gerät ausgeführt werden. "

Einige Arten von Anwendungsverhalten werden jedoch nicht unterstützt. Eine Anwendung kann nicht erfordern, dass sie als Administrator ausgeführt wird oder andere Arten von Systemzugriff auf niedriger Ebene verwendet. Microsoft bietet eine Liste der nicht zulässigen Verhalten.

So richten Sie den Desktop-App-Konverter

ein Wenn Sie einen neuen Build der Windows 10 Insider-Vorschau verwenden, können Sie den Desktop App Converter von der Microsoft Developer Site herunterladen und installieren. Laden Sie die Dateien DesktopAppConverter.zip und BaseImage-14316.wim herunter. Extrahieren Sie die heruntergeladene Datei "DesktopAppConverter.zip" in einen Ordner auf Ihrem Computer, und legen Sie die BaseImage-Datei im selben Verzeichnis ab.(Wenn ein neuer Build von Windows 10 verfügbar ist, sollten Sie eine neue BaseImage-Datei sehen. Sie müssen die BaseImage-Datei mit der gleichen Versionsnummer wie Ihr installierter Build von Windows 10 verwenden.)

Sie müssen ebenfalls herunterladenund installieren Sie das Windows 10 SDK.

Öffnen Sie als Nächstes ein PowerShell-Fenster als Administrator.Öffnen Sie dazu das Startmenü, suchen Sie nach "PowerShell", klicken Sie mit der rechten Maustaste auf die Verknüpfung und wählen Sie "Als Administrator ausführen".

Ändern Sie die Ausführungsrichtlinie von PowerShell, indem Sie den folgenden Befehl ausführen. Stimmen Sie der Änderung zu, indem Sie hinterher y eingeben.

Set-ExecutionPolicy umgehen

Führen Sie den folgenden Befehl aus und ersetzen Sie C: \ Users \ NAME \ Downloads \ DesktopAppConvertor durch den Pfad zum Verzeichnis auf Ihrem Computer:

cd -Pfad C: \ Benutzer \ NAME \ Downloads \ DesktopAppConvertor

Richten Sie dieDesktop App Converter, indem Sie den folgenden Befehl ausführen:

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

Wenn Sie aufgefordert werden, einen Neustart durchzuführen, während Sie einen dieser Befehle ausführen, starten Sie Ihren Computer neu und führen Sie den Befehl erneut aus.

So konvertieren Sie eine Desktopanwendung

Sie können das Skript DesktopAppConverter.ps1 jetzt über ein Administrator-PowerShell-Fenster ausführen, um eine Desktopanwendung mit einem einzigen Befehl in eine UWP-Anwendung zu konvertieren. Sie benötigen dazu das Installationsprogramm der Anwendung. Als Beispiel verwenden wir VLC hier.

Um die detaillierte Liste der Optionen anzuzeigen, können Sie den folgenden Befehl jederzeit ausführen:

get-help. \ DesktopAppConverter.ps1 -detailed

Hier ist ein Befehl, den Sie für Ihre Anwendung verwenden und anpassen können:

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

Sie müssen den Befehl anpassen, um Ihren eigenen Herausgebernamen, Version und Paketnamen hinzuzufügen und ihn auf die von Ihnen bevorzugte Installationsdatei und das Zielverzeichnis zu richten. Die Option "-InstallerArguments" / S übergibt den Schalter / S an das Installationsprogramm, wodurch viele Installationsprogramme ohne Benutzereingaben automatisch installiert werden. Anwendungen müssen ohne Benutzereingaben installiert werden können oder Sie können sie nicht konvertieren.

Das Installationsprogramm der Anwendung sollte sich in einem eigenen Verzeichnis ohne weitere Dateien befinden, da die Dateien im selben Verzeichnis wie das Installationsprogramm in das resultierende. appx-Paket kopiert werden.

Zum Beispiel verwenden wir VLC hier, also ist hier der Befehl, den wir verwenden würden:

. \ 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: \ Ausgabe \ VLC -PackageName "VLC" -Publisher "CN = VideoLAN" -Version 0.2.2.2 -MakeAppx -Verbose

Das Tool gibt Ihnen ein. appx-Paket, das die UWP-Version der App ist.

So installieren Sie die App, ohne sie zu signieren

Sie benötigen normalerweise signierte Apps mit einer gültigen Signatur, bevor sie installiert werden können. Microsoft empfiehlt, ein selbstsigniertes Zertifikat zu erstellen und die App damit auf Ihrem Computer zu signieren. Sie können das tun, indem Sie die Anweisungen unten verwenden, wenn Sie möchten.

Wenn Sie die App jedoch nur auf Ihrem eigenen Computer installieren möchten, können Sie dies selbst schneller erledigen, ohne mit Signaturen zu stören. Mit Windows 10 können Sie Apps installieren, ohne sie zu signieren, wenn Sie eine "unverpackte" App aus einem Verzeichnis installieren.

Öffnen Sie dazu ein PowerShell-Fenster als Administrator und führen Sie den folgenden Befehl aus:

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

Sie finden die AppxManifest.xml-Datei neben der Anwendung.appx-Datei in dem von Ihnen angegebenen Ausgabeverzeichnis.

Sie können die Anwendung jetzt über Ihr Startmenü starten. Es wird eine "Windows-App" anstelle einer "Desktop-App" sein, aber ansonsten wird es wie eine normale Desktop-App aussehen und funktionieren.

So signieren und installieren Sie die App

Sie müssen diese Anweisungen nicht befolgen, wenn Sie die Anwendung bereits installiert haben. Das ist der härtere Weg.

Sie können normalerweise nur ein. appx-Paket installieren, wenn es eine gültige Signatur besitzt. Microsoft empfiehlt, die im Windows 10-SDK enthaltene Anwendung signtool.exe zu verwenden, um ein selbstsigniertes Zertifikat zu erstellen, mit dem Sie die Anwendung auf Ihrem eigenen Computer installieren und testen können.

Öffnen Sie einfach ein Eingabeaufforderungsfenster als Administrator und führen Sie die folgenden Befehle aus, um ein selbstsigniertes Zertifikat zu erstellen und das. appx-Paket damit zu signieren:

cd "C: \ Programme( x86) \ Windows-Kits \ 10 \ bin \ x64" MakeCert.exe -r -h 0 -n "CN = Herausgeber" -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 zeichen -f my.pfx -fd SHA256 -v C: \ Pfad \ zu \ application.appx

HinweisDer Publisher, den Sie angeben, also "CN = Publisher", muss mit dem Publisher übereinstimmen, den Sie beim Erstellen der AppX-Datei angegeben haben. Um unser VLC-Beispiel von oben fortzusetzen, müssten wir "CN = VideoLAN" verwenden.

Sie werden aufgefordert, ein Passwort einzugeben. Sie können das Passwort einfach leer lassen.

Sie können das. appx-Paket jetzt mit dem Befehl Add-AppxPackage in einem PowerShell( Administrator) -Fenster installieren:

Add-AppxPackage C: \ Pfad \ zu \ application.appx

Diese Funktion kann von jedem, aber nur von Entwicklern verwendet werden.und vielleicht einige Systemadministratoren - wollen diesen Weg gehen. Glücklicherweise ist der Prozess für Entwickler extrem einfach, vorausgesetzt, ihre Anwendungen benötigen keine Funktionalität, die von der UWP-Sandbox nicht unterstützt wird.