哪个PhoneProductId用于非升级的UWP应用程序

时间:2018-04-29 13:55:33

标签: uwp windows-10-universal windows-10-mobile appxmanifest

我正在为Windows 10桌面和移动开发新的UWP应用程序。 PhoneIdentity似乎是.appxmanifest文件中的必填项。虽然MSDN明确指出PhoneProductId应该是什么,但如果应用程序是升级版,则它不会解释使用什么值,以防它不是。

由于此应用程序不是升级,我的第一直觉是使用空GUID(00000000-0000-0000-0000-000000000000)。这样做会导致Visual Studio在尝试部署应用程序以进行调试时返回错误:

1>------ Deploy started: Project: MyApp, Configuration: Debug ARM ------
Deploying to Phone Internal Storage...
Updating the layout...
Copying files: Total <1 mb to layout...
Checking whether required frameworks are installed...
Registering the application to run from layout...
DEP0700: Registration of the app failed. [0x80073CF6] Package could not be registered. (Exception from HRESULT: 0x80073CF6)
========== Deploy: 0 succeeded, 1 failed, 0 skipped ==========

PhoneProductId设置为随机GUID似乎可以解决部署问题,虽然没有任何文档我对做某事感到有点不安,这似乎有用,但不知道它为什么会有效。

是否有特定的GUID用于非升级的应用?如果没有,此GUID是否需要遵循任何特定协议(例如特定版本或类型,或通过应用Identity Name生成)?

1 个答案:

答案 0 :(得分:1)

这只是一个普通的GUID;您可以从应用程序的主要身份中复制它。

查看C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ProjectTemplates\CSharp\Windows UAP\1033\BlankApplication\Package-managed.appxmanifest(路径可能略有不同,具体取决于您使用的VS版本)。此文件显示IdentityPhoneIdentity都设置为$guid9$

<Identity
  Name="$guid9$"
  Publisher="$XmlEscapedPublisherDistinguishedName$"
  Version="1.0.0.0" />

<mp:PhoneIdentity PhoneProductId="$guid9$" 
  PhonePublisherId="00000000-0000-0000-0000-000000000000"/>

据推测,GUID 1到8用于其他东西:)。您可以从the Project Template docs看到它只是一个GUID。没什么特别的