Problembehandlung bei XAML-Hot Reload
Gilt für: Visual Studio 2019 und höhere Versionen
Dieser Leitfaden zur Problembehandlung enthält detaillierte Anweisungen, die die meisten Probleme beheben sollten, die verhindern, dass XAML-Hot Reload ordnungsgemäß funktionieren.
XAML-Hot Reload wird für WPF- und UWP-Apps unterstützt. Ausführliche Informationen zu Betriebssystem- und Toolanforderungen finden Sie unter Schreiben und Debuggen von ausgeführtem XAML-Code mit XAML-Hot Reload.
Wenn Hot Reload nicht verfügbar ist
Wenn die Meldung Hot Reload is not available
während des Debuggens Ihrer App auf der In-App-Symbolleiste angezeigt wird, befolgen Sie die in diesem Artikel beschriebenen Anweisungen, um das Problem zu beheben.
Überprüfen, ob XAML-Hot Reload aktiviert ist
Das Feature ist in Visual Studio 2019 und höheren Versionen standardmäßig aktiviert. Wenn Sie mit dem Debuggen Ihrer App beginnen, stellen Sie sicher, dass die In-App-Symbolleiste angezeigt wird, die bestätigt, dass XAML-Hot Reload verfügbar ist.
Visual Studio 2019:
Visual Studio 2022:
Wenn die In-App-Symbolleiste nicht angezeigt wird, wählen Sie in der Visual Studio-MenüleisteDebugoptionen>>XAML-Hot Reload aus. Stellen Sie als Nächstes im Dialogfeld Optionen sicher, dass die Option XAML-Hot Reload aktivieren aktiviert ist.
Vergewissern Sie sich, dass Sie Debuggen starten anstelle von "An Prozess anfügen" verwenden.
XAML-Hot Reload erfordert, dass die Umgebungsvariable ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO
zum Zeitpunkt des Anwendungsstarts auf 1
festgelegt ist. Visual Studio legt den Wert automatisch als Teil des Befehls Debuggen>Debuggen starten (oder F5) fest. Wenn Sie stattdessen XAML-Hot Reload mit dem Befehl Debug>Attach to Process verwenden möchten, legen Sie die Umgebungsvariable selbst fest.
Hinweis
Um eine Umgebungsvariable festzulegen, verwenden Sie die Schaltfläche Start, um nach Umgebungsvariablen zu suchen, und wählen Sie Systemumgebungsvariablen bearbeiten aus. Wählen Sie im daraufhin geöffneten Dialogfeld Umgebungsvariablen aus, fügen Sie sie dann als Benutzervariable hinzu, und legen Sie den Wert auf fest 1
. Um sauber, entfernen Sie die Variable, wenn Sie das Debuggen abgeschlossen haben.
Überprüfen, ob Ihre MSBuild-Eigenschaften korrekt sind
Standardmäßig sind Quellinformationen in einer Debugkonfiguration enthalten. Es wird durch MSBuild-Eigenschaften in Ihren Projektdateien (z . B. *.csproj) gesteuert. Für WPF ist XamlDebuggingInformation
die -Eigenschaft , die auf True
festgelegt werden muss. Für UWP ist DisableXbfLineInfo
die -Eigenschaft , die auf False
festgelegt werden muss. Zum Beispiel:
WPF:
<XamlDebuggingInformation>True</XamlDebuggingInformation>
UWP:
<DisableXbfLineInfo>False</DisableXbfLineInfo>
Vergewissern Sie sich, dass Sie den richtigen Buildkonfigurationsnamen verwenden.
Sie müssen entweder manuell die richtige MSBuild-Eigenschaft festlegen, um XAML-Hot Reload zu unterstützen (siehe vorheriger Abschnitt), oder Sie müssen den Standardbuildkonfigurationsnamen (Debug) verwenden. Wenn Sie die MSBuild-Eigenschaft nicht richtig festlegen, funktioniert weder ein benutzerdefinierter Buildkonfigurationsname noch ein Releasebuild.
Stellen Sie sicher, dass Ihr Programm nicht mit erhöhten Rechten ausgeführt wird.
XAML-Hot Reload wird in Apps, die als Administrator ausgeführt werden, nicht unterstützt.
Vergewissern Sie sich, dass ihre XAML-Datei keine Fehler aufweist.
Wenn ihre XAML-Datei Fehler in der Fehlerliste anzeigt, funktionieren XAML-Hot Reload möglicherweise nicht.
Aktivieren einer gründlicheren Suche zum Aktualisieren von Ressourcenverweisen und -formatvorlagen in Visual Studio 2022
Das Festlegen der XAML_HOT_RELOAD_ACCURACY_OVER_PERF
Umgebungsvariable auf 1
ermöglicht eine umfangreichere Suche zum Aktualisieren von Ressourcenverweisen und Formatvorlagen in WPF-Anwendungen. Beachten Sie, dass bei einigen Anwendungen, z. B. bei Anwendungen, die Toolkits von Drittanbietern verwenden, erhebliche Verzögerungen bei XAML-Hot Reload auftreten können. Wenn eine Verzögerung auftritt, wird in Editor status Leiste ein Hot Reload Statustimer angezeigt.
Bekannte Einschränkungen
Im Folgenden sind die Einschränkungen von XAML-Hot Reload bekannt. Beenden Sie einfach den Debugger, und schließen Sie dann den Vorgang ab, um alle Einschränkungen zu umgehen, auf die Sie stoßen.
Einschränkung | WPF | UWP | Hinweise |
---|---|---|---|
Verkabeln von Ereignissen mit Steuerelementen, während die App ausgeführt wird | Nicht unterstützt | Nicht unterstützt | Weitere Informationen finden Sie unter Fehler: Sicherstellen, dass das Ereignis fehlgeschlagen ist. In WPF können Sie auf einen vorhandenen Ereignishandler verweisen. In UWP-Apps wird das Verweisen auf einen vorhandenen Ereignishandler nicht unterstützt. |
Erstellen von Ressourcenobjekten in einem Ressourcenwörterbuch, z. B. in page/Window oder App.xaml Ihrer App | Unterstützt ab Visual Studio 2019 , Version 16.2 und höher | Unterstützt | Beispiele: – Hinzufügen eines zu SolidColorBrush einem Ressourcenwörterbuch zur Verwendung als StaticResource .Hinweis: Statische Ressourcen, Stilkonverter und andere Elemente, die in ein Ressourcenwörterbuch geschrieben werden, können bei verwendung von XAML-Hot Reload angewendet/verwendet werden. Nur die Erstellung der Ressource wird nicht unterstützt. – Ändern der Eigenschaft des Ressourcenwörterbuchs Source . |
Hinzufügen neuer Steuerelemente, Klassen, Fenster oder anderer Dateien zu Ihrem Projekt, während die App ausgeführt wird | Nicht unterstützt | Nicht unterstützt | Keine |
Verwalten von NuGet-Paketen (Hinzufügen,Entfernen/Aktualisieren von Paketen) | Nicht unterstützt | Nicht unterstützt | Keine |
Ändern der Datenbindung, die die {x:Bind}-Markuperweiterung verwendet | Nicht zutreffend | Unterstützt ab Visual Studio 2019 | Hierfür ist Windows 10 Version 1809 (Build 10.0.17763) und höher erforderlich. Wird in Visual Studio 2017 oder früheren Versionen nicht unterstützt. |
Ändern von x:Uid-Direktiven | Nicht zutreffend | Nicht unterstützt | Keine |
Verwenden mehrerer Prozesse | Unterstützt | Unterstützt | Unterstützt in Visual Studio 2019 , Version 16.6 und höher. |
Bearbeiten von Formatvorlagen in themes\generic.xaml | Nicht unterstützt | Nicht unterstützt | XAML-Hot Reload erstellt neue Formatvorlagen. Die ursprünglichen Formatvorlagen sind versiegelt. Plattformen speichern Stile aus generic.xaml zwischen, nachdem sie auf Steuerelemente angewendet wurden, sodass nicht mehr auf sie zugegriffen werden kann. |
Fehlermeldungen
Bei der Verwendung von XAML-Hot Reload können die folgenden Fehler auftreten.
Fehlermeldung | Beschreibung |
---|---|
Sicherstellen, dass das Ereignis fehlgeschlagen ist | Der Fehler gibt an, dass Sie versuchen, ein Ereignis mit einem Ihrer Steuerelemente zu verknüpfen, was während der Ausführung der Anwendung nicht unterstützt wird. |
Diese Änderung wird von XAML-Hot Reload nicht unterstützt und während der Debugsitzung nicht angewendet. | Der Fehler gibt an, dass die änderung, die Sie versuchen, von XAML-Hot Reload nicht unterstützt wird. Beenden Sie die Debugsitzung, nehmen Sie die Änderung vor, und starten Sie dann die Debugsitzung neu. |
Wenn Sie ein nicht unterstütztes Szenario finden, das unterstützt werden soll, teilen Sie uns dies mithilfe unserer Option Feature vorschlagen mit .