C# - 检查 Windows10 上是否安装了 UWP 应用

nam*_*nam 2 c# uwp

问题:使用C#我们如何检查10`UWP上是否安装了应用程序Windows

可能的目标:我真正的动机是建立一个微软Office应用程序中VS2017使用Microsoft.Office.Interop与像UWP应用程序交互这一解释在这里。但是办公应用会首先检查是否安装了所需的 UWP 应用。

对于旧的 Windows 32 位和 64 位应用程序,我们可以使用以下各种方法检查是否安装了应用程序。我想知道 Windows 10 上的 UWP 是否有类似的东西:

private static bool IsSoftwareInstalled(string softwareName)
{
    var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall") ??
              Registry.LocalMachine.OpenSubKey(
                  @"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall");

    if (key == null)
        return false;

    return key.GetSubKeyNames()
        .Select(keyName => key.OpenSubKey(keyName))
        .Select(subkey => subkey.GetValue("DisplayName") as string)
        .Any(displayName => displayName != null && displayName.Contains(softwareName));
}
Run Code Online (Sandbox Code Playgroud)

然后用一条if语句来调用它:

if (IsSoftwareInstalled("OpenSSL"))
Run Code Online (Sandbox Code Playgroud)

Ste*_*SFT 6

你可以从 Win32 应用调用 PackageManager.FindPackageForUser API 来检查是否为当前用户安装了 UWP。

https://docs.microsoft.com/en-us/uwp/api/windows.management.deployment.packagemanager.findpackageforuser