Skip to content

Distro Versioning & Release Strategy

Mike Griese edited this page May 26, 2017 · 2 revisions

When you near the time to publish your distro to the Store, there are a few related things to consider: Distro APPX Updates, and Distro Versioning & Release:

Distro APPX Updates

Whenever you update an APPX & publish to the Store, the updated package is automatically pushed to all users who’ve installed your package on their PC(s).

While downloaded APPX’s are unpacked & stored once per machine, each user's "instance" of the APPX are configured independently: When a user first runs your distro, the distro itself will be unpacked into a private folder accessible only to that user, and inaccessible by any other app on the machine, other than your distro launcher. 

Note: User's existing distro's are NOT automatically upgraded when a distro APPX is upgraded! Distro updating is left entirely in the user's hands so that they can update their distro(s) as and when they want to.

If a user uninstalls or cleans your distro, and then re-installs and re-runs it, they will install the latest distro version available in the Store at that moment.

Distro Versioning & Release

A question you’ll need to consider is: Do you want to publish:

  1. One distro package per significant release of your distro
  2. A single "evergreen" distro package that is always the "latest"?

Or BOTH?

Depending on your choice, there are a few things to take care to choose a versioning/naming strategy that makes it easy for your users to invoke the required release from the command-line.

Version-specific Distro Packages

If the current release of your distro is v10, you should set your distro's ExecutionAlias entity in your appxmanifest file to distro10.exe:

<Extensions>
    <uap3:Extension 
        Category="windows.appExecutionAlias" 
        Executable="distro10.exe" 
        EntryPoint="Windows.FullTrustApplication">
        <uap3:AppExecutionAlias>
            <desktop:ExecutionAlias Alias="distro10.exe" />
        </uap3:AppExecutionAlias>
    </uap3:Extension>
</Extensions>

Later, when you publish v11 of your Distro, you should update the ExecutionAlias above to distro11.exe.

Now, the user can decide which instance to run: distro10 or distro11 via the command-line, or, of course, via the named tile in the Windows Start Menu!

Evergreen Distro Package

If, you publish an "evergreen" distro (always the latest version), then you might opt to set the ExecutionAlias above to distro.exe - i.e. exclude the version number! In this case, the user will only need to type distro to launch the "evergreen" distro instance.

Though note - if the user has installed your evergreen app which contains v11 (for example) and you publish a new version of your app that contains the v12, the user will still get v11 when they run distro - we won't upgrade the distro automatically. The user can always upgrade their distro manually from inside the distro (if you provide a mechanism for doing that) or, they could clean their instance distro clean, and the next launch install the new version (v12)