For whatever it's worth, you can use PowerShell to get store apps and the EXE. This is the RunStoreApp function in S+.net - you can kind of see what it's doing.
var p = new System.Diagnostics.Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "PowerShell.exe";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.Arguments = "-command get-appxpackage";
p.Start();
List<string> arrayOfLines = new List<string>();
while (!p.StandardOutput.EndOfStream)
{
arrayOfLines.Add(p.StandardOutput.ReadLine());
}
p.WaitForExit();
foreach (var line in arrayOfLines)
{
if (line.Contains("PackageFamilyName : "))
{
var appPackageFam = line.Replace("PackageFamilyName : ", "");
if (appPackageFam.ToLower().Contains(packageName.ToLower()))
{
RunProgram(ExpandEnvironmentVariables("%SystemRoot%") + "\\explorer.exe", $"shell:appsFolder\\{appPackageFam}!App", "", "", false, false, false);
break;
}
}
}
The packageName variable is just a string to match on, like "calc" will run the first Store App found with "calc" in the package name.