Felsöka frekvent XAML-inläsning
Gäller för: Visual Studio 2019 och senare versioner
Den här felsökningsguiden innehåller detaljerade instruktioner som kan lösa de flesta problem som förhindrar att XAML Hot Reload fungerar korrekt.
XAML Hot Reload stöds för WPF- och UWP-appar. Mer information om operativsystems- och verktygskrav finns i Skriva och felsöka XAML-kod med XAML Hot Reload.
Om snabb inläsning inte är tillgängligt
Om du ser meddelandet Hot Reload is not available
i verktygsfältet i appen när du felsöker din app följer du anvisningarna i den här artikeln för att lösa problemet.
Kontrollera att XAML Hot Reload är aktiverat
Funktionen är aktiverad som standard i Visual Studio 2019 och senare versioner. När du börjar felsöka din app ser du verktygsfältet i appen, som bekräftar att XAML Hot Reload är tillgängligt.
Visual Studio 2019:
Visual Studio 2022:
Om du inte ser verktygsfältet i appen väljer du Felsökningsalternativ>>XAML Snabb inläsning på visual studio-menyraden. I dialogrutan Alternativ kontrollerar du sedan att alternativet Aktivera XAML-snabb inläsning är markerat.
Kontrollera att du använder Starta felsökning i stället för att ansluta till process
XAML Hot Reload kräver att miljövariabeln ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO
är inställd 1
på när programmet startar. Visual Studio anger värdet automatiskt som en del av kommandot Debug>Start Debugging (eller F5). Om du vill använda XAML Hot Reload med kommandot Debug>Attach to Process i stället anger du miljövariabeln själv.
Obs!
Om du vill ange en miljövariabel använder du knappen Start för att söka efter miljövariabeln och väljer Redigera systemmiljövariablerna. I dialogrutan som öppnas väljer du Miljövariabler, lägger sedan till den som en användarvariabel och anger värdet till 1
. Ta bort variabeln när du är klar med felsökningen för att rensa.
Kontrollera att dina MSBuild-egenskaper är korrekta
Som standard ingår källinformation i en felsökningskonfiguration. Den styrs av MSBuild-egenskaper i dina projektfiler (till exempel *.csproj). För WPF är XamlDebuggingInformation
egenskapen , som måste anges till True
. För UWP är DisableXbfLineInfo
egenskapen , som måste anges till False
. Till exempel:
WPF:
<XamlDebuggingInformation>True</XamlDebuggingInformation>
UWP:
<DisableXbfLineInfo>False</DisableXbfLineInfo>
Kontrollera att du använder rätt byggkonfigurationsnamn
Du måste antingen ange rätt MSBuild-egenskap manuellt för att stödja XAML Hot Reload (se föregående avsnitt), eller så måste du använda standardkonfigurationsnamnet (Debug). Om du inte anger egenskapen MSBuild korrekt fungerar inte ett anpassat versionskonfigurationsnamn, och inte heller versionsversionen.
Kontrollera att programmet inte körs förhöjt
XAML Hot Reload stöds inte i appar som kör upphöjd/kör som administratör.
Kontrollera att XAML-filen inte har några fel
Om XAML-filen visar fel i fellistan kanske XAML Hot Reload inte fungerar.
Aktivera mer grundlig sökning för att uppdatera resursreferenser och formatmallar i Visual Studio 2022
XAML_HOT_RELOAD_ACCURACY_OVER_PERF
Genom att ställa in miljövariabeln på 1
kan du göra en mer omfattande sökning för att uppdatera resursreferenser och formatmallar i WPF-program. Tänk på att vissa program, till exempel de som använder verktyg från tredje part, kan uppleva betydande fördröjningar med XAML Hot Reload. När en fördröjning inträffar visas en timer för snabb inläsning av förlopp i Editor statusfältet.
Kända begränsningar
Följande är kända begränsningar för XAML Hot Reload. Om du vill kringgå eventuella begränsningar som du stöter på stoppar du bara felsökningsprogrammet och slutför sedan åtgärden.
Begränsning | WPF | UWP | Anteckningar |
---|---|---|---|
Koppla händelser till kontroller medan appen körs | Stöds inte | Stöds inte | Se fel: Kontrollera att händelsen misslyckades. I WPF kan du referera till en befintlig händelsehanterare. Det går inte att referera till en befintlig händelsehanterare i UWP-appar. |
Skapa resursobjekt i en resursordlista, till exempel i appens sida/fönster eller App.xaml | Stöds från och med Visual Studio 2019 version 16.2 och senare | Stöds | Exempel: – Lägga till en SolidColorBrush i en resursordlista för användning som en StaticResource .Obs! Statiska resurser, formatkonverterare och andra element som skrivits till en resursordlista kan tillämpas/användas när du använder XAML Hot Reload. Endast skapandet av resursen stöds inte. – Ändra resursordlisteegenskapen Source . |
Lägga till nya kontroller, klasser, fönster eller andra filer i projektet medan appen körs | Stöds inte | Stöds inte | Ingen |
Hantera NuGet-paket (lägga till/ta bort/uppdatera paket) | Stöds inte | Stöds inte | Ingen |
Ändra databindning som använder markeringstillägget {x:Bind} | EJ TILLÄMPLIGT | Stöds från och med Visual Studio 2019 | Detta kräver Windows 10 version 1809 (version 10.0.17763) och senare. Stöds inte i Visual Studio 2017 eller tidigare versioner. |
Ändra x:Uid-direktiv | EJ TILLÄMPLIGT | Stöds inte | Ingen |
Använda flera processer | Stöds | Stöds | Stöds i Visual Studio 2019 version 16.6 och senare. |
Redigera formatmallar i teman\generic.xaml | Stöds inte | Stöds inte | XAML Hot Reload skapar nya format; de ursprungliga är förseglade. Plattformar cacheformat från generic.xaml när de har tillämpats på kontroller, vilket gör dem otillgängliga för ersättning. |
Felmeddelanden
Du kan stöta på följande fel när du använder XAML Hot Reload.
Felmeddelande | Beskrivning |
---|---|
Kontrollera att händelsen misslyckades | Felet anger att du försöker koppla en händelse till en av dina kontroller, vilket inte stöds när programmet körs. |
Den här ändringen stöds inte av XAML Hot Reload och kommer inte att tillämpas under felsökningssessionen. | Felet anger att ändringen du försöker göra inte stöds av XAML Hot Reload. Stoppa felsökningssessionen, gör ändringen och starta sedan om felsökningssessionen. |
Om du hittar ett scenario som inte stöds och som du vill se stöds kan du meddela oss med hjälp av alternativet Föreslå en funktion .