Problemen met XAML Hot Reload oplossen
Van toepassing op: Visual Studio 2019 en latere versies
Deze handleiding 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 Schrijven en fouten opsporen in het uitvoeren van XAML-code met 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
op de werkbalk in de app ziet tijdens het opsporen van fouten in uw app, volgt u de instructies in dit artikel 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 u de werkbalk in de app ziet, waarmee wordt bevestigd dat XAML Hot Reload beschikbaar is.
Visual Studio 2019:
Visual Studio 2022:
Als u de werkbalk in de app niet ziet, selecteert u Foutopsporingsopties>>XAML Hot Reload in de menubalk van Visual Studio. Controleer vervolgens in het dialoogvenster Opties of de optie XAML Hot Reload inschakelen is geselecteerd.
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 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 in plaats daarvan XAML Hot Reload wilt gebruiken met de opdracht Foutopsporing>koppelen aan proces , stelt u de omgevingsvariabele zelf in.
Opmerking
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 omgevingsvariabelen in het dialoogvenster dat wordt geopend, voeg deze toe als een gebruikersvariabele en stel de waarde in op 1
. Als u wilt opschonen, verwijdert u de variabele wanneer u klaar bent met foutopsporing.
Controleer of uw MSBuild-eigenschappen juist zijn
Standaard wordt brongegevens opgenomen in een foutopsporingsconfiguratie. Dit wordt beheerd door MSBuild-eigenschappen in uw projectbestanden (zoals *.csproj). Voor WPF is XamlDebuggingInformation
de eigenschap , die moet worden ingesteld op True
. Voor UWP is DisableXbfLineInfo
de 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 correct instelt, werkt een aangepaste buildconfiguratienaam niet en ook geen Release-build.
Zorg ervoor dat uw programma niet met verhoogde bevoegdheid wordt uitgevoerd
XAML Hot Reload wordt niet ondersteund in apps die met verhoogde bevoegdheid/als administrator worden uitgevoerd.
Controleer of uw XAML-bestand geen fouten bevat
Als uw XAML-bestand fouten bevat in de foutenlijst, werkt XAML Hot Reload mogelijk niet.
Grondiger zoeken inschakelen om resourceverwijzingen en -stijlen bij te werken in Visual Studio 2022
Als u de XAML_HOT_RELOAD_ACCURACY_OVER_PERF
omgevingsvariabele instelt op een uitgebreidere zoekopdracht om resourceverwijzingen en -stijlen in WPF-toepassingen bij te 1
werken. 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 dynamisch opnieuw laden weergegeven in Editor statusbalk.
Bekende beperkingen
Hier volgen bekende beperkingen van XAML Hot Reload. Als u een beperking wilt omzeilen die u ondervindt, stopt u het foutopsporingsprogramma en voltooit u de bewerking.
Beperking | WPF | UWP | Opmerkingen |
---|---|---|---|
Gebeurtenissen bedraden om te bepalen terwijl de app wordt uitgevoerd | Niet ondersteund | Niet ondersteund | Zie fout: Controleren of 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 tijdens het gebruik van XAML Hot Reload. Alleen het maken van de resource wordt niet ondersteund. - De resourcewoordenlijsteigenschap 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 | Wordt ondersteund in Visual Studio 2019 versie 16.6 en hoger. |
Stijlen bewerken in thema's\generic.xaml | Niet ondersteund | Niet ondersteund | XAML Hot Reload maakt nieuwe stijlen; de oorspronkelijke zijn verzegeld. Platforms slaan stijlen van generic.xaml in de cache op 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.
Foutbericht | Beschrijving |
---|---|
Ervoor zorgen dat gebeurtenis is mislukt | Fout geeft aan dat u een gebeurtenis probeert door te verbinden met 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 ondersteund wilt zien, laat het ons dan weten met behulp van de optie Een functie voorstellen .