Ich bin wirklich neu in Xamarin.Forms und versuchen zu lernen mit this nice tutorial.Xamarin Formulare in Visual Studio 2017 XAML Validierung
Ich habe es geschafft, alles in Visual Studio 2017 Community Edition einzurichten und erfolgreich auf emulierten und physischen Geräten (nur Android) zu implementieren.
Während verschiedener Tests habe ich festgestellt, dass einige XAML-Fehler nicht hervorgehoben sind und der Build erfolgreich ausgeführt wurde, aber XAML ist zur Laufzeit fehlgeschlagen und hat die App zum Absturz gebracht. Z.B. einen Stilnamen oder irgendeinen Attributwert falsch schreiben.
Im Debug-Modus läuft nur die App. Brechen sie die folgende Zeile zeigt:
public partial class MainPage : global::Xamarin.Forms.ContentPage { [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Forms.Build.Tasks.XamlG", "0.0.0.0")]
private void InitializeComponent() {
// this is the last line from my code that hands when XAML is invalid
this.LoadFromXaml(typeof(MainPage));
}
}
die Ausführung wieder aufnehmen zeigt einen Hinweis darauf, was falsch ist (keine feinen Details, wie durch die neue VS2017 Ausnahme-Schnittstelle zur Verfügung gestellt):
Unbehandelte Ausnahme:
Xamarin.Forms.Xaml.XamlParseException: aufgetreten
Frage:Gibt es eine Möglichkeit, ungültige XAML-Fehler früher zu erfassen? Oder zumindest relevantere Informationen erhalten? Oder ist dies eine bekannte Einschränkung von Xamarin.Forms?
Um die Sache noch schlimmer zu machen, scheint Autocomplete für Attributwerte in VS2017 nicht zu funktionieren (es funktioniert in VS2015), aber das ist ein anderes Problem für eine andere Frage.
Weitere Informationen über installierte Software:
Microsoft Visual Studio Community 2017
Version 15.0.26228.9 D15RTWSVC
Microsoft .NET Framework
Version 4.6.01586
Installed Version: Community
Xamarin 4.3.0.795 (aece090)
Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.
Xamarin.Android SDK 7.1.0.41 (9578cdc)
Xamarin.Android Reference Assemblies and MSBuild support.
Xamarin.iOS and Xamarin.Mac SDK 10.4.0.123 (35d1ccd)
Xamarin.iOS and Xamarin.Mac Reference Assemblies and MSBuild support.
Danke für die schnelle Antwort. Leider scheint es (zumindest nicht mehr) zu funktionieren. Ich habe sowohl Assembly-Level-Attribut als auch Klassen-Level-Attribut ausprobiert. Auch in VS2015 versucht. Ich habe jedoch gerade festgestellt, dass Resharper (derzeit nur in VS2015 aktiv) XAML-Fehler korrekt hervorhebt, so dass es als Workaround für die frühe Erkennung von inkorrekten XAML-Referenzen verwendet werden kann. – Alexei
'XamlCompilationOptions.Compile' - kompiliert Ihr XAML. Wenn Ihr XAML falsch oder beschädigt ist, erhalten Sie einen Kompilierzeitfehler. Sie müssen Ihre App nicht ausführen, um festzustellen, dass in XAML ein Fehler aufgetreten ist. – EvZ
Ja, ich erhalte Kompilierungsfehler, wenn XAML nicht korrekt ist oder ein eingebauter Attributwert falsch geschrieben ist. Ich werde jedoch falsche Ressourcenreferenzen schreiben und zur Laufzeit abstürzen.Das ist jetzt in Ordnung (ich kann warten, bis ein Resharper-Upgrade durchgeführt wird, um die Fehlerhervorhebung in VS2017 zu erhalten). – Alexei