Запуск приложения UWP после развертывания из пакета — сбой

#c# #xaml #crash #uwp #windows-10-universal

#c# #xaml #сбой #uwp #windows-10-universal

Вопрос:

Я создал большое обновление для своего приложения uwp (рабочий стол Windows 10). Мое приложение для отладки и настройки выпуска запущено на моем ПК. Я создал пакет для магазина. Я развертываю приложение для тестовой папки (MyApp_VersionNumber_Test) на другом КОМПЬЮТЕРЕ — развертывание прошло успешно. Но я запускаю свое приложение, а затем происходит сбой приложения. Это журнал событий Windows:

   Faulting application name: myApp.exe, version: 1.2.1.0, time stamp: 0x580c6e57
  Faulting module name: Windows.UI.Xaml.dll, version: 10.0.14393.187, time stamp: 0x57cf9d04
  Exception code: 0xc000027b
  Fault offset: 0x000000000055bac8
  Faulting process id: 0x1fec
  Faulting application start time: 0x01d22d08a5b94ce7
  Faulting application path: C:Program FilesWindowsAppsMyPackageMyApp.exe
  Faulting module path: C:WindowsSystem32Windows.UI.Xaml.dll
  Report Id: 38924ba1-d61f-4efd-ac28-5ba06af4658d
  Faulting package full name: MyPAckage
  Faulting package-relative application ID: App
  

Я включил дамп пользовательского режима, но моя папка дампа пуста. Я использовал application insights (в моем приложении uwp), но logs пуст. Есть идеи? Проблема в xaml. Как мне найти эту ошибку?

Комментарии:

1. Вы пробовали на каких-либо других устройствах? У них такая же проблема?

2. Да, я опубликовал тестовую папку на трех компьютерах, и у меня возникла эта проблема на всех компьютерах.

Ответ №1:

Я решил эту проблему. У меня было два способа поиска решений. Я пишу их здесь, надеюсь, это поможет сэкономить время.

  1. Начните с конца. У меня есть код исключения, это 0xc000027b (как видно в окне просмотра событий Windows). В этих статьях показано, как использовать дамп для исправления ошибок в приложении Windows Store:

    Отладка аварийного дампа приложения Windows 8.1 Store

    Понимание и устранение сбоев в приложениях магазина Windows

  2. Я решил поискать проблему в исходном коде. Я открыл список исключений в Visual Studio (CTRL ALT E). Я выбрал все исключения для «Common Language Runtime», запустил в режиме отладки. Затем была обнаружена ошибка:

      var res = ResourceLoader.GetForCurrentView().GetString(key);
      

Я изменил свой код на:

     LocalizedResources = new ResourceLoader();
    var res = LocalizedResources.GetString(key);