Podporované změny kódu (C# a Visual Basic)
Mechanismus opětovného načítání za běhu, dříve označovaný jako Edit and Continue, zpracovává většinu typů změn kódu v tělech metod. Většina změn mimo těla metody a několik změn v těle metody se ale během ladění nedá použít. Pokud chcete tyto nepodporované změny použít, musíte zastavit ladění a restartovat s novou verzí kódu.
Mechanismus Edit and Continue zpracovává většinu typů změn kódu v tělech metody. Většina změn mimo těla metody a několik změn v těle metody se ale během ladění nedá použít. Pokud chcete tyto nepodporované změny použít, musíte zastavit ladění a restartovat s novou verzí kódu.
Podporované změny kódu
Následující tabulka ukazuje změny, které mohou být provedeny v kódu jazyka C# a Visual Basic během ladicí relace bez restartování relace.
Element nebo funkce jazyka | Podporovaná operace úprav | Omezení |
---|---|---|
Typy | Přidání metod, polí, konstruktorů a dalších | Ano |
Iterátory | Přidání nebo úprava | Ne |
výrazy async/await | Přidání nebo úprava | Ano |
Dynamické objekty | Přidání nebo úprava | Ne |
výrazy lambda | Přidání nebo úprava | Ano |
Výrazy LINQ | Přidání nebo úprava | stejné jako výrazy lambda |
Generika | Přidání nebo úprava | Ano |
Element nebo funkce jazyka | Podporovaná operace úprav | Omezení |
---|---|---|
Typy | Přidání metod, polí, konstruktorů a dalších | Ano |
Iterátory | Přidání nebo úprava | Ne |
výrazy async/await | Přidání nebo úprava | Ano |
Dynamické objekty | Přidání nebo úprava | Ne |
výrazy lambda | Přidání nebo úprava | Ano |
Výrazy LINQ | Přidání nebo úprava | stejné jako výrazy lambda |
Poznámka
Novější jazykové funkce, jako je interpolace řetězců a podmíněné operátory s hodnotou null, jsou obecně podporovány funkcí Upravit a Pokračovat. Nejaktuálnější informace najdete na stránce Podporované úpravy Enc.
Vylepšení pro .NET 6 a novější verze
Vylepšení v .NET 6 nebo novějších verzích a v sadě Visual Studio 2022 a novějších verzích zahrnují podporu více typů úprav, které překračují rámec toho, co bylo původně možné ve starších verzích sady Visual Studio. Tato vylepšení jsou k dispozici pro funkce Hot Reload i Edit and Continue.
Rozhraní .NET 6+ funkce Hot Reload využívá mechanismus Upravit a pokračovat a Roslyn. Podporované úpravy uvádí typy úprav, které Roslyn aktuálně podporuje, a potenciální budoucí vylepšení.
Nepodporované změny kódu
Následující změny nelze aplikovat na kód v jazyce C# a Visual Basic během relace ladění.
Změny aktuálního příkazu nebo jakéhokoli jiného aktivního příkazu.
Aktivní příkaz je libovolný příkaz ve funkci v zásobníku volání, který byl volán, aby se dostal do aktuálního příkazu.
Aktuální příkaz se zobrazí na žlutém pozadí ve zdrojovém okně. Další aktivní příkazy se zobrazují na stínovaném pozadí a jsou jen pro čtení. Tyto výchozí barvy lze změnit v dialogovém okně Možnosti.
Všechny nepodporované změny kódu podle elementu jazyka, jak je uvedeno v následující tabulce.
Nebezpečný kód
Změny nebezpečného kódu mají stejná omezení jako změny bezpečného kódu s jedním omezením navíc: Edit and Continue nepodporuje změny nebezpečného kódu, který se ukončí v metodě, která obsahuje operátor stackalloc
.
Podpora aplikací
Mezi podporované aplikace patří:
- Aplikace pro UPW ve Windows 10 nebo Windows 11
- Aplikace x86 a x64, které cílí na desktopovou nebo novější verzi rozhraní .NET Framework 4.6 (rozhraní .NET Framework je pouze desktopová verze)
Pro .NET 6 a novější se úpravy podporují pro následující typy souborů:
- .cshtml
- .razor
Nepodporované aplikace, platformy a operace
Mezi nepodporované aplikace nebo platformy patří:
- F#
- .NET Native
- Silverlight 5
- Windows 8.1
- Xamarin.Forms (iOS a Android)
U ASP.NET a ASP.NET Core se úpravy nepodporují u následujících typů souborů:
- .aspx
- .ascx
- .aspx
- .ascx
- .cshtml
- .razor
Nepodporované scénáře
Funkce Upravit a pokračovat není dostupná v následujících scénářích ladění:
Ladění ve smíšeném režimu (nativní nebo spravované)
Ladění v Arm64 bez cílení na .NET 7 nebo novější
Ladění pomocí sady proměnných prostředí COR_ENABLE_PROFILING.
Ladění aplikace pomocí připojení k procesu (Ladění > Připojit k procesu) namísto spuštění aplikace výběrem Spustit z nabídky Ladění. Pokud chcete při připojování k procesu použít funkci Upravit a pokračovat, musí být před spuštěním procesu nastavena proměnná prostředí COMPLUS_ForceENC (
set COMPLUS_ForceENC=1
).Ladění s nedeterministickými (například časovými) verzemi sestavení. Pokud chcete použít funkci Edit and Continue, zvažte nastavení verze pouze v buildu Release (nebo CI) a ponechte verzi v buildu Debug konstantní.
Ladění optimalizovaného kódu
Ladění SQL
Ladění souboru s výpisem paměti
Ladění vestavěné aplikace v runtime prostředí
Ladění starší verze kódu poté, co se nepodařilo sestavit novou verzi kvůli chybám při sestavování.