Delen via


Problemen met XAML Hot Reload oplossen

Van toepassing op: Visual Studio 2019 en latere versies

Deze gids voor probleemoplossing bevat gedetailleerde instructies waarmee de meeste problemen moeten worden opgelost die voorkomen dat XAML Hot Reload correct werkt.

XAML Hot Reload wordt ondersteund voor WPF- en UWP-apps. Zie Write and debug running XAML code with XAML Hot Reload voor meer informatie over de vereisten voor het besturingssysteem en hulpprogramma's.

Als Hot Reload niet beschikbaar is

Als u het bericht Hot Reload is not available in de werkbalk van de app ziet tijdens het opsporen van fouten in uw app, volgt u de instructies die in dit artikel worden beschreven om het probleem op te lossen.

Controleer of XAML Hot Reload is ingeschakeld

De functie is standaard ingeschakeld in Visual Studio 2019 en latere versies. Wanneer u begint met het opsporen van fouten in uw app, controleert u of de werkbalk in de app wordt weergegeven, waarin wordt bevestigd dat XAML Hot Reload beschikbaar is.

Visual Studio 2019:

Schermopname van de werkbalk XAML Hot Reload available in Visual Studio 2019.

Visual Studio 2022:

Schermopname van de werkbalk XAML Hot Reload available in Visual Studio 2022.

Als u de werkbalk in de app niet ziet, selecteert u Opties>voor foutopsporing>XAML Hot Reload in de menubalk van Visual Studio. Controleer vervolgens in het dialoogvenster Opties of de optie XAML Hot Reload inschakelen is geselecteerd.

Schermopname van het venster Opties voor foutopsporing van Visual Studio, met de optie XAML Hot Reload inschakelen gemarkeerd.

Controleer of u foutopsporing starten gebruikt in plaats van koppelen aan proces

XAML Hot Reload vereist dat de omgevingsvariabele ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO is ingesteld 1 op het moment dat de toepassing wordt gestart. Visual Studio stelt de waarde automatisch in als onderdeel van de opdracht Foutopsporing> starten (of F5). Als u XAML Hot Reload wilt gebruiken met de opdracht Foutopsporing>koppelen aan proces, stelt u de omgevingsvariabele zelf in.

Notitie

Als u een omgevingsvariabele wilt instellen, gebruikt u de knop Start om te zoeken naar een omgevingsvariabele en kiest u De omgevingsvariabelen van het systeem bewerken. Kies in het dialoogvenster dat wordt geopend omgevingsvariabelen, voeg deze toe als een gebruikersvariabele en stel de waarde in op 1. Als u de variabele wilt opschonen, verwijdert u de variabele wanneer u klaar bent met foutopsporing.

Controleer of uw MSBuild-eigenschappen juist zijn

Brongegevens zijn standaard opgenomen in een foutopsporingsconfiguratie. Het wordt beheerd door MSBuild-eigenschappen in uw projectbestanden (zoals *.csproj). Voor WPF is XamlDebuggingInformationde eigenschap , die moet worden ingesteld op True. Voor UWP is DisableXbfLineInfode eigenschap , die moet worden ingesteld op False. Bijvoorbeeld:

WPF:

<XamlDebuggingInformation>True</XamlDebuggingInformation>

UWP:

<DisableXbfLineInfo>False</DisableXbfLineInfo>

Controleer of u de juiste buildconfiguratienaam gebruikt

U moet de juiste MSBuild-eigenschap handmatig instellen ter ondersteuning van XAML Hot Reload (zie vorige sectie) of u moet de standaard buildconfiguratienaam (Foutopsporing) gebruiken. Als u de eigenschap MSBuild niet juist instelt, werkt een aangepaste buildconfiguratienaam niet en wordt er ook geen release-build gemaakt.

Zorg ervoor dat uw programma niet wordt uitgevoerd met verhoogde bevoegdheden

XAML Hot Reload wordt niet ondersteund in apps met verhoogde bevoegdheden/uitvoeren als beheerder.

Controleer of uw XAML-bestand geen fouten bevat

Als in uw XAML-bestand fouten worden weergegeven in de foutenlijst, werkt XAML Hot Reload mogelijk niet.

Uitgebreidere zoekopdrachten inschakelen voor het bijwerken van resourceverwijzingen en -stijlen in Visual Studio 2022

Het instellen van de XAML_HOT_RELOAD_ACCURACY_OVER_PERF omgevingsvariabele om 1 een uitgebreidere zoekopdracht mogelijk te maken voor het bijwerken van resourceverwijzingen en -stijlen in WPF-toepassingen. Houd er rekening mee dat sommige toepassingen, zoals toepassingen die gebruikmaken van toolkits van derden, aanzienlijke vertragingen kunnen ondervinden met XAML Hot Reload. Wanneer er een vertraging optreedt, wordt een timer voor de voortgang van het opnieuw laden weergegeven in de statusbalk van de editor.

Schermopname van de voortgangstimer XAML Hot Reload in Visual Studio 2022.

Bekende beperkingen

Hier volgen bekende beperkingen van XAML Hot Reload. Als u een beperking wilt omzeilen die u tegenkomt, stopt u het foutopsporingsprogramma en voltooit u de bewerking.

Beperking WPF UWP Opmerkingen
Bedradingsevenementen om te beheren terwijl de app wordt uitgevoerd Niet ondersteund Niet ondersteund Zie de fout: Controleren of de gebeurtenis is mislukt. In WPF kunt u verwijzen naar een bestaande gebeurtenis-handler. In UWP-apps wordt het verwijzen naar een bestaande gebeurtenis-handler niet ondersteund.
Resourceobjecten maken in een resourcewoordenlijst, zoals in de pagina/het venster van uw app of app.xaml Ondersteund vanaf Visual Studio 2019 versie 16.2 en hoger Ondersteund Voorbeelden:
- Een toevoegen SolidColorBrush aan een resourcewoordenlijst voor gebruik als een StaticResource.
Opmerking: Statische resources, stijlconversieprogramma's en andere elementen die in een resourcewoordenlijst zijn geschreven, kunnen worden toegepast/gebruikt met XAML Hot Reload. Alleen het maken van de resource wordt niet ondersteund.
- De eigenschap resourcewoordenlijst Source wijzigen.
Nieuwe besturingselementen, klassen, vensters of andere bestanden toevoegen aan uw project terwijl de app wordt uitgevoerd Niet ondersteund Niet ondersteund Geen
NuGet-pakketten beheren (pakketten toevoegen/verwijderen/bijwerken) Niet ondersteund Niet ondersteund Geen
Gegevensbinding wijzigen die gebruikmaakt van de markeringsextensie {x:Bind} N.v.t. Ondersteund vanaf Visual Studio 2019 Hiervoor is Windows 10 versie 1809 (build 10.0.17763) en hoger vereist. Niet ondersteund in Visual Studio 2017 of eerdere versies.
X:Uid-instructies wijzigen N.v.t. Niet ondersteund Geen
Meerdere processen gebruiken Ondersteund Ondersteund Ondersteund in Visual Studio 2019 versie 16.6 en hoger.
Stijlen bewerken in thema's\generic.xaml Niet ondersteund Niet ondersteund Met XAML Hot Reload worden nieuwe stijlen gemaakt; de originele zijn verzegeld. Platforms cachestijlen van generic.xaml nadat ze zijn toegepast op besturingselementen, waardoor ze niet toegankelijk zijn voor vervanging.

Foutberichten

U kunt de volgende fouten tegenkomen tijdens het gebruik van XAML Hot Reload.

Foutmelding Beschrijving
Controleren of de gebeurtenis is mislukt Fout geeft aan dat u een gebeurtenis probeert te koppelen aan een van uw besturingselementen, die niet wordt ondersteund terwijl uw toepassing wordt uitgevoerd.
Deze wijziging wordt niet ondersteund door XAML Hot Reload en wordt niet toegepast tijdens de foutopsporingssessie. Fout geeft aan dat de wijziging die u probeert, niet wordt ondersteund door XAML Hot Reload. Stop de foutopsporingssessie, breng de wijziging aan en start de foutopsporingssessie opnieuw.

Als u een niet-ondersteund scenario vindt dat u wilt zien, laat het ons dan weten met behulp van onze optie Een functie voorstellen.