CoreApplication.Id vs. ASHWID vs Package.Current.Id

时间:2013-09-19 06:27:19

标签: windows-8 windows-runtime

有谁可以告诉我这3个ID之间的区别?

我想识别我的win8应用程序的特定安装(每次购买/设备而不计算次要更新),哪一个最适合我的需要?

2 个答案:

答案 0 :(得分:1)

你可能需要其中两个:

  • 应用程序特定硬件ID(ASHWID)包含有关设备的信息(由于后者附加到用户帐户,因此不一定与购买相匹配)。此外,您可能需要按照here所解释的硬件漂移进行说明。
  • Package.Current.Id标识您的应用程序,包括其完整版本,因此您需要忽略您允许通过次要更新进行更改的部分。

编辑: 我不认为CoreApplication.Id会对你有用。它只是在一个包中唯一的,以区分单个包中的多个应用程序。我不认为你通过VS设计师编辑它,但如果你在编辑器中打开appxmanifest文件,你就可以看到它的价值,例如:

<Package>
  <Applications>
    <Application Id="App" />

最好记录here

答案 1 :(得分:1)

如果要识别设备,ASHWID是可行的方法(您可能希望将其与用户本地存储上生成的Device Guid结合使用,以简化已知设备ASHWID的服务器查找)

如果您想确定购买,您一定要查看CurrentApp.GetAppReceiptAsync(以及类似方法)。 http://msdn.microsoft.com/fr-fr/library/windows/apps/jj649137.aspx

您也可以根据您的情况使用两者的组合。