Felsöka frekvent omläsning av XAML
Gäller för: Visual Studio 2019 och senare versioner
Den här felsökningsguiden innehåller detaljerade instruktioner som ska lösa de flesta problem som förhindrar att XAML-frekvent omläsning 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 körning av XAML-kod med XAML Frekvent omläsning.
Om frekvent 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 appen 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öka>alternativ>XAML Frekvent omläsning från Visual Studio-menyraden. I dialogrutan Alternativ kontrollerar du sedan att alternativet Aktivera XAML-frekvent 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.
Kommentar
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
. Om du vill rensa tar du bort variabeln när du är klar med felsökningen.
Kontrollera att dina MSBuild-egenskaper är korrekta
Som standard ingår källinformation i en felsökningskonfiguration. Det styrs av MSBuild-egenskaper i projektfilerna (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 för bygget (Felsökning). 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 förhö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 noggrann sökning för att uppdatera resursreferenser och formatmallar i Visual Studio 2022
XAML_HOT_RELOAD_ACCURACY_OVER_PERF
Om du ställer 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 redigeringsprogrammets statusfält.
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 | Kommentar |
---|---|---|---|
Kabelkopplingshä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. I UWP-appar stöds inte hänvisning till en befintlig händelsehanterare. |
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 format 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, som 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 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 som du vill se stöds kan du meddela oss med hjälp av alternativet Föreslå en funktion .