So konvertieren Sie eine Windows Desktop App in eine Universal Windows App
Mit dem Anniversary Update von Windows 10 ermöglicht Microsoft es Entwicklern, herkömmliche Windows-Desktopanwendungen in UWP-Anwendungen (Universal Windows Platform) zu konvertieren. Aber jeder kann dies mit jeder App tun - nicht nur mit Entwicklern.
Wenn Sie den Konverter von Windows 10 verwenden, geben Sie ihm einfach eine .msi- oder .exe-Datei, und es wird ein .appx-Paket ausgespuckt. Sie können diese App anschließend auf Ihren eigenen PC laden oder, falls Sie der Entwickler der Anwendung sind, die resultierende UWP-App an den Windows Store senden. Diese Funktion wird für alle mit dem Anniversary Update von Windows 10 verfügbar sein und viele "ältere" Anwendungen in den Windows Store bringen.
Warum möchten Sie das tun?
Diese Funktion ist das Endergebnis von Project Centennial von Microsoft, mit dem Windows-Desktop-Anwendungen "Legacy" von Win32 und .NET in den Windows Store und die neue Universal Windows Platform aufgenommen werden sollen.
Sie fragen sich vielleicht, warum jemand eine Desktop-Anwendung in eine neue UWP-App konvertieren möchte. Zum einen sind im Windows Store nur UWP-Apps erlaubt. Auf diese Weise können Entwickler mehr über ihre Apps erfahren, von der Installation mit einem Klick, dem einfachen Kauf und automatischen Updates.
Die neue UWP-Anwendungsplattform von Microsoft verfügt über eine Sandkastenbox, Desktop-Apps, die Sie konvertieren, jedoch nicht. Diese Anwendungen haben, wie eine herkömmliche Desktopanwendung, vollen Zugriff auf Ihr System. Wie in der Dokumentation von Microsoft heißt: „Als UWP-App kann Ihre App die Aufgaben ausführen, die sie als klassische Desktop-App ausführen könnte. Es interagiert mit einer virtualisierten Ansicht der Registrierung und des Dateisystems, die sich nicht von der tatsächlichen Registrierung und dem Dateisystem unterscheiden lässt. "
Die Einschränkungen
Hier gibt es einige wichtige Einschränkungen. Erstens können Sie dies nur mit dem Windows 10 Anniversary Update durchführen. Im Moment funktioniert es mit Windows 10 Insider Preview Build 14316 und höher. Sie müssen dem Windows Insider-Programm beitreten und einen Insider Preview Build von Windows 10 verwenden.
Für diese Funktion sind außerdem die Professional- oder Enterprise-Editionen von Windows 10 erforderlich. Benutzer von Windows 10 Home können den Desktop-App-Konverter nicht verwenden. Ab Build 14316 funktionierte es nur unter Windows 10 Enterprise, aber die Unterstützung für Windows 10 Professional ist in Kürze verfügbar. Derzeit kann dieses Tool nur unter 64-Bit-Versionen von Windows verwendet werden, und das resultierende AppX-Paket kann nur unter 64-Bit-Versionen von Windows installiert werden. Dies wird sich in zukünftigen Insider-Builds von Windows 10 ändern.
Die daraus 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 Desktopanwendung in eine plattformübergreifende UWP-Anwendung zu integrieren: „Wenn Sie sich dafür entscheiden, alle Funktionen Ihrer App aus der voll vertrauenswürdigen Partition der App in die App 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 einen anderen Systemzugriff auf niedriger Ebene verwendet. Microsoft stellt eine Liste der Verhaltensweisen zur Verfügung, die nicht zulässig sind.
So richten Sie den Desktop-App-Konverter ein
Vorausgesetzt, Sie verwenden eine ausreichend neue Version der Windows 10 Insider Preview, können Sie den Desktop-App-Konverter von der Microsoft-Entwicklerseite herunterladen und installieren. Laden Sie die Dateien DesktopAppConverter.zip und BaseImage-14316.wim herunter. Extrahieren Sie die heruntergeladene DesktopAppConverter.zip-Datei in einen Ordner auf Ihrem Computer und platzieren Sie die BaseImage-Datei im selben Verzeichnis. (Wenn ein neuer Build von Windows 10 verfügbar ist, sollte eine neue BaseImage-Datei angezeigt werden. Sie müssen die BaseImage-Datei mit derselben Versionsnummer verwenden wie Ihr installiertes Build von Windows 10.)
Sie müssen auch das Windows 10-SDK herunterladen und installieren.
Ö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 tippen y
danach.
Set-ExecutionPolicy-Umgehung
Führen Sie den folgenden Befehl aus und ersetzen Sie ihn C: \ Benutzer \ NAME \ Downloads \ DesktopAppConvertor
mit dem Pfad zum Verzeichnis auf Ihrem Computer:
cd -Pfad C: \ Benutzer \ NAME \ Downloads \ DesktopAppConvertor
Richten Sie den Desktop-Anwendungskonverter ein, indem Sie den folgenden Befehl ausführen:
.\ DesktopAppConverter.ps1 -Setup -BaseImage. \ BaseImage-14316.wim
Wenn Sie während der Ausführung eines dieser Befehle zum Neustart aufgefordert werden, starten Sie Ihren Computer neu und führen Sie den Befehl erneut aus.
So konvertieren Sie eine Desktopanwendung
Sie können jetzt das ausführen DesktopAppConverter.ps1
Skript aus einem Administrator PowerShell-Fenster zum Konvertieren einer Desktopanwendung in eine UWP-Anwendung in einem einzigen Befehl. Sie benötigen dazu das Installationsprogramm der Anwendung. Als Beispiel verwenden wir hier VLC.
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 verwenden und für Ihre Anwendung anpassen können:
.\ DesktopAppConverter.ps1 -ExpandedBaseImage C: \ Programme \ Microsoft \ Windows \ Images \ BaseImage-14316 -Installer C: \ Installer \ MyApp.exe -InstallerArguments "/ S" -Destination C: \ Output \ MyApp -PackageName "MyApp" - Publisher "CN =" -Version 0.0.0.1 -MakeAppx -Verbose
Sie müssen den Befehl anpassen, um Ihren eigenen Herausgebernamen, die Version und den Paketnamen hinzuzufügen und auf die Installationsdatei und das gewünschte Zielverzeichnis zu verweisen. Das -InstallerArguments "/ S"
Option hier übergibt die / S
Wechseln Sie zum Installationsprogramm, wodurch viele Anwendungsinstallationsprogramme ohne Benutzereingaben im Hintergrund installiert werden. Anwendungen müssen ohne Benutzereingabe 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 in demselben Verzeichnis wie das Installationsprogramm in das resultierende .appx-Paket kopiert werden.
Zum Beispiel verwenden wir hier VLC. Hier ist der Befehl, den wir verwenden würden:
.\ DesktopAppConverter.ps1 -ExpandedBaseImage C: \ ProgramData \ Microsoft \ Windows \ Images \ BaseImage-14316 -Installer C: \ Benutzer \ chris \ Downloads \ vlc \ vlc-2.2.2-win32.exe -InstallerArguments "/ S" -Destination C: \ Ausgabe \ VLC -Paketname "VLC" -Publisher "CN = VideoLAN" -Version 0.2.2.2 -MakeAppx -Verbose
Das Tool gibt Ihnen ein .appx-Paket, die UWP-Version der App.
So installieren Sie die App, ohne sie zu signieren
Normalerweise müssen Sie Apps mit einer gültigen Signatur signieren, 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 dies mit den folgenden Anweisungen tun, wenn Sie möchten.
Wenn Sie die App jedoch nur auf Ihrem eigenen Computer installieren möchten, können Sie dies selbst schneller tun, ohne sich dabei mit Signaturen zu beschäftigen. Mit Windows 10 können Sie Apps installieren, ohne diese zu signieren, wenn Sie eine „unpackaged“ 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: \ Pfad \ zu \ AppxManifest.xml -Register
Sie finden die Datei AppxManifest.xml neben der Datei Application.appx im angegebenen Ausgabeverzeichnis.
Sie können die Anwendung jetzt über Ihr Startmenü starten. Es wird eine "Windows-App" anstelle einer "Desktop-App" sein, aber sonst sieht sie aus und funktioniert wie eine normale Desktop-App.
So unterschreiben und installieren Sie die App
Sie müssen diese Anweisungen nicht befolgen, wenn Sie die Anwendung bereits installiert haben. Dies ist der schwierigere Weg.
Sie können ein .appx-Paket normalerweise nur installieren, wenn es über eine gültige Signatur verfügt. Microsoft empfiehlt die Verwendung der im Windows 10 SDK enthaltenen Anwendung signtool.exe, 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 = Publisher" -eku 1.3.6.1.5.5.7.3.3 -pe -sv my.pvk my.cer
pvk2pfx.exe -pvk mein.pvk -spc mein.cer -pfx mein.pfx
signtool.exe sign -f mein.pfx -fd SHA256 -v C: \ Pfad \ zu \ application.appx
Beachten Sie, dass der Herausgeber, den Sie angeben, das ist "CN = Publisher"
-muss mit dem Herausgeber übereinstimmen, den Sie beim Erstellen der AppX-Datei angegeben haben. Um mit unserem VLC-Beispiel von oben fortzufahren, müssten wir es verwenden "CN = VideoLAN"
.
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-Fenster (Administrator) installieren:
Add-AppxPackage C: \ Pfad \ zu \ application.appx
Diese Funktion kann von jedem verwendet werden, aber nur Entwickler - und möglicherweise einige Systemadministratoren - möchten diesen Weg gehen. Glücklicherweise ist der Prozess für Entwickler extrem einfach.