2016-09-13 103 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