Sdílet prostřednictvím


Konfigurace funkce Upravit a pokračovat (C#, VB, C++)

Opětovné načítání za provozu můžete zakázat nebo povolit, dříve nazývané Upravit a pokračovat, z nabídky Nástroje>Možnosti sady Visual Studio v době návrhu. Hot Reload funguje jenom v buildech pro ladění. Další informace naleznete v tématu rychlé načtení.

V případě nativního jazyka C++ vyžaduje Hot Reload použití možnosti /INCREMENTAL. Další informace o požadavcích na funkce v jazyce C++ najdete v tomto blogovém příspěvku a Upravit a Pokračovat (C++).

Poznámka

Pokud je IntelliTrace povolen a shromažďujete jak události IntelliTrace, tak informace o volání, je opětovné načítání za běhu zakázané. Další informace viz IntelliTrace.

Edit and Continue je funkce pro úsporu času, která umožňuje provádět změny ve zdrojovém kódu, když je program v režimu přerušení. Když obnovíte provádění programu tak, že zvolíte příkaz provádění, jako je Pokračovat nebo Krok, Upravit a pokračovat automaticky použije změny kódu s určitými omezeními. To vám umožní provádět změny kódu během ladicí relace, aniž by bylo nutné zastavit, znovu zkompilovat celý program a restartovat ladicí relaci.

V dialogovém okně Možnosti sady Visual Studio můžete v době návrhu zakázat nebo povolit možnost Upravit a pokračovat. upravit a pokračovat funguje jenom v buildech ladění. Další informace naleznete v tématu upravit a pokračovat.

V případě nativního jazyka C++ upravit a pokračovat vyžaduje použití možnosti /INCREMENTAL. Další informace o požadavcích na funkce v jazyce C++ najdete v tomto blogovém příspěvku a Upravit a Pokračovat (C++).

Poznámka

Pokud je povolená funkce IntelliTrace a shromažďujete události IntelliTrace i informace o volání, funkce Upravit a pokračovat je zakázaná. Další informace viz IntelliTrace.

Povolení a konfigurace živého opětovného načítání

Můžete nakonfigurovat Hot Reload tím, že v rozevíracím seznamu Hot Reload vyberete Nastavení.

snímek obrazovky s konfigurací opětovného načítání za provozu

Nebo otevřete Nástroje>Možnosti podokno a upravte možnosti v Všechna nastavení>Ladění>.NET/C++ Hot Reload části. K dispozici jsou následující možnosti:

  • Povolit opětovné načítání za provozu: Použijte funkci opětovného načítání za provozu s kódem .NET a C++, když je vaše aplikace spuštěná s připojeným ladicím programem (F5).

  • Automatické použití změn při pokračování (pouze nativní): Visual Studio automaticky zkompiluje a použije všechny neuhrazené změny kódu, které jste provedli při pokračování procesu ze stavu přerušení. Pokud není vybráno, můžete změny uplatnit pomocí položky Uplatnit změny kódu v nabídce Ladění.

  • Upozornění na zastaralý kód (pouze nativní):: Zobrazí se upozornění na zastaralý kód.

  • Povolit při neladění: Povolí Hot Reload, když se aplikace spustí bez připojeného ladicího programu (Ctrl + F5).

  • Aplikovat při ukládání souboru: Aplikuje změny při uložení souboru.

  • Úroveň podrobnosti logování: Nastavte úroveň podrobnosti logování při aktivním opětovném načítání: minimum, podrobnost nebo diagnostika.

Snímek obrazovky nastavení Hot Reloadu .NET C++ v aplikaci Visual Studio

Nebo otevřete dialogové okno Nástroje>Možnosti a upravte možnosti v části Ladění>.NET/C++ Opětovné načítání za provozu. K dispozici jsou následující možnosti:

  • Enable Hot Reload: Aktivuje Hot Reload při spuštění s připojeným ladicím programem (F5).

  • Povolit opětovné načítání za běhu při spuštění bez ladění: Povolí opětovné načítání za běhu při spuštění bez připojeného ladicího programu (Ctrl+F5).

  • Aplikovat Hot Reload při uložení souboru: Aplikuje úpravy kódu při uložení souboru.

  • Úroveň podrobnosti protokolování: Filtruje množství informací zobrazených v okně výstupu funkce Hot Reload.

Snímek obrazovky nastavení pro Hot Reload v .NET

Pro C++ můžete nastavit další možnosti otevřením Nástroje>Možnosti>Ladění>Obecné. Ujistěte se, že je vybraná Povolit Hot Reload a nastavte další možnosti:

  • Použít změny pro pokračování (pouze nativní):Visual Studio automaticky zkompiluje a použije všechny neuhrazené změny kódu, které jste provedli při pokračování procesu ze stavu přerušení. Pokud volba není vybrána, můžete použít položku Použít změny kódu v nabídce Ladění k aplikaci změn.

  • Upozornění na zastaralý kód (pouze nativní):: Zobrazí se upozornění na zastaralý kód.

U funkce Hot Reload pro .NET můžete také určit, zda je dostupná na úrovni projektu, a to úpravou souboru launchSetting.json u projektu .NET 6 a novějšího a nastavením hotReloadEnabled na false.

Příklad:

{
  "profiles": {
    "Console": {
      "commandName": "Project",
      "hotReloadEnabled": false
    }
  }
}

Povolení nebo zakázání možnosti Upravit a Pokračovat

  1. Pokud jste právě v relaci ladění, zastavte ladění (Ladění>Zastavit ladění nebo Shift+F5).

  2. V Tools>Options> (nebo Debug>Options) >Debugging>General, vyberte Edit and Continue v pravém panelu.

    Poznámka

    Pokud je povolená funkce IntelliTrace a shromažďujete události IntelliTrace i informace o volání, funkce Upravit a pokračovat je zakázaná. Další informace viz IntelliTrace.

  3. V případě kódu C++ se ujistěte, že je vybrána možnost Povolit nativní úpravy a pokračování, a poté nastavte další možnosti:

    • Použít změny pro pokračování (pouze nativní):Visual Studio automaticky zkompiluje a použije všechny neuhrazené změny kódu, které jste provedli při pokračování procesu ze stavu přerušení. Pokud není zvoleno, můžete aplikovat změny pomocí položky Použít změny kódu v nabídce Ladění.

    • Upozornění na zastaralý kód (pouze nativní):: Zobrazí se upozornění na zastaralý kód.

  4. Vyberte OK.

Konfigurace automatického restartování

Okamžité pře-načtení může automaticky restartovat běh aplikace, když se provede nepodporovaná změna (označovaná také jako hrubá úprava), místo ukončení celé ladicí relace. Pokud to chcete povolit, upravte soubor projektu a přidejte následující deklaraci vlastnosti.

<PropertyGroup>
  <HotReloadAutoRestart>true</HotReloadAutoRestart>
</PropertyGroup>

Tuto vlastnost můžete také nastavit v souboru Directory.Build.props . Automatické restartování funguje u typů projektů, ve kterých je možné provést rychlé restartování procesu (například některé projekty Aspire nebo web), takže můžete pokračovat v ladění s minimálním přerušením.

Jedná se o restartování založené na procesu. Pokud například ladíte několik projektů, znovu se sestaví a restartují pouze změněné projekty a všechny závislé projekty.

Konfigurace Hot Reloadu pro Razor

Spoluhostováním kompilátoru Razor uvnitř procesu Roslyn je úprava souboru .razor během opětovného načítání za provozu rychlejší a efektivnější. Spoluhostování také zlepšuje celkovou spolehlivost při použití živého načítání.

Chcete-li povolit spoluhosting, vyberte Nástroje>Možnosti, a potom vyhledejte cohost. Vyberte nebo zrušte výběr nastavení Použít server Roslyn Cohost pro Razor (vyžaduje restartování). Pokud tuto možnost povolíte, restartujte Visual Studio. Společné hostování je ve výchozím nastavení povolené.

Zastavení změn kódu

Během procesu Hot Reload, kdy se aplikují změny kódu, můžete operaci zastavit.

Zatímco Funkce Upravit a Pokračovat probíhá v procesu použití změn kódu, můžete operaci zastavit.

Opatrnost

Zastavení změn kódu ve spravovaném kódu může vést k neočekávaným výsledkům. Použití změn ve spravovaném kódu je obvykle rychlý proces, takže jen zřídka je potřeba zastavit změny kódu ve spravovaném kódu.

Pokud chcete přestat používat změny kódu:

  • V nabídce Ladění zvolte Zastavit použití změn kódu.

    Tato položka nabídky je viditelná pouze v případě, že se použijí změny kódu.

    Pokud zvolíte tuto možnost, nebude potvrzena žádná změna kódu.