MSIX & Microsoft Store
Betrifft den eigenständigen NovaSQL Query Analyser (src/QueryAnalysis.App). Der
Monitor wird als MSI ausgeliefert und ist von alldem nicht betroffen — dafür siehe
installer.md.
Das Paket bauen
pwsh installer/msix/build-msix.ps1 -Version 1.0.0.0
Erzeugt installer/SqlQueryAnalyzer-<Version>.msix (~67 MB) und lässt die unkomprimierte
Nutzlast in installer/msix/publish/ zurück.
Eine Installation des Windows SDK ist nicht erforderlich. makeappx.exe und
signtool.exe werden beim ersten Lauf aus dem NuGet-Paket
Microsoft.Windows.SDK.BuildTools nach installer/msix/.tools/ geholt. So funktioniert der
Build auf einem gewöhnlichen Entwicklungsrechner und in einer CI, ohne dass etwas mit
Administratorrechten installiert werden muss.
Das Paket ist eigenständig: Ein Store-Paket darf sich nicht darauf verlassen, dass eine systemweite .NET-Laufzeit vorhanden ist. Daher die Größe — rund 156 MB Nutzlast, 67 MB komprimiert.
Versionsnummern
MSIX-Versionen bestehen aus vier Teilen, und der letzte Teil muss 0 sein — alles andere
lehnt der Store ab. Das Skript prüft das vorab, statt Sie das erst beim Hochladen
herausfinden zu lassen.
Bildmaterial
Sämtliche Kacheln in installer/msix/Assets/, das Anwendungssymbol
src/QueryAnalysis.App/Assets/QueryAnalyzer.ico (Programmdatei, Taskleiste, Titelzeile) und
die drei Store-Logos in docs/store/logos/ werden von installer/msix/make-assets.ps1 aus
einem einzigen Ausgangsbild erzeugt: src/Logo/NovaSQL_Query_Analyser.png. Ein neues
Logo bedeutet, diese Datei zu ersetzen und das Skript erneut laufen zu lassen — niemals eine
Kachel von Hand bearbeiten. Die Ergebnisse liegen in der Versionsverwaltung, zum Bauen oder
Paketieren braucht man also weder das Skript noch das Ausgangsbild.
powershell -File installer/msix/make-assets.ps1 # nach einer Logoänderung neu erzeugen
Was das Skript mit dem Ausgangsbild macht, damit ein Austausch weiterhin funktioniert:
- Der weiße Hintergrund wird transparent, wobei Bildmarke und Schriftzug getrennt
verarbeitet und anschließend zum vollständigen Logo zusammengesetzt werden. Das Manifest
deklariert einen transparenten Kachelhintergrund, ein weißes Quadrat säße also auf einer
dunklen Taskleiste — ein schlichtes Ausblenden höhlt aber auch die weißen Glanzlichter
innerhalb der Bildmarke aus. Der Durchgang für die Bildmarke schützt daher alles, was der
Hintergrund nicht durch eine Lücke von mehr als etwa 24 px erreichen kann; so bleiben
Trennringe, Zylinderdeckel und Sternkern deckend. Beim Schriftzug ist es genau umgekehrt:
Jede Punze ist ein geschlossenes Loch, das eine Füllung nie erreicht — schützt man sie,
bleiben die Buchstaben als weiß gefüllte Umrisse stehen: auf Weiß lesbar, auf Dunkel ein
Durcheinander. Sein Durchgang schützt deshalb nichts. Mit
-MaskPath mask.pngsehen Sie, was ein geschützter Durchgang ausblenden würde. - Kleine Größen zeigen nur die Bildmarke (44, 50, 71, 150 und die .ico); der Schriftzug erscheint auf der 310×310-Kachel, der breiten Kachel und dem Startbildschirm. Die Bildmarke wird als der Inhalt oberhalb des ersten leeren Querbands erkannt, ein neues Ausgangsbild braucht also denselben Aufbau: Marke oben, Text unten, dazwischen eine Lücke.
- Der Schriftzug „QUERY ANALYSER“ ist dunkelgrau und auf dunklem Grund schwer zu lesen. Nur die großen Kacheln tragen ihn, und die zeigt Windows 11 kaum.
Der Satz ist vollständig genug, dass Paketierung und Zertifizierung nicht an einer fehlenden Größe scheitern.
Lokal testen
Für den Upload in den Store muss das Paket unsigniert bleiben — Microsoft signiert es. Um es auf dem eigenen Rechner zu installieren, brauchen Sie eine Signatur und ein vertrauenswürdiges Zertifikat:
pwsh installer/msix/build-msix.ps1 -Version 1.0.0.0 -Sign
Das Skript erzeugt ein selbstsigniertes Zertifikat, signiert das Paket und gibt die beiden
Befehle aus, mit denen man ihm vertraut und es installiert. Dem Zertifikat zu vertrauen
schreibt nach LocalMachine\TrustedPeople und erfordert daher eine erhöhte
Eingabeaufforderung.
Eine schnellere Schleife ganz ohne Signatur — den veröffentlichten Ordner direkt registrieren (erfordert den Entwicklermodus):
Add-AppxPackage -Register installer\msix\publish\AppxManifest.xml
Get-AppxPackage 54076piwonka.NovaSQLQueryAnalyser
# starten:
Start-Process "shell:AppsFolder\$((Get-AppxPackage 54076piwonka.NovaSQLQueryAnalyser).PackageFamilyName)!QueryAnalyzer"
# aufräumen:
Remove-AppxPackage (Get-AppxPackage 54076piwonka.NovaSQLQueryAnalyser).PackageFullName
Damit wurde das Manifest geprüft und bestätigt, dass die Anwendung paketiert startet.
Wohin die Daten gehen — gemessen, nicht vermutet
Eine MSIX-Anwendung mit voller Vertrauensstellung schreibt in das echte
%APPDATA%\Roaming\QueryAnalyzer\, nicht nach
…\Packages\<PackageFamilyName>\LocalCache\Roaming\. Die AppData-Umleitung stammt aus dem
alten Desktop App Converter und gilt für ein Paket vom Typ
Windows.FullTrustApplication nicht.
Das wurde nachgemessen, denn die Intuition sagt das Gegenteil: Datenbank löschen, den paketierten Build starten — die neue Datei erscheint wieder im echten Roaming-Ordner.
Zwei Folgen, die man kennen sollte:
- Der paketierte und der gewöhnliche Build teilen sich eine Datenbank. Ein Benutzer kann zwischen beiden wechseln, ohne Verbindungsprofile oder Verlauf zu verlieren.
- Die Deinstallation entfernt diese Daten nicht. Für den Benutzer erfreulich, es bleibt aber ein Ordner zurück.
Die Anwendung nennt ihren Speicherort und die Installationsart selbst unter Datenspeicher… in der Statusleiste — man muss dieses Dokument dafür also nicht lesen.
Checkliste für die Einreichung
Die Registrierung ist seit 2026 sowohl für Einzelpersonen als auch für Unternehmen kostenlos (zuvor 19 bzw. 99 US-Dollar). Der Verkauf über die Handelsplattform von Microsoft kostet eine Provision; wer für eine Nicht-Spiele-Anwendung seine eigene Abwicklung nutzt, behält 100 %. Prüfen Sie die aktuellen Sätze vor der Preisgestaltung im Partner Center — die veröffentlichten Zahlen unterscheiden sich je nach Zugangsweg.
Vor dem Hochladen:
Die Identität ist die, die Partner Center vergeben hat — reservierter Name NovaSQL Query Analyser, Store-ID
9N7C6C5BB8RK, Eintrag https://apps.microsoft.com/detail/9N7C6C5BB8RK. Die folgenden drei Angaben müssen zeichengenau dazu passen, sonst wird der Upload abgelehnt:Wo Wert Package/Identity/Name(Manifestvorlage)54076piwonka.NovaSQLQueryAnalyserPackage/Identity/Publisher(-Publisher)CN=83C65A29-5AA0-4851-A520-6663B04A6E98Package/Properties/PublisherDisplayName(-PublisherName)piwonkaDas Herausgeberpaar ist die Voreinstellung des Skripts, ein einfacher Build ist also bereits korrekt; die GUID ist eine Identität, kein Geheimnis. Der Paketfamilienname lautet
54076piwonka.NovaSQLQueryAnalyser_0fsdk9qvhk84j— das meldetGet-AppxPackage, und darauf baut der Startbefehl oben auf.Programmdatei, MSIX-Dateiname und der Datenordner
%APPDATA%\QueryAnalyzer\behalten die alte Schreibweise mit Absicht: Den Datenordner umzubenennen würde jede vorhandene Profildatenbank abhängen.Das unsignierte Paket hochladen. Reichen Sie keinen
-Sign-Build ein.Eine URL zur Datenschutzerklärung ist Pflicht. Die Anwendung verbindet sich mit Datenbankservern, die der Benutzer benennt, und speichert deren Verbindungszeichenfolgen lokal. Das gehört erwähnt.
Fragebogen zur Altersfreigabe.
Screenshots ergänzen. Fünf je Sprachfassung unter
docs/store/screenshots/{de,en}/, aufgenommen mitdocs/store/capture-window.ps1. In der Reihenfolge der Dateinamen hochladen — die Bewertungskarte zuerst macht den Rest erst lesbar. Siehedocs/store/README.md.
Fähigkeiten
Das Manifest deklariert ausschließlich internetClient und runFullTrust. Die Anwendung
öffnet ausgehende TDS-Verbindungen zu Instanzen, die der Benutzer benennt; sie lauscht nicht
und rührt keine Benutzerbibliotheken an. Diese Liste kurz zu halten macht die Zertifizierung
unkompliziert — jede zusätzliche Fähigkeit lädt zu Rückfragen in der Prüfung ein.
Bekannte Grenzen
- Nur x64. Es wird kein ARM64-Paket gebaut. Dafür bräuchte es einen zweiten
Veröffentlichungslauf und ein Bündel (
.msixbundle); am Code scheitert es nicht. - Der Analyzer hat keine eigene Lizenzprüfung, anders als der Monitor. Für den Vertrieb über den Store ist das in Ordnung — Microsoft regelt die Berechtigung. Für jeden anderen Weg nicht.
- Für Geschäftskunden bleibt das MSI der Hauptweg. In Unternehmensumgebungen ist der Store häufig per Richtlinie gesperrt, und genau diese Benutzer sind die Zielgruppe. Betrachten Sie den Store als zusätzliche Reichweite für einzelne DBAs und Beratende, nicht als Ersatz.