2016-09-13 108 views
0

我正在研究将安装在运行Windows 10 IoT的设备上的UWP应用程序。如何唯一标识appx包

我需要能够唯一标识对应于我的应用程序的appx包。我需要一些在构建和发布之间不会改变的东西。

我能够从一个Web请求以下信息`http://insertIPAddressHere:8080/api/app/packagemanager/packages

伊夫取出位,可能是敏感的部分,但你可以键入Get-AppxPackage到PowerShell中得到什么的去除领域的想法看起来像。 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硬编码,但我不知道这是一种适当的方式,以确定我的应用程序。它具有什么看起来像一些随机生成的字符,我还没有发现任何让我放心的是,构建和修订之间的价值将保持不变。我找不到解决方案中的任何地方。它只在一些编译的文件中提到。

回答

0

PackageFullName在这种情况下是您的唯一标识符 - 它将编码包名称,版本和发布者。

如果想包的版本为您的标识符的一部分,使用PackageFamilyName

你可以看到这一切通过PowerShell的:

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

用'的问题PackageFamilyName'是,我不知道在那里它在我的解决方案定义。如果我不知道它,它有可能改变吗? –

+0

它在您的清单中定义。它不会改变。 – gdc