Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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 Forró újratöltés célja, hogy a lehető legtöbb alkalmazás-újraindítást megspórolja a módosítások között, hatékonyabbá téve önt azáltal, hogy csökkenti az alkalmazások újraépítésére, újraindítására és az előző helyre történő visszanavigálásra fordított 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
Nyisson meg egy projektet egy támogatott alkalmazástípus alapján. Lásd .NET és C++ támogatott alkalmazásokat.
Indítsa el az alkalmazást a csatolt hibakeresővel az F5 vagy , ha támogatott, Ctrl+F5.
Nyisson meg egy kódfájlt, és módosítsa a kódot.
Alkalmazza a kódmódosításokat a Hot Reload gomb segítségével
, vagy nyomja le az ALT+F10 billentyűkombinációt.
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 korábban 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 a .NET gyorstöltés támogatásához szükséges minimális .NET-verziót mutatja be a hibakereső csatlakoztatásával (F5) és a hibakereső csatlakoztatása nélkül (Ctrl+F5) a projekt típusa alapján. A Visual Studio 2022 17.8-es vagy újabb verziójára van szükség.
| 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 (egy .NET alapú keretrendszer, amely lehetővé teszi webes alkalmazások futtatását közvetlenül a böngészőben) | .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.
.NET-keretrendszer-alkalmazások támogatása
A Visual Studio 2022 használatakor és az alkalmazás hibakeresővel való indításakor az 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!
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- vagy .NET-keretrendszeralkalmazá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 kevert módú hibakeresést használnak, ami nem támogatja a Hot Reload funkciót. 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.
Támogatott .NET-keretrendszer-módosítások
A .NET gyorstöltési élményt a hibakereső és a C#-fordító működteti. A támogatott kódmódosítások (C# és VB) felsorolják a jelenleg támogatott szerkesztési típusokat és a lehetséges jövőbeli fejlesztéseket.
Nem támogatott .NET- és .NET-keretrendszerprojektek
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
Debugbuildkonfigurációt kell használnia. - Ha F# vagy .NET natív projektet céloz meg.
- Egyes indítási vagy fordítási optimalizálások nem támogatottak a .NET Hot Reload-ban. 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.
-
vágása engedélyezve van a projektedhez. Nem támogatott például, ha a hibakeresési profil projektfájljában a
További részletekért lásd nem támogatott forgatókönyveket.
Az F# esetében a gyors újratöltés nem támogatott.
Az F# kód hibakeresésekor nem támogatott a Gyors újratöltés, illetve a Szerkesztés és folytatás. Az F#-kód szerkesztése hibakeresési munkamenetek során lehetséges, de ezeket el kell kerülni. A kódmódosítások nem lesznek alkalmazva a hibakeresési munkamenet során. Ezért a hibakeresés során az F#-kódban végzett módosítások olyan forráskódot eredményeznek, amely nem egyezik a hibakeresés alatt álló kóddal.
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.
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 ellenőrizni a Hot Reload kimenet ablakot a Hot Reload munkamenetre vonatkozó részletes diagnosztikai információkért.
Ha válasz tömörítést használ a .NET Core-on, tekintse meg a válasz tömörítésiadatokat.