Mechanismus opětovného načítání za provozu, 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í této relace.
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. Pro nejaktuálnější informace si prohlédněte stránku Podporované úpravy Enc.
Vylepšení .NET 6 a výše
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 jak pro prostředí Hot Reload, tak pro úpravy a pokračování.
.NET 6+ Živá aktualizace je poháněna mechanismem Upravit a pokračovat a Roslyn.
Podporovaných úprav 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 použít pro kód v jazycích C# a Visual Basic během relace ladění.
Změny aktuálního příkazu nebo 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 dospěl k aktuálnímu 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.
Element nebo funkce jazyka
Nepodporovaná operace úprav
Všechny prvky kódu
Přejmenování
Jmenné prostory
Přidat
Jmenné prostory, typy, členy
Vymazat
Rozhraní
Upravit
Typy
Přidejte abstraktního nebo virtuálního člena, přidejte přetížení (viz podrobnosti )
Typy
Přidání destruktoru
Členové
- Úprava členu odkazujícího na vložený typ interop. - Úprava statického členu po jeho přístupu spuštěním kódu
Členové (Visual Basic)
- Úprava člena pomocí příkazu On Error nebo Resume - Úprava člena obsahujícího klauzuli dotazu LinQ Agregovat, Seskupovat podle, Simple Join nebo Group Join
Metody
- Úprava podpisů - Udělejte z abstraktní metody neabstraktní přidáním těla metody - Smazat tělo metody
Atributy
Přidání nebo úprava
Události nebo vlastnosti
Úprava parametru typu, základního typu, typu delegáta nebo návratového typu
Operátory nebo indexery
Úprava parametru typu, základního typu, typu delegáta nebo návratového typu
catch blocks
Upravit, když obsahuje aktivní příkaz
Bloky try-catch-finally
Upravit, když obsahuje aktivní příkaz
příkazy použití
Přidat
asynchronní metody /lambdas
Upravte asynchronní metodu/lambda v projektu, který cílí na rozhraní .NET Framework 4 a nižší (viz podrobnosti )
Iterátory
Úprava iterátoru v projektu, který cílí na rozhraní .NET Framework 4 a starší (viz podrobnosti )
Element nebo funkce jazyka
Nepodporovaná operace úprav
Všechny prvky kódu
Přejmenování
Jmenné prostory
Přidat
Jmenné prostory, typy, členy
Vymazat
Generika
Přidání nebo úprava
Rozhraní
Upravit
Typy
Přidejte abstraktního nebo virtuálního člena, přidejte přepis (viz podrobnosti )
Typy
Přidání destruktoru
Členové
- Upravit člena odkazujícího na vložený interop typ - Změnit statického člena poté, co byl zpřístupněn spuštěním kódu
Členové (Visual Basic)
- Úprava člena pomocí příkazu On Error nebo Resume - Úprava člena obsahujícího klauzuli dotazu LinQ Agregovat, Seskupovat podle, Simple Join nebo Group Join
Metody
- Úprava podpisů - Udělejte z abstraktní metody neabstraktní přidáním těla metody - Odstranění těla metody
Atributy
Přidání nebo úprava
Události nebo vlastnosti
Úprava parametru typu, základního typu, typu delegáta nebo návratového typu
Operátory nebo indexery
Úprava parametru typu, základního typu, typu delegáta nebo návratového typu
zachytávací bloky
Upravit, když obsahuje aktivní příkaz
bloky try-catch-finally
Upravit, když obsahuje aktivní příkaz
using – příkazy
Přidat
asynchronní metody /lambdas
Úprava asynchronní metody nebo lambda v projektu, který cílí na rozhraní .NET Framework 4 a nižší (viz podrobnosti )
Iterátory
Úprava iterátoru v projektu, který cílí na rozhraní .NET Framework 4 a starší (viz podrobnosti )
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) místo spuštění aplikace prostřednictvím výběru 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 verzemi sestavení, které jsou nedeterministické (například časově závislé). Pokud chcete použít funkci Upravit a pokračovat, zvažte nastavení verze pouze v buildech vydání (nebo CI) a ponechte verzi v ladicích buildech konstantní.
Ladění optimalizovaného kódu
Ladění SQL
Ladění výpisového souboru
Ladění aplikace využívající zabudované runtime prostředí
Ladění staré verze kódu poté, co se novou verzi nepodařilo sestavit kvůli chybám sestavení.
Naučte se efektivně ladit aplikaci .NET pomocí editoru Visual Studio Code a rychle opravovat chyby. Pomocí interaktivního ladicího programu v editoru Visual Studio Code můžete analyzovat a opravovat aplikace jazyka C#.
Objevte proces sady Visual Studio, který umožňuje určit, jak se spustí více než jeden projekt při spuštění ladicího programu, a vytvořte spouštěcí profily, které můžete sdílet s ostatními.