В последнее время у меня возникли серьезные проблемы с Visual Studio 2010.Это происходит специфическим сбоем, когда я сталкиваюсь с определенными типами ошибок XAML во время InitializeComponent()
элемента управления / окна.
Программа ломается, и Visual Studio запускается, как будто она ловит исключение (потому что это так)и затем останавливается на полпути, показывая разбитую подсветку в моем файле XAML без подробных сведений о , что не так.Пример:
Нет всплывающих окон или сведений Anywhere о том, что не так, только стек вызовов, который указывает на мой InitializeComponent()
вызов.
Теперь обычно я просто делаю метод проб и ошибок, чтобы решить эту проблему, и выясняю, где я ошибся, но настоящая проблема не в моем коде.На этом этапе Visual Studio совершенно бесполезен .Он сообщает, что мое приложение все еще находится в режиме «Запуск».Кнопки Stop / Break / Restart на панели инструментов или в меню ничего не делают (но выделяются серым цветом).
Закрытие приложения не останавливает это поведение, закрытие Visual Studio застревает в большом цикле.где он кричит на меня, жалуясь, что каждый открытый файл не находится в проекте отладки, затем повторяет этот процесс, когда я исчерпал каждый открытый файл.
Я должен принудительно закрыть devenv.exe
, и после этого 3-4 раза подряд это много потерянного времени (поскольку мои проекты обычно довольно большие, а студия может быть довольно медленной при загрузке).
В точку
- Кто-нибудь еще сталкивался с этим?
- Как остановить блокировку студии.
- Могу ли я по крайней мере получить информацию от этого зверя другим способом, чтобы я мог быстрее исправить свою ошибку XAMLа не после 3-4 компиляций проб и ошибок, приводящих к одному и тому же сбою?
Любая и вся помощь будет принята.
Версия Visual Studio 2010: 10.0.30319.1RTM
Редактировать & Update
FWIW, в основном ошибки, которые вызывают это XamlParseExceptions
(я понял это после того, как обнаружил, что не так с моим XAML).
Я думаю, что мне нужно быть более ясным, хотя , я не ищу решение моей проблемы с кодом, так как обычно это опечатки / мелочи, Я ищуВ результате решение VStudio приводило к ошибкам.
Особая ошибка на изображении выше, которая на 100% наверняка привела к этому, была XamlParseException
, вызванной забыванием атрибута Value
в данныхтриггер.
Я исправил эту часть, но она до сих пор не говорит мне, почему моя студия превращается в кучу стерилизованной программы, когда при разборе XAML возникает совершенно нормальное исключение.
Код, который вызовет эту проблему (по крайней мере, для меня)
Это базовый шаблон WPF-приложения со следующим Window.xaml
кодом.Проблема в том, что в шаблоне отсутствует Value="True"
на <DataTrigger ...>
.Он генерирует XamlParseException
и сбои Visual Studio, как описано выше при отладке.
<Window x:Class="XamlParseExplosion.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<DataTemplate x:Key="BankListItemTemplate">
<Border x:Name="ItemBorder" Width="250" Margin="1" BorderBrush="Blue" BorderThickness="5,0,0,0">
<Grid>
<Label Content="{Binding Name}" />
</Grid>
</Border>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding IsDirty}">
<Setter TargetName="ItemBorder" Property="BorderBrush" Value="Red" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</Window.Resources>
<Grid>
<ListView ItemTemplate="{StaticResource BankListItemTemplate}" />
</Grid>
</Window>
Заключительные замечания
Следующие решения не помогите мне:
- Перезапуск Visual Studio
- Перезагрузка
- Переустановка Visual Studio
- Отключение надстроек, таких как ReSharper & Reflector
Обновление (позже) с ответом
Я хочу добавить к этому (как псевдо-ответ), потому что позже я узнал об этом больше информации, которую я хочу передать людям, находящим этовопрос в Google.
Реальная проблема: XamlParseException был выбран в Debug -> Исключения, чтобы прерваться, когда это происходит, потому что это происходит во время подключения WPF, vstudio не может правильно его перехватить (обычно этоупасть еще на пару уровней и быть обработанным там, где vstudio может с этим справиться).
Просто выключите это, и жизнь снова станет хорошей.
Я не хотел ставить это как ответ, потому что ответ, предоставленный mazelo, был также правильным, когда vstudio запускается от имени администратора, кажется, что он может правильно отловить исключение и отладить оттуда, поэтому я не хотел забрать его статус ответа, потому что его решение работает.