Я разрабатываю приложение WPF в Visual Studio 2013 Update 5 на Windows 7 x64 SP1. После запуска программы загрузите xml-файл поверх http и проанализируйте его. Все работало до сегодняшнего дня, и проблема в том, что исключение начинается внезапно, никаких существенных изменений в проекте не было, никаких новых ссылок не было добавлено.EntryPointNotFoundException в advapi32.dll при запуске приложения
Теперь при запуске программы бросает System.Windows.Markup.XamlParseException
с сообщением «Метод или операция не осуществляется» и это происходит еще до InitializeComponent()
поэтому никто линии моего кода не выполняется. Затем я заглянул в окно IntelliTrace в Visual Studio и нашел цепочку исключений, из которых System.EntryPointNotFoundException
с сообщением «Не удалось найти точку входа с именем« EventSetInformation »в DLL 'advapi32.dll' '.
Поиск this и this говорят, что EventSetInformation
- это только окна 8+. Таким образом, Windows 7 пропускает этот метод, и здесь исключение, но как моя программа может ссылаться на этот метод, пока он (программа) не связан с окнами 8, не бит? Я также могу предположить, что в Visual Studio есть некоторые компоненты, связанные с Update-5, которые могут запускать этот метод advapi32, но если это так - как я могу отключить эту функцию?
Редактировать
Программы с использованием .NET 4.5
информации Исключения:
System.Windows.Markup.XamlParseException occurred
Message=The method or operation is not implemented.
Source=PresentationFramework
StackTrace:
in System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
Edit2
Как Стив и Ганс заметили в комментариях, актуальная проблема, наконец, не была связана с advapi32 библиотека. У меня был класс WindowEx
, полученный из Window
с некоторыми пользовательскими материалами, и мое визуальное окно было получено из этого WindowEx
. Возможно, мой пользовательский класс пропустил какой-то метод (если верить сообщению исключения), но после переключения базового класса обратно на Window
и установки пользовательской логики с WindowEx
непосредственно в визуальное окно, ошибка исчезла.
Ваша вторая ссылка предполагает, что это «ожидаемое поведение» (не то, что я одобряю это или даже знаю, верно ли это) - например, чистые 4.6 броски и проглатывает это исключение в Windows 7 в настоящее время. Автор этой ошибки последний признает актуальную проблему сбоя приложения, с которой он не связан – Steve
Это ожидаемое исключение, когда вы запускаете более старую версию Windows. Это безобидно, попытка/catch гарантирует, что он не завершит программу. Вы увидите его в окне IntelliTrace. Вы еще не нашли реальной причины, по которой у вас есть эта проблема. –
Проблема с CLR ядра - см. Https: // github.com/dotnet/coreclr/issues/974 –