Programm im Windows Store veröffentlichen
In diesem Artikel zeige ich wie man sein erstes Programm im Windows Store veröffentlichen kann. Der Windows Store ist eine einfache Möglichkeit schnell und einfach eine große Menge an potentiellen Kunden anzusprechen.
Programm im Windows Store veröffentlichen
Ausgangsbasis für dieses Tutorial ist mein zuletzt erstelltes WebView2 Projekt, welches bereits als .NET Core Programm veröffentlicht wurde. D.h. in einem Ordner liegen bereits alle Dateien die für die Ausführung auf dem Rechner des Kunden notwendig sind. Sie müssen nur noch verpackt und im Windows Store verfügbar gemacht werden. Der erste Schritt ist nun die Erstellung eines Installers. Die folgende Anleitung und deren Screenshots wurden mit der aktuellen Version von Visual Studio 2019 gemacht. Die Anleitung kann in zukünftigen Versionen abweichen.
Installer erstellen
Ich verwende dazu ich Visual Studio. Alternativ kann man auch auf 3rd Party Software setzen, es gibt sehr viele unterschiedliche Möglichkeiten. Es macht aber Sinn, wenn das Setup als eigenes Projekt in Visual Studio angelegt wird und mit dem Code über Git versioniert wird. Suchst du bei den Projekttemplates nach „Paket“, dann findest du das Paketerstellungsprojekt für Windows Anwendungen. Dieses wählst du:
Im nächsten Dialog muss noch ein Name für das Projekt angelegt werden, ich habe passend zum Name des zu veröffentlichendes Projekt das Setup Projekt „RacingManagerWindowsAppSetup“ benannt. Bevor das Projekt angelegt wird muss noch die Zielversion und die Mindestversion vom Betriebssystem gewählt werden. Die Auswahl ist später zwar wichtig, kann aber jederzeit in den Eigenschaften des Projekts geändert werden:
Die Zielversion ist die Plattform für die das Programm ursprünglich gebaut und hauptsächlich getestet wurde. Am meisten macht da die aktuellste Version von Windows 10 Sinn. Bei der Mindestversion wird festgelegt, ab wann die App sicher läuft. Das hat Auswirkungen darauf, welche Windows Features das Programm nutzt. Auf älteren Versionen läuft der Installer nicht. Die Wahl hängt von der Zielgruppe ab. Was auffällt ist, dass nur Windows 10 unterstützt wird. Braucht man ältere Windows Versionen muss man auf alternative Installer setzen. Die Wahl der beiden Versionen ist übrigens auch bei Android so.
Unter dem Punkt Anwendungen fügt man nun alle Projekte hinzu die mit dem Setup verteilt werden sollen. Rechtsklick auf Anwendungen und „Verweis hinzufügen“ wählen. Im neuen Dialog wähle ich die Anwendung RacingManagerWindowsApp aus:
Sollte das Programm andere Projekte als Abhängigkeiten haben (beispielsweise ein Assembly Projekt) müssen diese nicht extra hinzugefügt werden, das passiert alles automatisch.
Installer Konfiguration
Das Setup-Projekt verfügt über eine Package.appxmanifest Datei in der wir die Details des Setups eintragen. Ein Doppelklick darauf öffnet folgenden Dialog im Content Bereich von Visual Studio in dem ich auf der Anwendung Seite bereits nötige Änderungen für mein Projekt gemacht habe:
Der Schritt „Visuelle Assets“ ist überaus wichtig, sofern man einen professionellen Eindruck vermitteln möchte. Im relativ langen Conten Bereich muss man Bilder in allen möglichen Größen und Dimensionen hochladen, damit das Programm im Setup und später unter Windows immer mit der Corporate Identity gefunden wird. Das ist mühsam und Aufgabe des Grafikers. Als Entwickler kann man sich mit dem Asset-Generator helfen der aus einem Bild alle möglichen Formate erstellt. Ob diese später jedoch optimal sind sein hingestellt.
Der letzte wichtige Punkt für eine nicht UWP App ist „Verpacken“. Dort konfiguriert man noch Paketanzeigename und die Version. Spannend wird es beim Zertifikat. Man kann das Programm in einem Installer selber verteilen.Dafür ist ein signiertes Zertifikat sinnvoll, für Testzwecke kann man ein selbst signiertes und damit unsicheres Zertifikat erstellen. Da ich meine Programm direkt über den Windows Store verteile lasse ich diese Option offen, da mir der Store für mein Developer Account ein Zertifikat zur Verfügung stellt. Die Konfiguration ist damit fertig.
Exkurs Sideload/Querladen Installation (optional)
Will man die Software nicht über den Windows Store veröffentlichen und ein eigenes Setup bauen, dann braucht man ein Zertifikat. Apps werden nur von vertrauenswürdigen Entwicklern installiert, diese Zertifikate kosten Geld. Für den ersten Test erstellst du einfach ein selbst signiertes Zertifikat. Bei jeder Installation muss der Benutzer diesem unsicheren Zertifikat vertrauen – schließlich könnte jeder eines in deinem Namen erstellen. Für eine Verteilung an unbekannte Benutzer ist das keine gute Idee. Im eigenen Unternehmen ist sowas möglich, man muss den Mitarbeitern nur erklären, dass die Warnmeldung weggeklickt werden muss. So erstellt man ein selbst signiertes Zertifikat:
Das Installationspaket wird nun wie folgt erstellt:
Der folgende Dialog bringt noch einmal die Möglichkeit das Programm nicht vielleicht doch im Windows Store zu veröffentlichen. Microsoft setzt alles daran die Software in den Store zu bringen. Meistens wünschen die Kunden (für die das Programm erstellt wird) die andere Möglichkeit.
Nimmt man Querladen folgt im nächsten Dialog die Auswahl der Signatur. Die zuvor erstellte selbst signierte Signatur wurde standardmäßig ausgewählt. Über die Links gelangt man zur offiziellen Dokumentation von Microsoft in der man im Detail nachlesen kann was welche Option bewirkt.
Im nächsten Dialog legt man einen Ausgabeordner für das erstellte Paket fest, legt eine Versionsnummer fest und wählt die zu erstellende Version.
Bevor man die Erstellung des Installers nun starten kann wählt man noch einen Ort an dem man den Installer ablegt. Ein lokaler Ordner ist ok, für die meisten „nicht Windows Store“ Fälle wird das wohl ein Netzlaufwerk in einem Firmennetzwerk sein. Eine URL wäre auch eine Option.
Microsoft Developer
Der offizielle Weg um Windows Apps zu veröffentlichen ist der Windows Store. Um dort das Paket zu veröffentlichen benötigt man neben einen Microsoft Account auch einen Developer Account. Dieser kostet einmalig für die Registrierung 14 € Netto. Den Luxus habe ich mir für diesen Artikel gegönnt. Sobald die Registrierung durch ist, gelangt man auf die Microsoft Partner Seite. Im Dashboard kann man nun damit beginnen einen Store Eintrag anzulegen:
Wie du unschwer erkennen kannst habe ich bereits für meine App einen Eintrag angelegt. Über den Link „Übermittlung“ definiert man alle Eigenschaften der App, legt Beschreibungen in unterschiedlichen Sprachen an, erstellt Icons und Grafiken für den Store Eintrag und lädt das fertige App-Paket hoch.
Spätestens beim Schritt Pakete ist man am Ende der Möglichkeiten im Dashboard. Zurück im Visual Studio kannst du nun aber den neuen Store Eintrag deiner App mit dem Setup Projekt verknüpfen und dadurch eine signiertes App-Paket erstellen. Das funktioniert wie folgt:
Beim Setup Projekt wählst du bei Veröffentlichen den Punkt „App mit Store verknüpfen…“. Der folgende Dialog gibt einige Informationen und verlinkt auf die Dokumentation, brauchst du nicht weiter, der Store Eintrag ist bereits reserviert. Weiter mit dem nächsten Schritt.
Über meinen Microsoft Account der auch im Visual Studio hinterlegt ist findet der Helper nun selbstständig die Verknüpfung zum Developer Account und listet alle angelegten Apps auf. In meinem Fall ist das nur der Store Eintrag den ich zuvor erstellt hatte. Diesen wähle ich aus:
Im letzten Bildschirm des Dialogs werden die Eckdaten nochmals angezeigt:
Offensichtlich passiert mit diesem Step nicht mehr, als dass nun eine Package.StoreAssociation.xml Datei im Projekt erstellt wird. Im Store findet sich im angelegten Projekt weiterhin kein Paket, man muss immer noch eines hochladen. Was nun? Wenn man nun nochmals die Veröffentlichung eines Pakets starten will (Veröffentlichen -> App-Pakete erstellen) erscheint im Dialog nun eine neue Option:
Wenn man den Dialog nun so wie im Exkurs Sideload/Querladen beschrieben durchklickt wird das App-Paket erstellt und es startet eine Testroutine für das Paket. Der Dialog dafür sieht wie folgt aus:
Es werden unterschiedliche Tests durchgeführt, in Summe dauert die Ausführung dieser schon einige Zeit.
Hat alles geklappt, dann bekommt man ein positives Testergebnis. Meine App hat alle Tests „Bestanden“.
Im Ausgabeverzeichnis findet man nun das erstellte Installationspaket:
Im Dashboard kann man nun die *.misxupload Datei hochladen. Diese Upload wird übrigens nochmals geprüft. Sofern man nicht genau die erwartete App hochgeladen hat, wird diese nicht akzeptiert. Ich hatte beispielsweise einen Tippfehler im Namen und musste deshalb das Paket nochmals neu bauen. Wenn alles klappt sieht das wie folgt aus:
Wenn alle erforderlichen Punkte ausgefüllt sind bleibt zuletzt noch die Übermittlung der App an den Store zur Zertifizierung. Da dieser Step ein manueller Prozess ist muss man mit einer Wartezeit rechnen.
Fazit
Ich habe gezeigt, welche Schritte notwendig sind um ein Programm dahin zu bringen in den Windows Store aufgenommen zu werden. ich habe ein App-Paket erstellt, welches über einen Entwickler Account bei Microsoft signiert wird. Die Einrichtung im Store ist einer kostenpflichtigen Accounterstellung vorangestellt. Ich bin gespannt, ob mein Programm ohne weiteres die Zertifizierung besteht, oder ob noch Nachbesserungen meinerseits notwendig sind. In jedem Fall werde ich darüber berichten.