如何以唯一方式识别appx包

时间:2016-09-13 21:57:27

标签: windows-store-apps uwp

我正在使用将安装在运行Windows 10 IoT的设备上的UWP应用。

我需要能够唯一地识别与我的应用对应的appx包。我需要在构建和发布之间不会改变的东西。

我能够将来自网络请求的以下信息发送到“http://insertIPAddressHere:8080/api/app/packagemanager/packages

我删除了可能敏感的部分,但您可以在powershell中键入Get-AppxPackage以了解删除的字段的外观。来自powershell的PackageFamilyName似乎与网络请求中的PackageRelativeId相关联。

{
   "InstalledPackages":[
         ...
      {
         "CanUninstall":true,
         "Name":"removed",
         "PackageFamilyName":"removed",
         "PackageFullName":"removed",
         "PackageOrigin":5,
         "PackageRelativeId":"removed",
         "Publisher":"removed",
         "Version":{
            "Build":68,
            "Major":0,
            "Minor":0,
            "Revision":0
         },
         "RegisteredUsers":[
            {
               "UserDisplayName":"removed",
               "UserSID":"removed"
            }
         ]
      }
   ]
}

我考虑过PackageRelativeId中的硬编码,但我不确定这是否是识别我的应用的合适方式。它看起来像一些随机生成的字符,我还没有找到任何让我放心的东西,即构建和修订之间的价值将保持不变。我无法在我的解决方案中找到它。它只在一些编译文件中提到过。

1 个答案:

答案 0 :(得分:0)

在这种情况下,

PackageFullName是您的唯一标识符 - 它将对包名称,版本和发布商进行编码。

如果您 希望将软件包版本作为标识符的一部分,请使用PackageFamilyName

你可以通过powershell看到这一切:

get-appxpackage | where name -eq "My.PackageName"