Поверхность LoadFromContext
У меня очень простая проблема с С#, которая загружает окно Windows WPF из библиотеки. Здесь код:
public partial class App : Application
{
public App()
{
MainWindow mainWindow = new MainWindow();
mainWindow.Show();
}
}
Но когда я запускаю его, он разбивается на строку mainWindow.Show();
со следующей ошибкой:
Помощник по удаленной обработке "LoadFromContext" обнаружил проблему в "C:\Users.....\bin\Debug\Test.vshost.exe".
Дополнительная информация: сборка с именем WpfXamlDiagnosticsTap была загружена из 'файл:///C:/ПРОГРАММНЫЕ ФАЙЛЫ (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/CLIENTDIAGNOSTICS/XAMLDIAGNOSTICS/x64/WpfXamlDiagnosticsTap.dll' используя контекст LoadFrom.
Использование этого контекста может привести к неожиданному поведению для сериализации, кастинга и разрешения зависимостей. Практически во всех случаях рекомендуется избегать контекста LoadFrom. Это можно сделать, установив сборки в глобальном кэше сборок или в каталоге ApplicationBase и используя Assembly.Load при явной загрузке сборок.
Класс MainWindow
просто распространяется от System.Windows.Window;
Я не совсем уверен, что это значит и как решить. Просто обновлен до Visual Studio 2015.
![enter image description here]()
![enter image description here]()
Если я игнорирую исключение и продолжаю, я получаю это при закрытии последнего окна:
![enter image description here]()
Ответы
Ответ 1
Я столкнулся с той же проблемой после переключения с Visual Studio 2013 до 2015 года.
Некоторые старые проекты (WPF,.NET 4.5, MVVM Light) производят эту ошибку - другие нет. В Visual Studio я могу пропустить исключение, но только что созданные релизы останавливаются при загрузке и пытаются открыть JIT Debugger.
До сих пор единственным решением стало откат к Visual Studio 2013.
** ОБНОВЛЕНИЕ **
Наконец, я решил это в VS 2015, сняв следующую опцию:
Инструменты → Параметры → Отладка → Общие → Включить инструменты отладки пользовательского интерфейса для XAML
Ответ 2
Я вдруг начал видеть эту ошибку в VS2015 и исправил ее, открыв окно "Исключение настроек" (CTRL + ALT + E) и нажмите кнопку "Восстановить настройки":
![введите описание изображения здесь]()
Ответ 3
В VS2015 я получаю два исключения из WpfXamlDiagnosticsTap.dll
- Первый - "LoadFromContext", и это происходит при активации первого окна.
- Второй - "NotMarshalable", и это происходит при закрытии этого окна.
Просто игнорирование этих двух типов исключений позволяет мне запускать приложение и использовать инструменты отладки пользовательского интерфейса. Я не наблюдал никаких побочных эффектов.