Freigeben über


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:

Screenshot der Symbolleiste

Visual Studio 2022:

Screenshot der Symbolleiste

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.

Screenshot des Visual Studio-Fensters

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 XamlDebuggingInformationdie -Eigenschaft , die auf Truefestgelegt werden muss. Für UWP ist DisableXbfLineInfodie -Eigenschaft , die auf Falsefestgelegt 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.

Screenshot des

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 .