Megosztás a következőn keresztül:


Futó kód írása és hibakeresése a Visual Studióban (C#, Visual Basic, C++)

A Visual Studio 2022-től kezdve a Visual Studio gyakori újratöltési felülete a felügyelt .NET- és natív C++ alkalmazásokhoz is használható. Függetlenül attól, hogy milyen típusú alkalmazáson dolgozik, a Hot Reload célja, hogy a lehető legtöbb alkalmazás-újraindítást elkerülje a módosítások között, ami hatékonyabbá teszi azáltal, hogy csökkenti az alkalmazások újraépítésére, újraindítására és az alkalmazás előző helyére való visszatérésre várakozással töltött időt.

A termelékenység növelése érdekében lehetővé tesszük, hogy szerkeszd az alkalmazásod kódfájljait, és a kódmódosításokat azonnal alkalmazd a futó alkalmazásban, más néven Hot Reload. A módosítások alkalmazása után futtassa újra a kódot úgy, hogy végrehajt egy műveletet az alkalmazásban (vagy valamilyen időzítőn keresztül stb.), és azonnal megtekintheti a módosításokat; nem szükséges szüneteltetni az alkalmazást töréspontokon keresztül!

Futó kód frissítése forró újratöltéssel

  1. Nyisson meg egy projektet egy támogatott alkalmazástípus alapján. Lásd .NET és C++ támogatott alkalmazásokat.

  2. Indítsa el az alkalmazást a csatolt hibakeresővel az F5 vagy , ha támogatott, Ctrl+F5.

  3. Nyisson meg egy kódfájlt, és módosítsa a kódot.

  4. Alkalmazza a kód módosításait a Gyors újratöltés gombbal, vagy nyomja le a ALT+F10billentyűket.

    Gyakori elérésű újratöltés gomb képernyőképe.

A felhasználói felület változásainak megtekintéséhez újra végre kell hajtani a kódot. Egy gomb mögötti kódnak például újra végre kell hajtania, vagy az időzítőn keresztül időközönként aktivált kódot. Egy másik példa, ASP.NET Core támogatja az automatikus böngészőfrissítést a MetadataUpdateHandler funkció miatt.

.NET-alkalmazások támogatása

  • A Visual Studio 2022 használatakor és az alkalmazás hibakeresővel való indításakoraz alapszintű gyorstöltési felület a legtöbb .NET-alkalmazással és keretrendszerverzióval működik. Ez a támogatás tartalmazza a .NET-keretrendszert, a .NET Core-t és a .NET 5+-t (a C# és a Visual Basic esetében egyaránt). Ebben a forgatókönyvben az elvárás az, hogy ha a hibakeresőt használja, feltételezzük, hogy a Gyakori újratöltés elérhető az Ön számára, és próbálkozzon vele!
  • Ha a Visual Studio 2022-t használja, de nem használja a hibakereső (például az alkalmazás elindításához CTRL-F5 használatával), a gyakori újratöltés a .NET 6-alkalmazások legtöbb típusának megcélzásakor érhető el. Ebben a forgatókönyvben a .NET 6+-ot nem célzó alkalmazások (vagyis a .NET 5-öt vagy korábbi verziót célzóak) nem támogatják a "nincs hibakereső" forgatókönyvet, és a hibakeresőt kell használniuk a Hot Reload támogatásához.
  • Ha a Visual Studio 2022-t .NET 6+ alkalmazással használja, a legtöbb forgatókönyv támogatott. Ez a támogatás nem korlátozódik a fent említett új "nincs hibakereső" funkcióra. Egyéb új képességeket is tartalmaz, például a Blazor-projektek gyakori újratöltésének támogatását, és általánosabban a Razor-fájlok szerkesztését bármely ASP.NET Core-alkalmazásban, valamint a CSS gyakori újratöltését. A Visual Studio 2022 és a .NET 6-ot megcélzott alkalmazások együttes használata a leghatékonyabb gyorstöltési élményt nyújtja.

Az alábbi táblázat azt mutatja be, hogy mely projektek támogatják a .NET gyorstöltést a hibakereső csatlakoztatásával (F5) és a hibakereső csatlakoztatása nélkül (Ctrl+F5), a Visual Studio 2022 támogatásához szükséges minimális .NET-verziónak megfelelően (17.8).

Alkalmazás típusa F5 Ctrl+F5 MetadataUpdateHandler támogatás
Konzol .NET 6 .NET 6
Futtatás Linux/macOS rendszeren
(Docker és WSL)
.NET 8 .NET 6 .NET 8
Futtatás Arm64 platformon .NET 7 .NET 7 .NET 7
WPF .NET 6 .NET 6
WinForms .NET 6 .NET 6
ASP.NET .NET 6 .NET 6
Blazor-kiszolgáló .NET 6 .NET 6 .NET 6
Blazor WebAssembly .NET 6 .NET 6 .NET 6
MAUI
(WinUI/Android/iOS)
.NET 6 -- --

A gyorstöltéssel típusú módosításokat a futtatókörnyezet és a fordító verziója határozza meg, nem pedig az alkalmazás indításához használt módszer (F5 vagy Ctrl+F5).

A következő szakaszokban további részleteket adunk meg.

C++ alkalmazások támogatása

A Visual Studio 2022 használatakor és az alkalmazás hibakeresővel való indításakor (F5), a hibakereső alatt futtatott natív C++ alkalmazásokat a forró újratöltés gombbal töltheti újra. A Gyakori újratöltés CMake- és OpenFolder-projektek használatával készült alkalmazások esetében is támogatott.

Ahhoz, hogy a projekt támogassa a Hot Reload funkciót, a következő beállítások szükségesek:

  • A Projekt > Tulajdonságok > C/C++ > Általános >esetén a Hibakeresési információ formátumot „Programadatbázis szerkesztése és folytatása /ZI” értékre kell állítani.
  • Project > Properties > Linker > Általános >Növekményes csatolás engedélyezése "Igen /INCREMENTAL" értékre kell állítani

A támogatott módosításokért lásd C++ támogatott kódmódosítások.

Visual Studio 2022 .NET-alkalmazással a hibakereső használatakor

A Visual Studio 2022 használatakor és az alkalmazás hibakeresővel való indításakor a Gyakori újratöltés funkció a legtöbb alkalmazás-keretrendszerrel működik.

Ahol a .NET jelen van, és a Visual Studio felügyelt hibakeresőjét használja, alapvető Hot Reload támogatást kell kapnia. Ez azt jelenti, hogy ebben a forgatókönyvben még az Olyan projektek is jól működnek, mint az Azure Functions.

Jegyzet

Alapértelmezés szerint egyes projektek vegyes módú hibakeresést használnak, ami nem támogatja az azonnali újratöltést. Ezt a beállítást a projektbeállításokban módosíthatja, ha Project > Tulajdonságok > Hibakeresési > Hibakeresési indítási profilok megnyitása felhasználói felületen > A natív kódkeresés engedélyezése hamisra.

Visual Studio 2022 egy .NET-alkalmazással, de a hibakeresőt nem használva

A Hot Reload hibakereső nélkül érhető el a .NET 6+ alkalmazások legtöbb típusának célzásakor.

Ez a funkció kizárólag a .NET 6+-ra érhető el. Azok az alkalmazások, amelyek nem a .NET 6+ verziót célzik (vagyis a .NET 5 vagy újabb verziót célzik), nem támogatják a "nincs hibakereső" forgatókönyvet, és a hibakeresőt kell használniuk a gyakori elérésű újratöltési funkciókhoz való hozzáféréshez.

Emellett jelenleg nem minden projekttípus támogatja a "nincs hibakereső" forgatókönyvet, lásd: .NET-alkalmazások támogatása.

Visual Studio 2022 .NET 6+ alkalmazással

Ha a Visual Studio 2022-t is használja, és a .NET 6+-ot megcélozó alkalmazásokon dolgozik, a legtisztultabb és leghatékonyabb gyorstöltési élmény előnyeit élvezheti.

Ebben a forgatókönyvben támogatott:

  • Blazor-alkalmazások (Kiszolgáló és WebAssembly)
  • Razor-fájlok szerkesztése a Blazorban és a normál ASP.NET Core-webhelyeken
  • A CSS gyakori újratöltése
  • XAML Hot Reload
  • Gyakori elérésű újratöltés támogatása, ha az alkalmazásokat hibakereső nélkül futtatja (a korábban részletesebben leírt módon)

Ha a .NET 6+-ot célozza meg, a Visual Studio 2022 közelgő frissítéseiben, valamint a .NET-funkciósávban és a főbb kiadásokban továbbra is fejlesztéseket fog kapni.

Támogatott ASP.NET alapforgatókönyvek

Az alapszintű gyorstöltési felület számos ASP.NET forgatókönyv esetében támogatott. A legszélesebb körben elérhető funkció a kód mögötti és más .NET-osztályfájlok módosítása a legtöbb webalkalmazás-típushoz. Ez a funkció a Visual Studio hibakeresőjének használata közben működik, és bárhol megtalálható, ahol korábban a Hot Reload elérhető volt. További útmutatásért lásd: .NET Gyakori újratöltés támogatása ASP.NET Core.

A .NET 6+-ot célzó ASP.NET Core-fejlesztők számára további képességek nem érhetők el a .NET alacsonyabb verzióihoz. Ezek a képességek a következők:

  • CSHTML: Razor CSHTML-fájl szerkesztése számos típusú szerkesztést támogat.
  • Böngészőfrissítés: A Razor-fájl szerkesztésekor a böngésző automatikusan frissül a hibakeresés során végrehajtott változtatásokkal. Ez a funkció korábban csak a hibakereső nélküli alkalmazás indításakor volt elérhető.
  • CSS gyakori újratöltése: Az alkalmazás futtatása közben módosíthatja a CSS-fájlokat, és beírás közben a rendszer azonnal alkalmazza a módosításokat a futó alkalmazásra.
  • Nincs hibakereső: Gyakori elérésű újratöltési támogatáshoz juthat, ha a Visual Studióval indítja el a webalkalmazást hibakereső nélkül (CTRL-F5).

Támogatott .NET-módosítások

A .NET gyorstöltési élményt a hibakereső és C# fordító (Roslyn) működteti. A Roslyn által támogatott módosítások és támogatott kódmódosítások (C# és VB) felsorolják a jelenleg támogatott módosítások típusait és a lehetséges jövőbeli fejlesztéseket.

Nem támogatott .NET-projektek

Néhány projektkonfigurációban nem érhető el a Hot Reload.

  • Ha a Visual Studiót hibakereső használata nélkül használja, az Azonnali újratöltés csak a .NET 6+ verziót célzó .NET alkalmazásoknál működik.
  • Ha a Visual Studio hibakeresőjével futtatja az alkalmazást, de a beállításokban letiltotta a Enable Hot Reload and Edit and Continue when debugging-t, a Hot Reload nem támogatott.
  • A kiadási vagy egyéni buildkonfigurációk nem támogatottak. A projektnek a Debug buildkonfigurációt kell használnia.
  • Ha F# vagy .NET natív projektet céloz meg.
  • Egyes indulás- vagy fordítási optimalizálások nem támogatottak a .NET Hot Reloadban. Ha például a projekt hibakeresési profilja a következő módon van konfigurálva, a .NET Hot Reload nem támogatott:
    • vágása engedélyezve van a projektedhez. Nem támogatott például, ha a hibakeresési profil projektfájljában a PublishTrimmed Értéke True (Igaz) értékre van állítva.
    • ReadyToRun engedélyezve van a projekthez. Nem támogatott például, ha a hibakeresési profil projektfájljában a PublishReadyToRun Értéke True (Igaz) értékre van állítva.

További részletekért lásd nem támogatott forgatókönyveket.

Gyors újratöltés konfigurálása

A Hot Reload engedélyezéséhez, letiltásához vagy konfigurálásához lásd a Szerkesztés és folytatás konfigurálásacímű témakört.

Figyelmeztető üzenet

Ha a következő párbeszédpanel jelenik meg, a Hot Reload nem tudja újraindítás nélkül alkalmazni az aktuális módosításokat. Választhat, hogy újraépíti az alkalmazást, és módosításokat alkalmaz (újraindítás), vagy folytatja a szerkesztést. Ha újraépíti, az összes alkalmazásállapot elveszik. Ha folytatja a szerkesztést, lehetséges, hogy további változtatások vagy javítások hatására a Hot Reload újra működni fog.

Módosítások alkalmazása párbeszédpanel képernyőképe

Ha a Módosítások alkalmazásának sikertelensége esetén mindig újraépít lehetőséget választja a párbeszédpanelen, akkor az aktuális Visual Studio-munkamenet során nem fogja látni a párbeszédpanelt, és a Visual Studio automatikusan újraépíti és újratölti a programot a párbeszédpanel megjelenítése helyett.

Hibaelhárítás

Nagyon ajánlott, hogy a Hot Reload munkamenettel kapcsolatos részletes diagnosztikai információkért ellenőrizze a Hot Reload kimeneti ablakot.

Ha válasz tömörítést használ a .NET Core-on, tekintse meg a válasz tömörítésiadatokat.