AppUserModelID & Disappearing Shortcuts in Windows 8

If you have a package which contains multiple shortcuts to the same executable (but different arguments), then you'll most likely find that most of the shortcuts (except one) will be hidden from the Windows 8 Start Screen, and won't even appear under "All Apps". 

This package is authored correctly and fully ICE validated.  This package creates 10 shortcuts, yet only one of the shortcuts which has a target of "Loader32.exe" is showing.  Take a look at the screenshot of the relevant program group as showin in the Windows 8 Start Screen Below.


All the rest of the shortcuts that have the same target of "Loader32.exe" are hidden.  This is evident, if I right click any of the three shortcuts above and click on "Open File Location" to reveal the path of where the shortcut physically exists.  See the Windows Explorer (aka File Explorer as it's now called in Windows 8) screenshot below:



The issue is to do with needing to explicitly set the an AppUserModelID, so that Windows 8 doesn't hide the other shortcuts where they point to the same executable but have different arguments.  If you do not explicitly set the AppUserModelID, then Windows 8 will automatically generate one.  The end result is that you can see the shortcuts in Windows Explorer (under C:\ProgramData\Microsoft\Windows\Start menu\Programs....), but it'll hide all the shortcuts (except one) from the Windows Start Screen -> All Apps.

You can set the AppUserModelID by using the tables, as described here:

Or you can do it the easy way in AdminStudio, by using "Shell Properties"  in the Editor at the bottom of the Shortcut editor.
The end result is the MsiShortcutProperty table being added.

You also need to ensure that your Windows Installer Schema is set to 500, as the MsiShortcutProperty table is only available from Windows Installer 5.0 and above.  If your schema is <500, this table will get ignored.

Now we have a package which displays all the shortcuts on the Start Screen as intended.


You can also use this very handy utility called Win7AppID to read/set the AppUserModelID of any shortcut.  This is useful if you want to confirm if the package is correctly applying the AppUserModelID to the shortcut.

Comments

Popular posts from this blog

Sideloading Universal Windows Apps on Windows 10 (Deep Dive)

An alternative method of installing device drivers