是否有 .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/