我正在为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
生成)?
答案 0 :(得分:1)
这只是一个普通的GUID;您可以从应用程序的主要身份中复制它。
查看C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ProjectTemplates\CSharp\Windows UAP\1033\BlankApplication\Package-managed.appxmanifest
(路径可能略有不同,具体取决于您使用的VS版本)。此文件显示Identity
和PhoneIdentity
都设置为$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。没什么特别的