I have a launcher tool written in C# .NET Winforms Framework 4.7.2. I want to add the ability for the user to find and launch "Metro" style apps (now called AppX apps, or UWP apps?).
From what I've been able to piece together, I can use PowerShell to get a list these installed apps via Get-AppxPackage. That gives my app each one's full name, which can then be used with GetPackageInfo via Interop to get information about the app, like its icon location. My app can also launch the app via ShellExecuteEx (again, Interop) using the format:
Shell:AppsFolder\NAME_OF_THE_APP_PACKAGE!App
I'd like to avoid PowerShell for the initial listing. I see UWP's PackageManager class but is that available from a .NET Framework assembly, or must I somehow call it from a UWP assembly? (I tried adding a UWP class library to my solution and referencing it from my .NET Framework assembly, but it didn't like that, unsurprisingly.)
My colleagues built a free app that lists all the packages from the machine and allows you to launch an external EXE inside the container of a specific app container.
You can see the code on GitHub, hope it helps: https://github.com/Caphyon/hover