Оригинальный вопрос
Я работаю над WPF-приложением с Visual Studio 2010, используя Telerik
.
Я работаю с большим количеством сбоев каждый раз, когда я использую конструктор: нажатие на элемент, изменение его положения, даже изменение его имени приводит к сбою и отображает следующее исключение:
System.ArgumentNullException
Value cannot be null.
to System.RuntimeType.MakeGenericType(Type[] instantiation)
to Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkUtil.GetRuntimeType(Type type)
to Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkType.TryGetRuntimeType()
to Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkUtil.EnsureRuntimeType(Type type)
to Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkProvider.GetRuntimeType(Type reflectionType)
[...]
Я пробовал следующие вещи:
- Удалите и переустановите Telerik;
- Удалить и переустановить .NET 4.0;
- Удалите и переустановите Visual Studio.
Ни одна из этих попыток не работала.
Сегодня утром я заметил, что дизайнер вообще не разбился, и я понял, почему: дизайнер разбивает , когда я открывал или редактировал XAML.
После открытия XAML Visual Studio начинает замораживаться, и дизайнер падает каждый раз, когда я пытаюсь щелкнуть что-то. Если я закрою Visual Studio и построю решение (без открытия XAML), все отлично работает с дизайнером.
Я предполагаю, что что-то пойдет не так, когда Visual Studio пытается "преобразовать" код XAML в графические элементы в конструкторе и только в этом направлении.
Вопрос: Вы когда-нибудь экспериментировали с этим? У вас есть идея о почему модификация XAML вызывает сбои и способы их решения?
Спасибо заранее.
Новые действия после чтения ответов
- Отлаживать экземпляр Visual Studio при открытии конструктора. Метод, который приводит к
ArgumentNullException
, равенGetRuntimeTime
. Я смог увидеть код .NET, но не смог определить источник проблемы. См. Полную трассировку стека ниже:
Кроме того, это точная строка, в которой происходит ошибка, и сведения об исключении. Обратите внимание, что файл VSIsolationProviderService.cs
и что я могу видеть источник благодаря .NET Reflector Object Browser
.
Message=Value cannot be null.
Source=mscorlib
StackTrace:
to System.RuntimeType.MakeGenericType(Type[] instantiation)
InnerException: null
Наконец, инспектор Local Variables
в момент исключения показывает следующий объект:
Конец объекта:
Ответы на комментарии:
- Значение
this._targetFrameworkProvider
в строке, где происходит исключение, приведено ниже.