J'ai eu de sérieux problèmes avec Visual Studio 2010 ces derniers temps. Il se bloque d'une manière particulière lorsque je rencontre certains types d'erreurs XAML au cours de l'exécution du programme. InitializeComponent()
d'une commande/fenêtre.
Le programme s'interrompt et Visual Studio se met en branle comme s'il capturait une exception (parce que c'est le cas), puis s'arrête à mi-chemin en affichant un surlignage brisé dans mon fichier XAML, sans aucun détail quant à ce que est erronée. Exemple :
Il n'y a pas de pop outs, ou de détails N'importe où sur ce qui ne va pas, seulement une pile d'appels qui pointe vers ma InitializeComponent()
appeler.
Normalement, je devrais faire des essais et des erreurs pour résoudre ce problème et trouver où j'ai fait une erreur, mais le vrai problème n'est pas mon code. Visual Studio est rendu complètement inutile à ce stade. Il signale que mon application est toujours en mode "Running". Les boutons Stop/Break/Restart de la barre d'outils ou des menus ne font rien (ils sont grisés).
La fermeture de l'application n'arrête pas ce comportement, la fermeture de Visual Studio le coince dans une boucle massive où il me crie dessus en se plaignant que chaque fichier ouvert n'est pas dans le projet de débogage, puis répète ce processus lorsque j'ai épuisé tous les fichiers ouverts.
Je dois forcer la fermeture devenv.exe
Lorsque cela se produit 3 ou 4 fois de suite, c'est une perte de temps considérable (mes projets sont généralement assez volumineux et le studio peut être assez lent à charger).
Au point
- Quelqu'un d'autre a-t-il connu ce problème ?
- Comment puis-je empêcher le studio de se verrouiller.
- Puis-je au MOINS obtenir des informations de cette bête d'une autre manière afin de pouvoir corriger mon erreur XAML plus tôt qu'après 3-4 compilations d'essai-erreur produisant le même plantage ?
Toute aide serait appréciée.
Version de Visual Studio 2010 : 10.0.30319.1RTM
Édition et mise à jour
Pour info, la plupart des erreurs qui causent ce problème sont les suivantes XamlParseExceptions
(J'ai compris cela après avoir trouvé ce qui n'allait pas avec mon XAML).
Je pense que je dois être plus clair. Je ne cherche pas à trouver la solution à mon problème de code, car il s'agit généralement de fautes de frappe ou de petites choses, Je cherche une solution pour éviter que VStudio ne s'embrouille à cause de cela.
L'erreur particulière dans l'image ci-dessus qui, à 100%, a causé ce problème était une XamlParseException
causé par l'oubli d'un Value
sur un déclencheur de données.
J'ai corrigé cette partie mais cela ne m'explique toujours pas pourquoi mon studio devient un gros morceau de programme castré lorsqu'une exception parfaitement normale est levée lors de l'analyse du XAML.
Code qui causera ce problème (au moins pour moi)
Il s'agit du modèle de base de l'application WPF, avec les éléments suivants Window.xaml
code. Le problème est un manque Value="True"
sur le <DataTrigger ...>
dans le modèle. Il génère un XamlParseException
et Visual Studio se bloque comme décrit ci-dessus lors du débogage.
<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>
Notes finales
Les solutions suivantes n'a pas aidez-moi :
- Redémarrage de Visual Studio
- Redémarrage de
- Réinstallation de Visual Studio
- Désactiver les compléments comme ReSharper et Reflector
Mise à jour (bien plus tard) avec réponse
Je veux ajouter quelque chose (comme une pseudo-réponse) parce que j'ai trouvé plus d'informations à ce sujet plus tard et je veux les transmettre aux personnes qui trouvent cette question dans Google.
Le vrai problème : L'exception XamlParseException a été sélectionnée dans Debug -> Exceptions pour être interrompue lorsqu'elle se produit, parce que cela se produit pendant le câblage WPF et que vstudio ne peut pas l'attraper correctement (normalement, elle devrait descendre de quelques niveaux supplémentaires et être gérée là où vstudio pourrait la traiter).
Il suffit de l'éteindre et la vie sera à nouveau belle.
Je n'ai pas voulu mettre cela en tant que réponse parce que la réponse fournie par mazelo était correcte aussi, lorsque vstudio est exécuté en tant qu'administrateur, il semble être capable d'attraper l'exception correctement et de déboguer à partir de là, donc je ne voulais pas lui enlever le statut de réponse parce que sa solution fonctionne.