4 Stimmen

Visual Studio stürzt beim Auftreten von XAML-Fehlern beim Initialisieren ab

Ich habe einige ernsthafte Probleme mit Visual Studio 2010 in letzter Zeit. Es wurde Absturz in einer eigentümlichen Weise, wenn ich bestimmte Arten von XAML-Fehler während der InitializeComponent() eines Steuerelements/Fensters.

Das Programm bricht und Visual Studio schaltet, wie es eine Ausnahme (weil es ist) und dann stoppt auf halbem Weg Anzeige eines gebrochenen Highlight in meiner XAML-Datei ohne Details zu fangen was ist falsch. Beispiel:

alt text

Es gibt keine Pop-Outs oder Details Irgendwo darüber, was falsch ist, nur einen Callstack, der auf meine InitializeComponent() anrufen.

Jetzt normalerweise würde ich nur einige Versuch und Irrtum tun, um dieses Problem zu beheben, und finden Sie heraus, wo ich durcheinander, aber das eigentliche Problem ist nicht mein Code. Visual Studio wird gerendert völlig nutzlos zu diesem Zeitpunkt. Es meldet, dass meine Anwendung immer noch im Modus "Laufend" ist. Die Schaltflächen Anhalten/Break/Neustart in der Symbolleiste oder in den Menüs bewirken nichts (sondern sind ausgegraut).

Schließen der Anwendung nicht stoppen dieses Verhalten, schließen Visual Studio bekommt es in einer massiven Schleife stecken, wo es schreit mich beschweren jede Datei geöffnet ist nicht in das Debug-Projekt, dann wiederholt diesen Prozess, wenn ich jede geöffnete Datei exausted haben.

Ich muss die Tür mit Gewalt schließen devenv.exe und nachdem dies 3-4 Mal hintereinander passiert ist, ist es eine Menge verschwendete Zeit (da meine Projekte in der Regel ziemlich groß sind und Studio ziemlich langsam beim Laden sein kann).

Auf den Punkt gebracht

  1. Hat noch jemand diese Erfahrung gemacht?
  2. Wie kann ich verhindern, dass sich das Studio sperrt.
  3. Kann ich zumindest Informationen aus diesem Tier eine andere Art und Weise erhalten, so dass ich meine XAML-Fehler eher als nach 3-4 Versuch-und-Irrtum-Kompilierungen ergeben den gleichen Absturz beheben kann?

Für jede Hilfe wären wir dankbar.

Visual Studio 2010 Version: 10.0.30319.1RTM

Bearbeiten & Aktualisieren

FWIW, die meisten Fehler, die dies verursachen, sind XamlParseExceptions (Ich habe das herausgefunden, nachdem ich herausgefunden habe, was mit meiner XAML falsch war).

Ich glaube, ich muss noch deutlicher werden. Ich suche nicht nach der Lösung für mein Code-Problem, da es sich in der Regel um Tippfehler oder Kleinigkeiten handelt, Ich bin auf der Suche nach einer Lösung für das Problem, dass VStudio infolgedessen völlig durcheinander gerät.

Der besondere Fehler im obigen Bild, der mit 100%iger Sicherheit zu diesem Problem führte, war ein XamlParseException verursacht durch das Vergessen einer Value Attribut für einen Daten-Trigger.

Ich habe diesen Teil behoben, aber es sagt mir immer noch nicht, warum mein Studio ein Klumpen kastriertes Programm wird, wenn eine ganz normale Ausnahme beim Parsen des XAML ausgelöst wird.

Code, der dieses Problem verursacht (zumindest bei mir)

Dies ist die Basis-Vorlage WPF-Anwendung, mit den folgenden Window.xaml Code. Das Problem ist eine fehlende Value="True" über die <DataTrigger ...> in der Vorlage. Sie erzeugt eine XamlParseException und Visual Studio stürzt wie oben beschrieben ab, wenn es debuggt wird.

<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>

Abschließende Anmerkungen

Die folgenden Lösungen hat nicht helfen Sie mir:

  1. Neustart von Visual Studio
  2. Neustart
  3. Neuinstallation von Visual Studio
  4. Deaktivieren von Add-Ins wie ReSharper und Reflector

Update (viel später) mit Antwort

Ich möchte noch etwas hinzufügen (als Pseudo-Antwort), weil ich später noch mehr Informationen darüber herausgefunden habe, die ich an Leute weitergeben möchte, die diese Frage in Google finden.

Das wahre Problem: XamlParseException wurde in Debug -> Ausnahmen ausgewählt, um zu unterbrechen, wenn es auftritt, da dies während der WPF-Verdrahtung geschieht, kann vstudio es nicht richtig abfangen (normalerweise würde es ein paar Ebenen tiefer fallen und dort behandelt werden, wo vstudio es behandeln könnte).

Schalten Sie es einfach aus und das Leben ist wieder gut.

Ich wollte dies nicht als Antwort setzen, weil die Antwort von mazelo auch richtig war, wenn vstudio als Administrator ausgeführt wird, scheint es in der Lage zu sein, die Ausnahme ordnungsgemäß abzufangen und von dort aus zu debuggen, also wollte ich seinen beantworteten Status nicht wegnehmen, weil seine Lösung funktioniert.

0voto

Versuchen Sie, die visuellen Effekte in den Einstellungen von Visual Studio zu deaktivieren. Ich weiß, es klingt verrückt und hat nichts damit zu tun, aber als ich das auf meiner ziemlich alten Grafikkarte tat, stürzte alles viel weniger ab.

Was das Wiederauftreten der Abstürze betrifft, schlage ich vor, einen Bericht an Microsoft Connect zu senden, wenn die oben genannten Maßnahmen nicht funktionieren.

0voto

AMissico Punkte 21179

Ändern Sie die Treiber Ihrer Grafikkarte. Aktualisieren Sie sie oder greifen Sie auf die von Microsoft bereitgestellten Treiber zurück.

Auf meinem Arbeitscomputer habe ich auf die integrierte Intel-Grafikkarte umgestellt und Visual Studio und Windows Explorer stürzen nicht mehr ab.

Voir

0voto

Claudiu Constantin Punkte 1968

Das ist mir auch passiert. Ich kann das Problem jedes Mal reproduzieren, wenn ich ein einfaches Szenario habe:

<UserControls:OperationLoader
              DepProperty1="{Binding VMProperty1}"
              DepProperty2="{Binding VMProperty2, Converter={StaticResource boolToInverse}}}"/>

Wenn ich den Konverterteil entferne, funktioniert alles einwandfrei. Wahrscheinlich ist das Problem die Konverter-Implementierung, die wie folgt aussieht:

public sealed class BooleanToInverseConverter : BooleanConverter<bool>
{
    public BooleanToInverseConverter() :
        base(false, true)
    {
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X