Publish Store Package (EXE)
Submit your launcher as a Win32 installer you host and sign yourself
Coming soon. The tab does not let you pick this route yet. Use Store Package (MSIX) today, where Microsoft signs the package for you.
On this route the Store shows the listing and handles discovery, then sends players to the installer on the Game Launcher Cloud CDN, the same file your permanent download links already point at. Nothing about how your launcher builds or updates changes, and players keep receiving updates through the launcher's own self-update rather than through the Store.
Hosting is on us either way. What this route asks of you, and Store Package (MSIX) does not, is a code signing certificate of your own and a build kept pinned for as long as the submission points at it.
Before you start
Register on Partner Center and complete identity verification. The account is free, and so is publishing. See Set Up Your Partner Center Account.
Reserve your app name in Partner Center. This cannot be done through any API.
Have a code signing certificate. The Store requires a valid Authenticode signature on the package.
Your listing has to be free, and it needs at least four screenshots, each one a direct capture of the launcher running. See Store Requirements.
Where to find your values
In the dashboard, open your launcher and go to Integrations > Microsoft Store, then choose Store package (EXE). Every field below is shown there with a copy button, already filled in for your launcher.
Filling in the Packages page
App type
EXE
Installer parameters
/S
Package URL
The versioned installer URL for one specific build
Architecture
x64
Languages
The 12 languages your launcher ships
Installer handling
Choose EXE, not MSI. The launcher installer is an EXE. If you select MSI, the Store runs it with /qn, which the installer does not recognise, so it opens the wizard and waits for a click that never comes. The install times out and the Silent install, Add or remove programs, and Bundleware checks all come back as "We could not identify".
The package URL must be versioned
Microsoft states that "the binary on the package URL must not change after it is submitted". Use the URL of a specific build:
Never submit the /Builds/Latest/ URL. That folder is overwritten every time you deploy, so the Store would detect a swapped binary, re-certify it, and pull your app if the new build fails certification.
When you select a build on the Microsoft Store tab, that build is pinned: build backup retention skips it and it cannot be deleted while it is published, so the URL you gave the Store keeps working no matter how many times you deploy afterwards.
Unpin the build only after the Store submission no longer points at its package URL. Unpinning returns it to the normal retention window, where it may be deleted.
Publisher name
Store validation rejects an Add or remove programs entry whose Publisher is blank, or that just repeats the product name. Set Publisher name on the Microsoft Store tab to your company's legal name, matching the publisher display name verified on your Partner Center account.
If you leave it empty, the installer falls back to your account's company name, and then to the launcher title.
The value applies to the next build you deploy, so deploy once after setting it and submit that build.
Signing the installer
Upload your code signing certificate as a .pfx in the dashboard, with its password if it has one. Every installer built from that point on is signed and timestamped with it.
Signing happens during a deploy, so deploy the launcher once after saving. The dashboard warns you when the certificate is expiring or already expired, which matters because reissuing takes days and installers built with an expired certificate are effectively unsigned.
Package validation
Microsoft runs five automated checks. You can run three of them yourself on a clean Windows machine before submitting.
UAC prompts are allowed. Any other prompt is a failure.
Your launcher must appear with a name, a publisher, and a version. The publisher must not be blank or a copy of the name. Check HKLM:\SOFTWARE\... instead if your launcher installs for all users.
Run the silent install, then compare the list of installed programs before and after. Your launcher must add exactly one entry. More than one means the Store treats it as bundleware.
The remaining two checks, Malware and Code sign, are static analysis on the installer file. Verify the signature with:
After submission
Certification takes at least a day. When you later deploy a new launcher build and want the Store to serve it, use Update submission in Partner Center with the new versioned URL, then pin the new build in the dashboard and unpin the old one.
Related
Last updated
Was this helpful?