Im C:\Program Files\WindowsApplications
Ordner befinden sich die .exe-Dateien für die Modern Apps auf meinem PC. Wenn ich auf eine davon doppelklicke, erscheint ein Popup mit der Meldung:
This application can run only in the context of an app container
Gibt es eine Möglichkeit, eine moderne App direkt aus ihrer EXE-Datei und nicht nur über ihre Kachel auszuführen?
Vielen Dank im Voraus!
PS: Ich verwende die technische Vorschau von Windows 10.
Antwort1
Vor Windows 8 konnten Sie „eigenständige“ .exe-Anwendungen haben. Die Installation diente hauptsächlich dazu, Links und Referenzen zu erstellen, damit die Anwendung leicht finden und ausführen konnte, was sie benötigte. Wenn alles, was die Anwendung benötigte, von der Anwendung selbst bereitgestellt wurde, konnte sie ohne Installation ausgeführt werden. Der App-Container ist ein Sicherheitskonzept, das mit Windows 8 eingeführt wurde. Ohne Installation hat eine Anwendung Zugriff auf ihre eigenen Ordner und wenig anderes, einschließlich der meisten Geräte. Eine Anwendung muss so konzipiert sein, dass sie mit App-Containern funktioniert, um installiert werden zu können. DiesVerknüpfungbietet eine gute Beschreibung des Konzepts und seiner Funktionsweise.
Bearbeiten: Bei einer installierten Anwendung scheinen alle Zuordnungen und Berechtigungen an die Kachel angehängt zu sein, sodass die EXE-Datei nicht direkt ausgeführt werden kann.
Antwort2
Sie können eine moderne Windows-App über die Befehlszeile ausführen, indem Sie einen Explorer.exe-Shell-Befehl wie diesen verwenden:
explorer.exe shell:AppsFolder\<Package Name>_<Publisher ID>!<App ID>
Oder über „start“, was empfohlen wird, wenn Sie Argumente übergeben müssen:
start shell:AppsFolder\<Package Name>_<Publisher ID>!<App ID> arg1 arg2
Der Trick besteht darin, den Paketnamen, die Herausgeber-ID und die App-ID herauszufinden. Es wäre schön, wenn all diese Informationen in der Microsoft Store-Liste für die App oder im Task-Manager oder in der Liste der App unter Einstellungen -> Apps & Features verfügbar wären. Bisher habe ich keine einfache Möglichkeit gefunden, diese drei Informationen zu sammeln. Hier sind die Schritte dazu mit dem Task-Manager und dem Datei-Explorer, kopiert vonmein Blogbeitrag.
- Öffnen Sie die moderne App wie gewohnt über das Startmenü, die Taskleiste usw.
- Starten Sie den Task-Manager (ich klicke mit der rechten Maustaste auf die Windows-Taskleiste und wähle „Task-Manager“)
- Erweitern Sie die Liste der gewünschten App, klicken Sie mit der rechten Maustaste auf das untergeordnete Element und wählen Sie „Zu den Details gehen“.
- Klicken Sie mit der rechten Maustaste auf die markierte ausführbare Datei und wählen Sie „Dateispeicherort öffnen“
- Der Name des gerade geöffneten Verzeichnisses gibt Ihnen den Paketnamen und die Herausgeber-ID, wenn Sie wissen, wie Sie diese analysieren. Am Beispiel der Kalender-App beginnt der Verzeichnisname „microsoft.windowscommunicationsapps_16005.12827.20560.0_x64__8wekyb3d8bbwe“ mit dem Paketnamen („microsoft.windowscommunicationsapps“), gefolgt von Versions- und Plattforminformationen, die Sie hierfür nicht benötigen („16005.12827.20560.0_x64“), und dann folgt die Herausgeber-ID („8wekyb3d8bbwe“). Notieren Sie sich den Paketnamen und die Herausgeber-ID zur späteren Verwendung.
- Öffnen Sie die Datei AppxManifest.xml in diesem Verzeichnis
- Ganz oben in der Datei AppxManifest.xml finden Sie ein Identity-Element mit einem Name-Attribut. Stellen Sie sicher, dass dieser Wert mit dem Paketnamen übereinstimmt, den wir bereits aus dem Verzeichnisnamen erhalten haben.
- Durchsuchen Sie die Datei AppxManifest.xml nach dem Namen der ausführbaren Datei, z. B. HxCalenderAppImm.exe, und Sie finden ein XML-Element, das wie folgt aussieht:
Nachdem Sie nun die drei benötigten Informationen gesammelt haben, können Sie den Befehl zum Öffnen der App über die Befehlszeile erstellen.
Ihr Befehl sieht folgendermaßen aus, wenn Sie die Teile durch die drei oben gesammelten Informationen ersetzen:
explorer.exe shell:AppsFolder\<Package Name>_<Publisher ID>!<App ID>
Wenn wir beim Beispiel der Kalender-App aus dem Mail- und Kalenderpaket bleiben, würden Sie etwa Folgendes eingeben:
explorer.exe shell:AppsFolder\microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.calendar
Liebes Microsoft: Bitte machen Sie das einfacher!
Antwort3
Ich glaube, dass es jetzt zumindest in gewisser Weise möglich ist. Die Anwendung „Windows Scan“ kann beispielsweise in eine Verknüpfung umgewandelt werden, wobei „Microsoft.WindowsScan_8wekyb3d8bbwe!App“ als Ziel verwendet wird.