是否有.Net库用于测试字符串是否为已安装的UWP应用程序的AUMID?
例如,如果用户输入
Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge
如何确保实际安装了此AUMID的UWP应用程序?
答案 0 :(得分:3)
嗯,UWP的AUMID格式为 FamilyName!AppID ,例如记录为here。
要确定给定字符串是否为已安装的UWP应用程序的AUMID,您必须与之进行比较。您可以构建所有UWP应用程序AUMID的列表,并查看该字符串是否是其中之一,或者您可以在感叹号上拆分字符串,找到具有给定系列名称的包,如果包存在,请查看它是否具有具有给定应用程序ID的应用程序。
执行这些操作的API是Windows.Management.Deployment.PackageManager
类。不幸的是,在枚举包中的应用程序时,我们没有获取应用程序ID。仅在SDK的10.0.16257.0版中,Windows.ApplicationModel.Core.AppListEntry
类具有AppUserModelId
属性。如果没有它,你似乎必须自己查看包装清单。
当然,在PowerShell中要容易得多,因为它有一个cmdlet可以以对象形式获取包清单。 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 )
现在看看你的字符串是否在列表中。