Windows 是AUMID';s(应用程序用户模型ID';s)是否唯一?

Windows 是AUMID';s(应用程序用户模型ID';s)是否唯一?,windows,windows-8.1,Windows,Windows 8.1,例如,免费应用程序3D Builder(适用于Windows 8.1)的AUMID为“Microsoft.3DBuilder_8wekyb3d8bbwe!app”。我从注册表中获得了这个值。它是唯一的还是静态的 如果你需要更多的信息,请告诉我 AUMID格式是包族名称,后跟感叹号和应用程序ID。可以在AppxManifest.xml文件中的元素下找到应用程序ID 资料来源: 应用程序ID是唯一的,因此是的,每个应用程序的AUMID都是唯一的。AUMID是唯一的吗?是和否 ApplicationU

例如,免费应用程序3D Builder(适用于Windows 8.1)的AUMID为“Microsoft.3DBuilder_8wekyb3d8bbwe!app”。我从注册表中获得了这个值。它是唯一的还是静态的

如果你需要更多的信息,请告诉我

AUMID格式是包族名称,后跟感叹号和应用程序ID。可以在AppxManifest.xml文件中的元素下找到应用程序ID

资料来源:


应用程序ID是唯一的,因此是的,每个应用程序的AUMID都是唯一的。

AUMID是唯一的吗?是和否

ApplicationUserModelId(AUMID)是PackageFamilyName和PackageRelativeApplicationID(PRAID)的组合。后者是AppxManifest.xml中的“Id”

PRAID在一个包中是唯一的;它在包中不是唯一的

包标识是一个5元组:名称、版本、体系结构、资源ID和发布者(通常表示为PublisherId)

PackageFullName在空间和时间上都是唯一的-具有相同PackageFullName的两个包是相同的。[您最好不要更改包的位,而是赋予它们相同的标识-这违反了appmodel并玩弄了标识的概念。各种检查(尝试)阻止了这一点,例如,向商店提交具有相同内容的不同包不应成功。]

PackageFamilyName就是Name+PublisherId。因此,它在所有包中都不是唯一的

appmodel有一条规则,即1个用户在包族中注册的主(应用程序)包不能超过1个。这不仅是完全合法的,而且是一个设计功能,在一台机器上我可以安装Scrabble v1,Joe可以安装Scrabble v2,Mary可以安装Scrabble v3,WU通过AutomaticUpdates可以安装Stage'd v4(尽管还没有用户引用它)。在这种情况下,您可以在计算机上同时拥有包系列中的4个主包,尽管对于任何一个用户,只有(最多)1个可供使用(Register'd)

所以AUMID在机器上不是唯一的。 但是AUMID+User+PackageType=Main在机器上是唯一的

  • PackageType_Main很重要。一个用户可以注册0-1主包、0+资源包和0+框架包。只要您将视图的范围仅限于主包(即仅允许包含的包),那么AUMID+用户在计算机上是唯一的
**因为不同的机器在一个系列中可能有不同的主软件包,所以AUMID+用户在不同的机器中并不是唯一的


***没有规则规定PRAID在一个系列中的包的各个版本中保持不变,因此Scrabble v1可以有Id=“App”,v2可以有Id=“MyApp”,v3可以有Id=“Look.Its.Me.Scrabble”等。很少有开发人员更改他们的PRAID(因为它往往会弄乱对AUMID的任何编码或持久化引用)但是没有规则禁止它。

那么我们可以假设AUMID对于机器上的每个用户都是唯一的吗?