c# - 如何确定字符串是否是已安装 UWP 应用程序的 AUMID?

标签 c# uwp

是否有 .Net 库可用于测试字符串是否为已安装 UWP 应用的 AUMID?

一个例子,如果用户输入

Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge

我如何确保确实存在安装了此 AUMID 的 UWP 应用?

最佳答案

嗯,UWP 的 AUMID 格式为 FamilyName!AppID,如记录 here ,例如。

要确定给定字符串是否是已安装 UWP 应用的 AUMID,您必须与其进行比较。您可以构建所有 UWP 应用程序 AUMID 的列表,并查看该字符串是否是其中之一,或者您可以在感叹号处拆分您的字符串,找到具有给定系列名称的包,如果该包存在,则查看它是否具有具有给定应用程序 ID 的应用程序。

执行这些操作的 API 是 Windows.Management.Deployment.PackageManager类(class)。不幸的是,在枚举包内的应用程序时,我们无法获得应用程序 ID。仅在 SDK 的 10.0.16257.0 版本中 Windows.ApplicationModel.Core.AppListEntry类有一个 AppUserModelId 属性。如果没有它,您似乎必须自己查看包 list 。

当然,在 PowerShell 中要容易得多,因为它有一个 cmdlet,可以让您以对象形式获取程序包 list 。 Microsoft 有这个示例来生成所有 UWP 应用 AUMID:

$installedapps = get-AppxPackage

$aumidList = @()
foreach ($app in $installedapps)
{
    foreach ($id in (Get-AppxPackageManifest $app).package.applications.application.id)
    {
        $aumidList += $app.packagefamilyname + "!" + $id
    }
}

$aumidList

(来自:Find the Application User Model ID of an installed app )

现在看看你的字符串是否在列表中。

关于c# - 如何确定字符串是否是已安装 UWP 应用程序的 AUMID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45947579/

相关文章:

c# - 文件夹选取器在移动设备上引发异常

xaml - ScrollViewer IsHorizo​​ntalScrollChainingEnabled 和 IsHorizo​​ntalRailEnabled 功能

c# - .NET 扫描 API

c# - 如何从 C#.net 通过 DeviceIoControl 使用 IOCTL_SCSI_MINIPORT?

c# - 在 WinForms 的组合框中插入项目

visual-studio-2015 - 如何防止 UWP 项目在每个 Visual Studio session 上恢复 NuGet 包?

c# - 如果我使用类似 NHibernate 的 ORM,为什么还需要 LINQ?

c# - 如何在 WPF 中进行 3D 转换?

C# UWP - 如何从另一个页面访问页面控件?

Javascript:监听回调返回