Почему CurrentApp::AppId занимает так много времени в Windows Phone 10?

У меня есть универсальный проект Windows 8 и есть функция для получения идентификатора приложения. Следующая функция хорошо работает в Windows Phone 8.1.

Platform::Guid  appId = Windows::ApplicationModel::Store::CurrentApp::AppId;

однако он провел около 40 секунд в Windows Phone 10.

Из MSDN доступны только метаданные. другой,

Могу ли я узнать, вызвано ли это метаданными? И как это решить?


person CCC    schedule 12.01.2016    source источник


Ответы (1)


Вместо использования AppID вы можете использовать следующий код:

Windows::ApplicationModel::Package^ package = Windows::ApplicationModel::Package::Current;
Windows::ApplicationModel::PackageId^ packageId = package->Id;
Windows::ApplicationModel::PackageVersion version = packageId->Version;

Platform::String^ output = 
  "Name: \"" + packageId->Name + "\"\n" +
  "Version: " + version.Major.ToString() + "." 
              + version.Minor.ToString() + "." 
              + version.Revision.ToString() + "." 
              + version.Build.ToString() + "\n" +
  "Architecture: " + packageId->Architecture.ToString() + "\n" +
  "ResourceId: \"" + packageId->ResourceId + "\"\n" +
  "Publisher: \"" + packageId->Publisher + "\"\n" +
  "PublisherId: \"" + packageId->PublisherId + "\"\n" +
  "FullName: \"" + packageId->FullName + "\"\n" +
  "FamilyName: \"" + packageId->FamilyName + "\"\n" +
  "IsFramework: " + package->IsFramework.ToString();

Пример вывода с устройства

Output: Name: "f3e02737-ddfa-47a0-a837-37ee53459898" Version: 1.0.0.0 Architecture: Arm ResourceId: "" Publisher: "CN=heefan" PublisherId: "gsbawe9kfjm1p" FullName: "f3e02737-ddfa-47a0-a837-37ee53459898_1.0.0.0_arm__gsbawe9kfjm1p" FamilyName: "f3e02737-ddfa-47a0-a837-37ee53459898_gsbawe9kfjm1p" IsFramework: false

Я также понятия не имею, почему AppID вычисление занимает много времени.

person Heefan    schedule 12.01.2016