Какой PhoneProductId использовать для приложения UWP, которое не является обновлением - PullRequest
0 голосов
/ 29 апреля 2018

Я занимаюсь разработкой нового приложения UWP для Windows 10 Desktop и Mobile. 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 голосов
/ 30 апреля 2018

Это просто обычный 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 используются для чего-то другого :). Из документа шаблона проекта видно, что это просто GUID. Ничего особенного

...