我正在使用将安装在运行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
中的硬编码,但我不确定这是否是识别我的应用的合适方式。它看起来像一些随机生成的字符,我还没有找到任何让我放心的东西,即构建和修订之间的价值将保持不变。我无法在我的解决方案中找到它。它只在一些编译文件中提到过。
答案 0 :(得分:0)
PackageFullName
是您的唯一标识符 - 它将对包名称,版本和发布商进行编码。
如果您 不 希望将软件包版本作为标识符的一部分,请使用PackageFamilyName
。
你可以通过powershell看到这一切:
get-appxpackage | where name -eq "My.PackageName"