2017-02-13 23 views
3

Я разработал UWP приложения, который работает по всему миру в порядке, но я столкнуться с некоторыми проблемами с магазина или приложением с Release сборка, в то время как все работает отлично в отладке сборки ...Как отлаживать UWP приложения в режиме выпуска + «.Net Native инструмента цепи»

приложение кажется очень простой: TS позволяет пользователям создавать и форму синхронизации через веб-сервисы. При запуске приложения выполняется тест, чтобы проверить, не был ли пользователь уже зарегистрирован: если это не так, приложение переходит на страницу «Login», в противном случае она переходит на страницу «Главная страница» , который содержит список форм. Затем пользователь может редактировать каждую форму через страницу «Подробнее».

режим «Отладка»:

Когда я построить приложение в режиме «Отладка», я не возникнут какие-либо исключения, не поймают и все работает отлично.

The Store приложение:

Последняя версия приложения магазина была успешно создана и утверждена без каких-либо проблем. Но одно из моих последних изменений вызывает ошибку приложения, когда пользователь возвращается с «« »на страницу« Главная страница ».

Я подозреваю, особенно это изменение, чтобы поднять ошибку: Я добавил код на «Подробности» вид, чтобы очистить ресурсы через «OnNavigatedFrom()»:

protected override void OnNavigatedFrom(NavigationEventArgs e) 
{ 
    ViewModel = this.DataContext as DetailsViewModel; 
    if (!ViewModel.ToChildNavigate) 
    { 
     // Dispose resources 
     this.Resources.Clear(); 
     this.Loaded -= DetailsPage_Loaded; 
     ViewModel = null; 
    } 
    base.OnNavigatedFrom(e);    
} 

Чтобы исправить это, я хотел бы создать приложение в режиме «Release» с помощью «.Net Native tool chain».

"Release" режим:

В режиме "Release", я проверил также варианты "Compile с .NET Native цепи инструмента" и "код Оптимизировать". enter image description here

приложение запускает правильно и переходит оштрафовать страницу «Войти». Но после подключения пользователя приложение пытается перейти на страницу «Home»: я получаю 2 исключения, и я ничего не могу сделать ...

Первое исключение происходит один раз, и я могу «продолжить»: enter image description here

Вторые исключениями происходит каждый раз, даже если я пытаюсь продолжить: enter image description here

Я пытался добавить некоторые MessageDialog, чтобы увидеть, где произошла ошибка, но сообщение не отображается в consctructors: так что я не могу определить происхождение проблемы ...

«D ebug «режим с„родной цепи инструмента“

Наконец, я попытался построить приложение в„Debug“режим снова, но с опциями„компилировать с .NET Native цепи инструмента“и» Оптимизировать код ".

Но как это, он отлично работает, и я не могу воспроизвести ошибку встречается в режиме «Release» ...

У меня нет другой идеи, и я не могу anwser на эти вопросы :

  • Почему существуют различия между версией магазина и режимом выпуска?
  • Как я могу использовать приложение в режиме Release? можно ли «отладить» его?
  • я должен запустить приложение в режиме выпуска для фикса встреченной ошибки в версии магазина ...

С уважением,

ответ

3

выпуском конфигурации по умолчанию оптимизировать код который теряет некоторые артефакты, используемые для отладки. В результате попытка отладки конфигурации Release может привести к некоторым проблемам.

It is important to note that the Release configuration is by default fully optimized code (e.g. code inlining will be applied in many places). These optimizations will have a significant impact on the debugging experience including unpredictable stepping and breakpoint behavior (due to code inlining) and the inability to inspect most variables due to memory optimizations.

Так отлаживать UWP приложение в режиме «Release», мы можем создать пользовательскую конфигурацию и включить Native набор инструментов .NET для этой конфигурации. Не забудьте оптимизировать код.

Для получения дополнительной информации см. Debugging .NET Native Windows Universal Apps.

+0

Спасибо @Jay Zut: это не сработало для меня. Я добавлю новую конфигурацию, как в вашей ссылке: 'Release' с' Compile with .NET Native toolchain' проверен и 'Оптимизировать код' не отмечен. Но точки останова всегда недоступны: «В настоящий момент точка останова не будет удалена. Для этого документа не было загружено никаких символов». Вы можете увидеть мои другие тесты [здесь] (http: // stackoverflow.ком/вопросы/42256423/зрительно-студия-2015-я-могу-отладочные-и-потребительные контрольные точки-в-релиз-режиме) –

1

У меня была такая же проблема некоторое время назад. После долгого времени попытки и ошибки я смог отлаживать в режиме выпуска с помощью собственной цепочки инструментов .net с удаленной отладкой на другом ПК (в моем случае это была поверхность).

Я использовал Visual Studio 2017 и на удаленной машине дистанционных инструменты отладки для 2017.

Надеется, что это помогает.

Приветствия.

 Смежные вопросы

  • Нет связанных вопросов^_^