#c# #.net #wpf #xaml #prism
#c# #.net #wpf #xaml #prism
Вопрос:
Если я перейду в Debug -> Start без отладки, мое приложение WPF будет работать нормально, но если я перейду в Debug -> Start Debugging, пользовательский интерфейс исчезнет, и это будет в окне вывода в разделе Debug:
Программа»[6744] UI.exe : Управляемый (v4.0.30319)’ завершился с кодом -1073740791 (0xc0000409)
Никаких исключений не генерируется или что-то еще. Почему это может произойти? Я использую библиотеку Prism, поэтому я не уверен, связано ли это с этим.
Я могу выполнять отладку без сбоев, если подключу отладчик к процессу вручную.
Комментарии:
1. Что происходит, когда вы выполняете Debug -> Запуск без отладки, а затем подключаетесь к процессу, который хотите отладить (Debug-> Присоединить к процессу или что-то в этом роде). Можете ли вы на самом деле выполнить отладку тогда?
2. У вас есть переполнение стека в соответствии с этим
3. @Skrymsli это, похоже, работает, чтобы разрешить отладку.
Ответ №1:
В моем случае у меня та же проблема. Когда я изменил «имя сборки» на, максимум 42 символа, мое приложение было построено…
Я думал, что это безумие, но работает.
Ответ №2:
Вероятно, при инициализации объекта возникает исключение, приводящее к повреждению кучи (stackoverflow или произвольное состояние нехватки памяти). В основном это вызвано методами P / Invoke или другим небезопасным кодом. Если вы не используете какой-либо небезопасный код, проверьте сторонние библиотеки, которые вы используете в качестве источника ошибки.
Ответ №3:
При использовании PRISM могут возникать некоторые ошибки, если какой-либо из контейнеров (заданный как region) содержит содержимое. В каждой области должны быть элементы управления пустым контейнером или элементы управления пустым элементом.
Prism имеет несколько разных конфигураций для режима отладки и выпуска, что может быть причиной. Попробуйте проанализировать построчно ваши файлы кода XAML, где у вас есть элементы управления regions, и проверьте, пусты ли теги. Лучший способ убедиться, что контейнеры пусты, — создать короткие версии тегов
например, попробуйте это
<ContentControl />
вместо этого
<ContentControl></ContentControl>
Ответ №4:
У меня похожая проблема в моем многопоточном приложении. Я пытался найти решение, но безуспешно. Если ваше приложение использует аналогичный вид многопоточности — проблема может быть в этом. Убедитесь, что ваш пользовательский интерфейс выполняется в одном потоке с основным потоком…
Комментарии:
1. Это скорее комментарий, чем ответ, и, вероятно, он не поможет никому, кроме OP. Возможно, если бы вы расширили идею демонстрации этого или предоставили способ подтвердить или исключить эту проблему.
Ответ №5:
Эта проблема может быть вызвана утилитой Microsoft EMET (Enhanced Mitigation Experience Toolkit) (http://support.microsoft.com/kb/2458544 ) если у вас установлен такой.
Проверьте журнал событий приложения на наличие ошибок типа «Имя приложения: UI.exe. EMET обнаружил смягчение EAF и закроет приложение: UI.exe «.
Если у вас есть такие ошибки — попробуйте настроить или просто удалить EMET 🙂
Ответ №6:
У меня была та же проблема, я изменил «Целевую платформу» с x86 на «Любой процессор», и это работает нормально. Но только для VS2010, не для VS2013