Dela via


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:

Skärmbild av verktygsfältet

Visual Studio 2022:

Skärmbild av verktygsfältet

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.

Skärmbild av fönstret Felsökningsalternativ i Visual Studio med alternativet Aktivera frekvent omläsning av XAML 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 XamlDebuggingInformationegenskapen , som måste anges till True. För UWP är DisableXbfLineInfoegenskapen , 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.

Skärmbild av

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 .