You probably remember my first three blogs about WhatsApp Desktop which, like Brave Browser and Telegram Desktop, are installed in the user’s context instead of the device context.
Marcel Meurer recently wrote a blog called The secret about disappearing appx / UWP applications in an environment using FSLogix in which he refers to ‘WhatsApp Desktop’ which can be downloaded from the Microsoft Store.
That one comes as 5319275A.WhatsAppDesktop_2.2140.5.0_x64__cv1g1gvanyjgm.Appx which is an MSIX package. Don’t let the .Appx extension fool you. When you look at the AppxManifest.xml it is an MSIX:
<rescap:Capability Name="runFullTrust" />
In this blog he describes this issue:
“A few weeks ago, a customer told me about a particular behavior in their Azure Virtual Desktop environment. The users are using a dedicated session host, and the profile is managed with FSLogix to save user data on a file server additionally. Some of the users install applications from the Windows Store (Appx, Universal Apps).
If the user logs off at the end of the day and logs in the next day, the applications are gone, and only a dead item is left in the start menu. The users have to install the app again from the Windows Store. Luckily, the applications settings are in the user profiles, so the applications are still configured after reinstallation.”
On LinkedIn Marcel kindly asked: “Hopefully, there is a smarter way, as I used in my workaround”.
Yes Marcel there is! Using Liquit Workspace and a Smart Icon. Here you go …
Download the .Appx file from the Microsoft and create a package in Liquit Workspace with two action sets: Install and Launch:
The first action set has one Install uploaded Windows App action called ‘Install 5319275A.WhatsAppDesktop_2.2140.5.0_x64__cv1g1gvanyjgm.Appx’:
Which installs this .Appx package per device. Using AppX/MSIX terminology this means to stage and register this MSIX:
If you want to make sure this MSIX is always installed when it’s not available, on the action set you can set the install Frequency to ‘Always’:
And then use the package family name of this MSIX to only install it when it’s not installed:
Then looking at the action set, that has one Start Windows App action which uses the Package Family Name and the Application Id (taken from the AppxManifest.xml):
After that, add user and/or device entitlements to publish it in the Workspace and you’re done:
Here’s a video how this works: