Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A korábban Szerkesztés és Folytatás néven ismert gyakori újratöltési mechanizmus kezeli a metódustörzseken belüli kódmódosítások többségét. A legtöbb, metódustesten kívüli módosítás és a metódustesteken belüli néhány módosítás azonban nem alkalmazható a hibakeresés során. A nem támogatott módosítások alkalmazásához le kell állítania a hibakeresést, és újra kell indítania a kód egy új verziójával.
A Szerkesztés és folytatás mechanizmus kezeli a legtöbb kódmódosítást a metódustesteken belül. A legtöbb, metódustesten kívüli módosítás és a metódustesteken belüli néhány módosítás azonban nem alkalmazható a hibakeresés során. A nem támogatott módosítások alkalmazásához le kell állítania a hibakeresést, és újra kell indítania a kód egy új verziójával.
Támogatott kódmódosítások
Az alábbi táblázat a C# és a Visual Basic kód módosításait mutatja be a hibakeresési munkamenet során a munkamenet újraindítása nélkül.
| Nyelvi elem vagy szolgáltatás | Támogatott szerkesztési művelet | Korlátozások |
|---|---|---|
| Típusok | Metódusok, mezők, konstruktorok és egyebek hozzáadása | Igen |
| Iterátorok | Hozzáadás vagy módosítás | Nem |
| aszinkron/várakozási kifejezések | Hozzáadás vagy módosítás | Igen |
| Dinamikus objektumok | Hozzáadás vagy módosítás | Nem |
| lambda kifejezések | Hozzáadás vagy módosítás | Igen |
| LINQ-kifejezések | Hozzáadás vagy módosítás | Megegyezik a lambdakifejezésekkel |
| Általános | Hozzáadás vagy módosítás | Igen |
| Nyelvi elem vagy szolgáltatás | Támogatott szerkesztési művelet | Korlátozások |
|---|---|---|
| Típusok | Metódusok, mezők, konstruktorok és egyebek hozzáadása | Igen |
| Iterátorok | Hozzáadás vagy módosítás | Nem |
| aszinkron/várakozási kifejezések | Hozzáadás vagy módosítás | Igen |
| Dinamikus objektumok | Hozzáadás vagy módosítás | Nem |
| lambda kifejezések | Hozzáadás vagy módosítás | Igen |
| LINQ-kifejezések | Hozzáadás vagy módosítás | Megegyezik a lambdakifejezésekkel |
Jegyzet
Az Editálás és Folytatás általában támogatja az újabb nyelvi jellemzőket, például a karakterlánc-interpolációt és a nullával feltételes operátorokat. A legfrissebb információkért tekintse meg az Enc által támogatott szerkesztések lapot. A .NET-keretrendszer esetében a támogatott funkciók a felsorolt funkciók részhalmazai, és a fordító verziójától függenek.
.NET 6+ fejlesztések
A .NET 6+ és a Visual Studio 2022 és újabb verzióinak fejlesztései további szerkesztési típusokat támogatnak, amelyek túlmutatnak a Visual Studio régebbi verzióiban eredetileg lehetséges módosításokon. Ezek a fejlesztések elérhetők mind a Hot Reload, mind a Szerkesztés és Folytatás funkcióban.
A .NET 6+ Hot Reload élményt a Szerkesztés és Folytatás mechanizmus és a Roslyn működteti. Támogatott szerkesztések felsorolja a Roslyn által jelenleg támogatott szerkesztési típusokat és a lehetséges jövőbeli fejlesztéseket.
Nem támogatott kódmódosítások
A hibakeresési munkamenet során a következő módosítások nem alkalmazhatók a C# és a Visual Basic kódra.
Az aktuális kijelentés vagy bármely más aktív kijelentés módosítása.
Az aktív utasítás a hívási hierarchiában szereplő függvényben található bármely utasítás, amelyet az aktuális utasítás eléréséhez hívtak meg.
Az aktuális utasítás sárga háttéren jelenik meg a forrásablakban. További aktív utasítások árnyékolt háttéren jelennek meg, és írásvédettek. Ezek az alapértelmezett színek módosíthatók a Beállítások párbeszédpanelen.
A kód nyelvi elemenkénti nem támogatott módosításai az alábbi táblázatban leírtak szerint.
A .NET 6+ és a Visual Studio 2022 esetében a jelenleg támogatott és nem támogatott szerkesztési típusok támogatott szerkesztések című témakörben olvashat.
Nyelvi elem vagy szolgáltatás Nem támogatott szerkesztési művelet Minden kódelem Átnevezés Névterek Hozzáad Névterek, típusok, tagok Töröl Felületek Módosít Típusok Absztrakt vagy virtuális tag hozzáadása, felülírás hozzáadása (lásd a részleteket) Típusok Destruktor hozzáadása Tagok – Beágyazott interoptípusra hivatkozó tag módosítása
– Statikus tag módosítása, miután azt már hozzáférték a kód végrehajtásávalTagok (Visual Basic) – Tag módosítása On Error vagy Resume utasítással
– Egy tag módosítása, amely tartalmaz egy összesítést, csoportosítást, egyszerű összekapcsolást vagy csoportosított LINQ lekérdezési záradékotMódszerek – Aláírások módosítása
- Az absztrakt metódus nem absztraktként viselkedik, ha metódustörzset adunk hozzá
- Metódus törzsének törléseAttribútumok Hozzáadás vagy módosítás Események vagy tulajdonságok Típusparaméter, alaptípus, delegálás típusa vagy visszatérési típus módosítása Operátorok vagy indexelők Típusparaméter, alaptípus, delegálás típusa vagy visszatérési típus módosítása fogási blokkok Módosítja, ha aktív utasítást tartalmaz try-catch-finally blokkok Módosítja, ha aktív utasítást tartalmaz állítások használata Hozzáad aszinkron metódusok/lambda-kifejezések Aszinkron metódus/lambda módosítása egy projektben, amely a .NET Framework 4-et és alacsonyabbat céloz (lásd részletek) Iterátorok Iterátor módosítása a .NET-keretrendszer 4-et és korábbi verzióit célzó projektben (lásd részletek) Nyelvi elem vagy szolgáltatás Nem támogatott szerkesztési művelet Minden kódelem Átnevezés Névterek Hozzáad Névterek, típusok, tagok Töröl Általános Hozzáadás vagy módosítás Felületek Módosít Típusok Absztrakt vagy virtuális tag hozzáadása, felülírás hozzáadása (lásd a részleteket) Típusok Destruktor hozzáadása Tagok – Beágyazott interoptípusra hivatkozó tag módosítása
– Statikus tag módosítása, miután azt már hozzáférték a kód végrehajtásávalTagok (Visual Basic) – Tag módosítása On Error vagy Resume utasítással
– Egy tag módosítása, amely tartalmaz egy összesítést, csoportosítást, egyszerű összekapcsolást vagy csoportosított LINQ lekérdezési záradékotMódszerek – Aláírások módosítása
- Az absztrakt metódus nem absztraktként viselkedik, ha metódustörzset adunk hozzá
- Metódus törzsének törléseAttribútumok Hozzáadás vagy módosítás Események vagy tulajdonságok Típusparaméter, alaptípus, delegálás típusa vagy visszatérési típus módosítása Operátorok vagy indexelők Típusparaméter, alaptípus, delegálás típusa vagy visszatérési típus módosítása fogási blokkok Módosítja, ha aktív utasítást tartalmaz try-catch-finally blokkok Módosítja, ha aktív utasítást tartalmaz állítások használata Hozzáad aszinkron metódusok/lambda-kifejezések Aszinkron metódus/lambda módosítása egy projektben, amely a .NET Framework 4-et és alacsonyabbat céloz (lásd részletek) Iterátorok Iterátor módosítása a .NET-keretrendszer 4-et és korábbi verzióit célzó projektben (lásd részletek)
Nem biztonságos kód
A nem biztonságos kód módosításaira ugyanazok a korlátozások vonatkoznak, mint a biztonságos kód módosításaira, egyetlen további korlátozással: A Szerkesztés és folytatás nem támogatja a nem biztonságos kód módosításait, amelyek a stackalloc operátort tartalmazó metóduson belül lépnek ki.
Alkalmazástámogatás
A támogatott alkalmazások a következők:
- UWP-alkalmazások Windows 10 vagy Windows 11 rendszerben
- x86-os és x64-es alkalmazások, amelyek a .NET-keretrendszer 4.6 asztali vagy újabb verzióit célozzák (a .NET-keretrendszer csak asztali verzió)
A .NET 6-os és újabb verzióiban a szerkesztés a következő fájltípusok esetében támogatott:
- .cshtml
- .borotva
Nem támogatott alkalmazások, platformok és műveletek
A nem támogatott alkalmazások vagy platformok a következők:
- F#
- .NET Native
- Silverlight 5
- Windows 8.1
- Xamarin.Forms (iOS és Android)
A ASP.NET és a ASP.NET Core esetében a szerkesztés nem támogatott az alábbi fájltípusok esetében:
- .aspx
- .ascx
- .aspx
- .ascx
- .cshtml
- .borotva
Nem támogatott forgatókönyvek
A szerkesztés és a folytatás nem érhető el a következő hibakeresési forgatókönyvekben:
Vegyes módú (natív/felügyelt) hibakeresés.
Hibakeresés az Arm64-en a .NET 7 vagy újabb verziójának megcélzása nélkül.
Hibakeresés a COR_ENABLE_PROFILING környezeti változókészlettel.
Alkalmazás hibakeresése folyamathoz csatolással (Hibakeresés > Folyamathoz csatolás) az alkalmazás futtatása helyett a Hibakeresés menü Start parancsának választásával. Ha a szerkesztést és a folytatást egy folyamathoz való csatoláskor szeretné használni, a COMPLUS_ForceENC környezeti változót be kell állítani a folyamat elindítása előtt (
set COMPLUS_ForceENC=1).Hibakeresés nemdeterminista (például időalapú) szerelvényverziókkal. Ha a Szerkesztés és a Folytatás lehetőséget szeretné használni, fontolja meg a verzió beállítását csak a Release (vagy CI) buildekben, és tartsa a verziót a hibakeresési buildek állandójában.
Optimalizált kód hibakeresése.
SQL-hibakeresés.
Memóriaképfájl hibakeresése.
Beágyazott futtatókörnyezeti alkalmazás hibakeresése.
A kód egy régi verziójának hibakeresése, miután egy új verzió összeállítása sikertelen volt a buildelési hibák miatt.