2017-03-08 3 views
1

Ich versuche, eine Anwendung zu debuggen, die mit Xamarin-Formularen erstellt wurde und in C# für Windows läuft, aber ich habe Probleme, auch einfache Dinge zu debuggen, da die lokalen Variablen in Methoden für den Debugger nicht zugänglich sind. Ich habe unten sogar einen einfachen Test erstellt, und wenn ich einen Haltepunkt in die Ausgabezeile bringe, wird "Hallo" ausgegeben, aber im Überwachungsfenster heißt es, Test ist nicht im Kontext definiert. Dies ist ein einfaches Beispiel, aber dasselbe gilt auch für andere Methoden. Ich frage mich, ob es mit asynchronen Methoden zu tun hat? Gibt es eine Option, die ich aktivieren muss?Warum kann ich lokale Variablen im Debugger nicht sehen, C# UWP VS2017?

+0

Nicht spezifisch für 2017, aber ich hatte Probleme damit, wenn "Kompilieren mit. Net Native Tool Chain" in der Registerkarte Erstellen von Anwendungseigenschaften und Ausführen in Debug-Konfiguration überprüft wird. –

+0

@MarkW Ich kann nicht scheinen Kompilieren mit .net Native Tool Chain innerhalb der Build-Registerkarte ..? – Kyle

+0

@MarkW Blick auf meine Build-Einstellungen Ich habe bereits "Kompilieren mit. Net Native Toolchain" deaktiviert. – CptanPanic

Antwort

1

Ich habe Ihr Problem in Xamarin.Forms Version 2.2.0.45 reproduziert. Sie könnten versuchen, Xamarin.Forms auf die neueste Version zu aktualisieren. Rechtsklick auf das solution ->-Manager NuGet Package für Lösung -> klicken Sie auf die Schaltfläche Updates auf dem NuGet Package Manager Registerkarte -> überprüfen Sie alle Client-Projekt Aktualisierung Version Laset wie der folgende Screenshot enter image description here

Wie für die asynchrone Methode Verwenden Sie das Schlüsselwort await in der Methode.

await Task.Factory.StartNew(() => 
{ 
    string test = "hello"; 
    System.Diagnostics.Debug.WriteLine(test); 
}); 

Wenn Sie das Schlüsselwort await nicht verwendet haben, wird die Methode synchron aufgerufen. Und die Anweisung wird auch in der Methode ausgeführt.

+0

Also 2 Dinge, ich benutze bereits 2.3.3.193 von Xamarin Forms. Der Grund, warum ich das Beispiel von Onstart als async zeige, ist, dass ich in der Vollversion eine Async-Methode unter Verwendung von "await" anrufe. Beachten Sie, wenn ich im Call-Stack nachschaue, dass die Dinge normal aussehen, bis ich die asynchrone OnStart-Methode bekomme. – CptanPanic

Verwandte Themen