2022LogoZpráva k vydání verze pro Visual Studio 2022 verze 17.0


Tip

Podívejte se na nahrávky spouštěcí události sady Visual Studio 2022, kde se dozvíte, co je nového, poslechněte si tipy a triky a stáhněte si zdarma digitální swag.

Vývojářská komunita | Visual Studio 2022 Roadmapa | – Požadavky na | systém pro kompatibilitu s distribuovatelnými | licenčními podmínkami | pro vydání | kódu | – Blogy | o nejnovějších známých problémech | v dokumentaci k sadě Visual Studio


Visual Studio 2022 verze 17.0

Podpora sady Visual Studio 2022 verze 17.0 skončila v červenci 2023, což znamená, že pro tuto verzi nebudou žádné další aktualizace zabezpečení. Předplatitelé Enterprise a Professional, kteří používají kanál Visual Studio 2022 17.0 LTSC, by měli přijmout nejnovější verzi aktuálního kanálu nebo LTSC.

Přečtěte si o verzích sady Visual Studio 2022 a datech podpory.

Přečtěte si o životním cyklu a údržbě produktu Visual Studio.

Navštivte web sady Visual Studio a získejte přístup k odkazům pro nejnovější verze produktů Visual Studio 2022. Pokyny k instalaci a aktualizaci sady Visual Studio 2022 najdete v tématu Aktualizace sady Visual Studio 2022 na nejnovější verzi. Příručka k sadě Visual Studio Správa istrator obsahuje pokyny k nasazení sady Visual Studio ve vaší organizaci.

Vydání sady Visual Studio 2022 verze 17.0

Visual Studio 2022 Blog

Blog sady Visual Studio 2022 je oficiálním zdrojem informací o produktu od technického týmu sady Visual Studio. Podrobné informace o vydaných verzích sady Visual Studio 2022 najdete v následujících příspěvcích:


17.0.23 Visual Studio 2022 verze 17.0.23

Vydáno 11. července 2023

Problémy vyřešené v této verzi verze 17.0.23

  • Microsoft o ohrožení zabezpečení ví, že existuje možnost injektáže adresy SMTP, ke které může dojít ve třídě SmtpClient. To odpovídá CVE-2022-26893 (ne publikované CVE, protože se ohrožení zabezpečení posuzuje jako střední).

Vyřešené informační zpravodaje zabezpečení


17.0.22 Visual Studio 2022 verze 17.0.22

Vydáno 13. června 2023

Problémy vyřešené v této verzi verze 17.0.22

  • Microsoft o ohrožení zabezpečení ví, že existuje možnost injektáže adresy SMTP, ke které může dojít ve třídě SmtpClient. To odpovídá CVE-2022-26893 (ne publikované CVE, protože se ohrožení zabezpečení posuzuje jako střední).

Vyřešené informační zpravodaje zabezpečení

  • CVE-2023-24897 Ohrožení zabezpečení spočívající ve vzdáleném spuštění kódu v sadě Visual Studio– Tato aktualizace zabezpečení řeší chybu zabezpečení v sadě MSDIA SDK, kde poškozené soubory PDB můžou způsobit přetečení haldy, což vede k chybovému ukončení nebo vzdálenému spuštění kódu.
  • CVE-2023-25652 Ohrožení zabezpečení spočívající v možnosti vzdáleného spuštění kódu v sadě Visual Studio Tato aktualizace zabezpečení řeší chybu zabezpečení, kdy speciálně vytvořený vstup pro použití Gitu může vést k řízeným zápisům obsahu v libovolných umístěních.
  • CVE-2023-25815 Visual Studio – Ohrožení zabezpečení z hlediska falšování identity – Tato aktualizace zabezpečení řeší chybu zabezpečení, kdy lokalizační zprávy GitHubu odkazují na pevně zakódovanou cestu místo toho, aby respektovaly předponu modulu runtime, která vede k nevázaných zápisům a chybovým ukončením paměti.
  • CVE-2023-29007 Ohrožení zabezpečení spočívající ve vzdáleném spuštění kódu v sadě Visual Studio– Tato aktualizace zabezpečení řeší chybu zabezpečení, ve které konfigurační soubor obsahující chybu logiky způsobí injektáž libovolné konfigurace.
  • CVE-2023-29011 Ohrožení zabezpečení spočívající ve vzdáleném spuštění kódu sady Visual Studio– Tato aktualizace zabezpečení řeší chybu zabezpečení, ve které je spustitelný soubor Gitu pro Windows zodpovědný za implementaci proxy serveru SOCKS5 náchylný k vyzvednutí nedůvěryhodné konfigurace na počítačích s více uživateli.
  • CVE-2023-29012 Ohrožení zabezpečení spočívající ve vzdáleném spuštění kódu v sadě Visual Studio– Tato aktualizace zabezpečení řeší chybu zabezpečení, ve které program Git pro Windows Git CMD nesprávně hledá program při spuštění, což vede k tichému spuštění libovolného kódu.
  • CVE-2023-27909 Ohrožení zabezpečení spočívající ve vzdáleném spuštění kódu v sadě Visual Studio – Tato aktualizace zabezpečení řeší chybu zabezpečení spočívající v zápisu mimo hranice v sadě Autodesk® FBX® SDK, kde verze 2020 nebo starší může vést ke spuštění kódu prostřednictvím škodlivých souborů FBX nebo zpřístupnění informací.
  • CVE-2023-27910 Ohrožení zabezpečení spočívající ve zpřístupnění informací v sadě Visual Studio Tato aktualizace zabezpečení řeší chybu zabezpečení, kdy může být uživatel zkomplikován otevření škodlivého souboru FBX, který může zneužít ohrožení zabezpečení spočívající v přetečení vyrovnávací paměti zásobníku v sadě Autodesk® FBX® SDK 2020 nebo před tím, než může vést ke vzdálenému spuštění kódu.
  • CVE-2023-27911 Ohrožení zabezpečení spočívající ve vzdáleném spuštění kódu v sadě Visual Studio Tato aktualizace zabezpečení řeší chybu zabezpečení, kdy může být uživatel zkomplikován otevření škodlivého souboru FBX, který může zneužít ohrožení zabezpečení přetečení vyrovnávací paměti haldy v sadě Autodesk® FBX® SDK 2020 nebo před tím, což může vést ke vzdálenému spuštění kódu.
  • CVE-2023-33139 Ohrožení zabezpečení spočívající ve zpřístupnění informací v sadě Visual Studio– Tato aktualizace zabezpečení řeší chybu zabezpečení OOB, kde analyzátor souborů obj v sadě Visual Studios vede ke zpřístupnění informací.
  • CVE-2023-29331 .NET a Ohrožení zabezpečení spočívající v odepření služby v sadě Visual Studio Tato aktualizace zabezpečení řeší chybu zabezpečení, kdy proces načítání AIA pro klientské certifikáty může vést k odepření služby.
  • CVE-2023-24895 .NET a Ohrožení zabezpečení spočívající ve vzdáleném spuštění kódu v sadě Visual Studio – Tato aktualizace zabezpečení řeší chybu zabezpečení v analyzátoru WPF XAML, kde může dojít k vzdálenému spuštění kódu.
  • CVE-2023-24936 .NET a Ohrožení zabezpečení z důvodu zvýšení oprávnění sady Visual Studio Tato aktualizace zabezpečení řeší chybu zabezpečení v omezeních obejití při deserializaci datové sady nebo datové tabulky z XML, což vede ke zvýšení oprávnění.
  • CVE-2023-32032 .NET Z důvodu ohrožení zabezpečení spočívající v ohrožení zabezpečení z důvodu zvýšení oprávnění v rozhraní .NET existuje pomocí extrahování obsahu souboru Tar, což může mít za následek zvýšení oprávnění.
  • CVE-2023-33126 .NET – Ohrožení zabezpečení spočívající ve vzdáleném spuštění kódu v .NET během scénářů chybových ukončení a trasování zásobníku, které můžou vést k načtení libovolného intervalu
  • CVE-2023-33128 .NET – Ohrožení zabezpečení spočívající ve vzdáleném spuštění kódu – Ohrožení zabezpečení existuje ve zdrojovém generátoru .NET pro volání neinicializovaného kódu, což může vést k vygenerování neinicializované paměti a chybovému ukončení.
  • CVE-2023-33135 .NET – Ohrožení zabezpečení spočívající ve vzdáleném spuštění kódu – Během obnovení nástroje existuje v sadě .NET SDK ohrožení zabezpečení, což může vést ke zvýšení oprávnění.

17.0.21 Visual Studio 2022 verze 17.0.21

Vydáno 11. dubna 2023

Problémy vyřešené v této verzi verze 17.0.21

  • Opraví chybu při odeslání neplatného vstupu do ovladače použitého během trénování PGO pro ovladače režimu jádra.
  • Opravili jsme problém ve službě IIS Express, který mohl způsobit chybové ukončení při aktualizaci telemetrických dat.
  • Microsoft o ohrožení zabezpečení ví, že existuje možnost injektáže adresy SMTP, ke které může dojít ve třídě SmtpClient. To odpovídá CVE-2022-26893 (ne publikované CVE, protože se ohrožení zabezpečení posuzuje jako střední).

Komunita vývojářů

Vyřešené informační zpravodaje zabezpečení


17.0.20 Visual Studio 2022 verze 17.0.20

Vydáno 14. března 2023

Problémy vyřešené v této verzi verze 17.0.20

  • Microsoft o ohrožení zabezpečení ví, že existuje možnost injektáže adresy SMTP, ke které může dojít ve třídě SmtpClient. To odpovídá CVE-2022-26893 (ne publikované CVE, protože se ohrožení zabezpečení posuzuje jako střední).
  • Git 2.39 přejmenoval hodnotu pro credential.helper z "manager-core" na "manager". Další informace naleznete v tématu https://aka.ms/gcm/rename.
  • Aktualizace balíček mingit a Git pro Windows na verzi 2.39.2, který řeší CVE-2023-22490

Vyřešené informační zpravodaje zabezpečení


17.0.19 Visual Studio 2022 verze 17.0.19

Vydáno 14. února 2023

Problémy vyřešené v této verzi 17.0.19

  • Aktualizovali jsme interpret CPython na verzi 3.9.13.
  • Aktualizace balíčku mingit a Git pro Windows na verzi 2.39.1.1, který řeší CVE-2022-41903

Vyřešené informační zpravodaje zabezpečení

17.0.18 Visual Studio 2022 verze 17.0.18

Vydáno 10. ledna 2023

Vyřešené informační zpravodaje zabezpečení

17.0.17 Visual Studio 2022 verze 17.0.17

Vydáno 13. prosince 2022

Vyřešené informační zpravodaje zabezpečení


17.0.16 Visual Studio 2022 verze 17.0.16

Vydáno 8. listopadu 2022

Problémy vyřešené v této verzi 17.0.16

Vyřešené informační zpravodaje zabezpečení


17.0.15 Visual Studio 2022 verze 17.0.15

Vydáno 11. října 2022

Problémy vyřešené v této verzi 17.0.15

  • Správa istrátory budou moct aktualizovat instalační program VS na offline klientském počítači z rozložení bez aktualizace VS.

Vyřešené informační zpravodaje zabezpečení


17.0.14 Visual Studio 2022 verze 17.0.14

Vydáno 13. září 2022

Problémy vyřešené v této verzi 17.0.14

Vyřešené informační zpravodaje zabezpečení

CVE-2022-38013 .NET Denial of Service Vulnerability A denial of Service vulnerability A denial of Service vulnerability in ASP.NET Core 3.1 a .NET 6.0, kde by škodlivý klient mohl způsobit přetečení zásobníku, což může vést k útoku na dostupnost služby, když útočník odešle přizpůsobenou datovou část, která se parsuje během vazby modelu.


17.0.13 Visual Studio 2022 verze 17.0.13

Vydáno 9. srpna 2022

Problémy vyřešené v této verzi verze 17.0.13

  • Řeší chybu Gitu po aktualizaci 17.1.4 – Zpětná vazba sady Visual Studio, která poskytuje možnost označit úložiště Git jako bezpečné prostřednictvím sady Visual Studio.
  • Aktualizace MinGit na verzi 2.37.1.1, která řeší CVE - CVE-2022-29187 (mitre.org), která uživatele odhalila ohrožení zabezpečení, kdy přejdou do úložiště, které vlastní, ale že by mohl být zneužit ke spuštění škodlivého kódu.
  • Aktualizace Git pro Windows na verzi 2.37.1.1 řešící CVE-2022-31012.

Vyřešené informační zpravodaje zabezpečení


17.0.12 Visual Studio 2022 verze 17.0.12

Vydáno 12. července 2022

Problémy vyřešené v této verzi verze 17.0.12

  • Aktualizace LibraryManageru pro přizpůsobení změn v rozhraní CDnjs API
  • Opravili jsme chybu, kdy byl textový editor při otevírání dokumentu nebo chybovém ukončení při psaní prázdný.

Vyřešené informační zpravodaje zabezpečení

  • CVE-2022-24513 Ohrožení zabezpečení spočívající ve zvýšení oprávnění Ohrožení zabezpečení z hlediska možného zvýšení oprávnění existuje, když služba aktualizátoru sady Microsoft Visual Studio nesprávně parsuje místní konfigurační data.

17.0.11 Visual Studio 2022 verze 17.0.11

Vydáno 14. června 2022

Problémy vyřešené v této verzi verze 17.0.11

  • Aktualizace sady nástrojů C++ vedle sebe na verzi 14.29.30145.00 Nejnovější verze sady nástrojů Pro vývoj 16.11 C++ obsahuje důležité opravy chyb, včetně opravy všech zbývajících sestav chyb C++20. Další informace najdete ve zprávě k vydání verze 16.11.14.

Od komunity vývojářů

Vyřešené informační zpravodaje zabezpečení


17.0.10 Visual Studio 2022 verze 17.0.10

Vydáno 10. května 2022

Problémy vyřešené v této verzi verze 17.0.10

  • Aktualizace Verze Gitu pro Windows využívaná sadou Visual Studio a instalovatelná volitelná komponenta na verzi 2.36.0.1
  • Opravili jsme problém s integrací Gitu, kdy se při načítání nebo synchronizaci větví, které se rozbíhají, nezobrazovat lokalizovaný tip k jeho vyřešení.
  • Opravili jsme problém, kdy se při otevírání úložiště Git v sadě Visual Studio zobrazovala zpráva "Došlo k jedné nebo více chybám" místo důvodu, proč k chybě dochází, a jak ji vyřešit.
  • Aktualizace směrného plánu webview2 v Daytona

Od komunity vývojářů

Vyřešené informační zpravodaje zabezpečení

[CVE-2022-29117 .NET Denial of Service Vulnerability : V rozhraní .NET 6.0, .NET 5.0 a .NET Core 3.1 existuje ohrožení zabezpečení spočívající v ohrožení zabezpečení .NET 6.0, .NET 5.0 a .NET Core 3.1, kde může škodlivý klient manipulovat se soubory cookie a způsobit odepření služby.

CVE-2022-23267 .NET Core Ohrožení zabezpečení v oblasti útoku DoS existuje v .NET 6.0, .NET 5.0 a .NET Core 3.1, kde může škodlivý klient způsobit odepření služby prostřednictvím nadbytečných přidělení paměti přes HttpClient.

CVE-2022-29145 .NET Denial of Service Vulnerability A vulnerability V .NET 6.0, .NET 5.0 a .NET Core 3.1, kde může škodlivý klient způsobit odepření služby při analýze formulářů HTML.

CVE-2022-24513 Ohrožení zabezpečení spočívající ve zvýšení oprávnění Ohrožení zabezpečení z hlediska možného zvýšení oprávnění existuje, když služba aktualizátoru sady Microsoft Visual Studio nesprávně parsuje místní konfigurační data.


17.0.9 Visual Studio 2022 verze 17.0.9

Vydáno 19. dubna 2022

Problémy vyřešené v této verzi verze 17.0.9

  • Oprava regrese vctip.exe z verze 17.0.8
  • Opravili jsme chybu, která bránila načtení některých aplikací vytvořených pomocí ASAN (Address Sanitizer) ve Windows 11.
  • Opravili jsme jiný problém se službou ASAN, kdy u vícevláknových aplikací s kolizemi haldy mohlo docházet k zablokování, nepravdivým zprávám o uvolnění zástupného ukazatele nebo zablokování během ukončení procesu.
  • Opravili jsme problém s nemožností nainstalovat jakékoli rozšíření (vsix) pro Visual Studio na offline počítač.

17.0.8 Visual Studio 2022 verze 17.0.8

Vydáno 12. dubna 2022

Problémy vyřešené v této verzi verze 17.0.8

Od komunity vývojářů

Vyřešené informační zpravodaje zabezpečení

CVE-2022-24765 Ohrožení zabezpečení spočívající ve zvýšení oprávnění Ohrožení zabezpečení spočívající v možném zvýšení oprávnění existuje v Gitu pro Windows, ve kterém by operace Gitu mohly běžet mimo úložiště při zařaování adresáře Git. Git pro Windows se teď aktualizuje na verzi 2.35.2.1.

CVE-2022-24767 DLL napadení ohrožení zabezpečení A potenciální ohrožení zabezpečení knihovny DLL napadení v Instalační službě systému Git pro Windows existuje při spuštění odinstalátoru pod uživatelským účtem SYSTEM. Git pro Windows se teď aktualizuje na verzi 2.35.2.1.

CVE-2022-24513 Ohrožení zabezpečení spočívající ve zvýšení oprávnění Ohrožení zabezpečení z hlediska možného zvýšení oprávnění existuje, když služba aktualizátoru sady Microsoft Visual Studio nesprávně parsuje místní konfigurační data.


17.0.7 Visual Studio 2022 verze 17.0.7

Vydáno 8. března 2022

Problémy vyřešené v této verzi verze 17.0.7

  • Vylepšili jsme výkon monitorů s vysokou obnovovací rychlostí.
  • Opravili jsme zablokování při spuštění sady Visual Studio pro uživatele SKU Community.

Od komunity vývojářů

Komunita vývojářů má úplný seznam oprav, které jsou k dispozici ve verzi 17.0.

Vyřešené informační zpravodaje zabezpečení

CVE-2020-8927 Ohrožení zabezpečení Spočívající ve vzdáleném spuštění kódu existuje v .NET 5.0 a .NET Core 3.1, kde existuje přetečení vyrovnávací paměti ve verzích knihovny Brotli před 1.0.8.

CVE-2022-24464 Ohrožení zabezpečení spočívající v ohrožení zabezpečení spočívající v odepření služby v rozhraní .NET 6.0, .NET 5.0 a .NET CORE 3.1 při analýze určitých typů požadavků na formulář http

CVE-2022-24512 Ohrožení zabezpečení spočívající ve vzdáleném spuštění kódu existuje v .NET 6.0, .NET 5.0 a .NET Core 3.1, kde v rutině .NET Double Parse dochází k přetečení vyrovnávací paměti zásobníku.

CVE-2021-3711 Ohrožení zabezpečení přetečení vyrovnávací paměti OpenSSL Ohrožení zabezpečení spočívající v přetečení vyrovnávací paměti existuje v OpenSSL, které využívá Git pro Windows. Git pro Windows je teď aktualizovaný na verzi 2.35.1.2, která tento problém řeší.


17.0.6 Visual Studio 2022 verze 17.0.6

Vydáno 8. února 2022

Problémy vyřešené v této verzi verze 17.0.6

Vyřešené informační zpravodaje zabezpečení

CVE-2022-21986 Ohrožení zabezpečení spočívající v ohrožení zabezpečení spočívající v odepření služby v .NET 5.0 a .NET 6.0, když webový server Kestrel zpracuje určité požadavky HTTP/2 a HTTP/3


17.0.5 Visual Studio 2022 verze 17.0.5

Vydáno 13. ledna 2022

Problémy vyřešené v této verzi verze 17.0.5

  • Byl vyřešen občasný výskyt, kdy se VSInstr při instrumentaci binárního souboru s nestálými metadaty, což způsobilo selhání profilace instrumentace.
  • Opravili jsme problémy, kdy link.exe občas chybově chybově nebo zablokoval při vytváření PDB spolu s binární.
  • Opravili jsme chybu v C++ Concurrency::p arallel_for_each, která způsobovala chybové ukončení volajícího procesu kvůli přetečení celého čísla.
  • Opravili jsme chybu v porovnání CString atL v režimech C++20 a C++Latest.
  • Opravili jsme chybu při spuštění binárního souboru chfi edu na arm64 a arm64ec při použití velkého počtu sond pogo.
  • Opravili jsme problém, kdy optimalizace velmi velkých funkcí mohla generovat nesprávný kód.

17.0.4 Visual Studio 2022 verze 17.0.4

Vydáno 16. prosince 2021

Problémy vyřešené v této verzi verze 17.0.4

  • Přidá podporu Xcode 13.2.

17.0.3 Visual Studio 2022 verze 17.0.3

Vydáno 14. prosince 2021

Problémy vyřešené v této verzi verze 17.0.3

Vykreslování obousměrných znaků ovládacího prvku textu

Aby se zabránilo potenciálně škodlivému zneužití, které umožňuje nesprávně znázornit kód, editor sady Visual Studio už neumožňuje obousměrným textovým ovládacím znakům manipulovat s pořadím znaků na povrchu pro úpravy. Nová možnost způsobí, že se tyto obousměrné znaky ovládacího prvku textu zobrazí se zástupnými symboly. Obousměrné znaky ovládacího prvku textu budou v kódu stále přítomny, protože toto chování má vliv pouze na to, co se v editoru kódu vykresluje.

VS with bidirectional text control characters replaced with placeholders

Tato funkce je řízena v nástrojích\Možnosti. Na stránce Textový editor\Obecné je k dispozici možnost Zobrazit obousměrné znaky textového ovládacího prvku, které budou ve výchozím nastavení zaškrtnuté. Při zaškrtnutí se všechny obousměrné znaky ovládacího prvku textu vykreslí jako zástupné symboly. Zrušením zaškrtnutí políčka se vrátíte k předchozímu chování, kdy se tyto znaky nevykreslí.

Znak Unicode se považuje za obousměrný znak ovládacího prvku textu, pokud spadá do některé z následujících oblastí: U+061c, U+200e-U+200f, U+202a-U+202e, U+2066-U+2069.

  • Oprava chybového ukončení v Návrháři webových formulářů
  • Opravili jsme problém, kdy dokončování šablon stylů CSS pro !important vkládlo text do nesprávného umístění v souborech HTML nebo Razor.
  • Opravili jsme regresi s Xamarin.Forms XAML Opětovné načítání za provozu v konfliktu s knihovnami, které sdílely podobné závislosti, jako je například SignalR. Xamarin.Forms XAML Opětovné načítání za provozu by teď měl být schopný spolupracovat bez ohledu na to, co je v aplikaci načteno.
  • Opravili jsme problém, kdy stránky přehledu projektu, diagnostické nástroje nebo okna profileru výkonu někdy byly prázdné.
  • Opravili jsme problém v úpravách souborů razor, kdy kurzor někdy přeskakoval do jiného umístění uprostřed psaní.

Od komunity vývojářů

Komunita vývojářů má úplný seznam oprav, které jsou k dispozici ve verzi 17.0.

Vyřešené informační zpravodaje zabezpečení

CVE-2021-43877 .NET Ohrožení zabezpečení z důvodu zvýšení oprávnění v ANCM existuje, což může umožnit zvýšení oprávnění, když jsou aplikace .NET Core, .NET 5 a .NET 6 hostované ve službě IIS.

CVE-2021-42574 Bidirectional Text Vulnerability Bidirectional Text Control characters can be used to cause code to rendered in the editor odlišně od toho, co je obsaženo na disku.


17.0.2 Visual Studio 2022 verze 17.0.2

Vydáno 30. listopadu 2021

Problémy vyřešené v této verzi verze 17.0.2

  • Oprava bezobslužného codegenu s operacemi typu memmove s překrývajícími se daty
  • Přidání zasílání zpráv do výstupního okna , které se zobrazí při použití modulů C++ nebo jednotek hlaviček Obsahuje aktuálně známé problémy s využitím modulů nebo jednotek hlaviček s intelliSense.
  • Oprava potíží se stránkami přehledu CMake a editorem CMake Nastavení se zablokuje při čekání na dokončení inicializace IntelliSense
  • Opravili jsme problém, kdy může být v hierarchii tříd s inicializátory členů dat vytvořena příliš brzy, což může vést k nesprávné diagnostice použití nedefinovaných typů nebo jiných chyb.
  • Přidání Pythonu 3.9.7 do úlohy Pythonu Odebrání Pythonu 3.7.8 kvůli ohrožení zabezpečení
  • Opravili jsme problém, kdy funkce Najít další (F3) a Najít další vybraná (Ctrl+F3) někdy místo dalšího výskytu přeskočila na první výskyt v souboru.
  • Vyřešte problém, kdy data v uživatelských rozhraních správy verzí nerespektovala národní prostředí operačního systému zákazníka.
  • Vyřešte problém ve Windows 11, kdy zákazníci nastavili Terminál Windows jako výchozí a ladicí program nemůže správně zastavit ladění konzolové aplikace a zabránit budoucím spuštěním.

Od komunity vývojářů

Komunita vývojářů má úplný seznam oprav, které jsou k dispozici ve verzi 17.0.


17.0.1 Visual Studio 2022 verze 17.0.1

Vydáno 16. listopadu 2021

Problémy vyřešené v této verzi verze 17.0.1

  • Opravili jsme chybu při použití dávkových sestavení.
  • Opravili jsme chybové ukončení při spouštění projektů Xamarin.Forms s povoleným Opětovné načítání za provozu XAML.

Od komunity vývojářů

Komunita vývojářů má úplný seznam oprav, které jsou k dispozici ve verzi 17.0.

17.0.0 Visual Studio 2022 verze 17.0.0

Vydáno 8. listopadu 2021

Shrnutí novinek v tomto vydání sady Visual Studio 2022 verze 17.0.0

64bitová verze

  • devenv.exe je nyní pouze 64bitová verze

Azure Cloud Services

  • Nové projekty cloudové služby Azure (Classic) se nepodporují, protože jsou v Azure zastaralé pro nové zákazníky. Doporučuje se nahradit projekty cloudové služby Azure (rozšířená podpora).
  • Existující projekty cloudové služby Azure (Classic) je možné otevřít a jsou plně podporované.

C++

  • Nástroje sestavení v143 jsou nyní k dispozici prostřednictvím instalačního programu sady Visual Studio i samostatných nástrojů sestavení.
  • Nové prostředí Opětovné načítání za provozu je nyní k dispozici nativním aplikacím C++ při spuštění v ladicím programu. Podporuje projekty MSBuild i CMake. Další informace najdete v části Opětovné načítání za provozu níže.
  • Nyní můžete nativně sestavovat a ladit ve WSL2 bez navázání připojení SSH. Podporují se projekty CMake pro různé platformy i linuxové projekty založené na MSBuildu.
  • Visual Studio teď podporuje buildPresets.targets možnost v souboru CMakePresets.json. To vám umožní vytvořit podmnožinu cílů v projektu CMake.
  • Nabídka Projekt v projektech CMake byla zjednodušená a zpřístupňuje možnosti pro odstranění mezipaměti a rekonfigurování a zobrazení mezipaměti.
  • Stránky přehledu CMake byly aktualizovány tak, aby podporovaly CMakePresets.json.
  • Implementovaný /scanDependencies příznak pro výstup závislostí modulů C++20 pro projekty CMake, jak je popsáno v P1689r4. Toto je krok k podpoře vytváření projektů založených na modulech pomocí CMake a pracujeme na dokončení této podpory v pozdějších verzích.
  • Teď můžete ladit procesy spuštěné ve vzdálených systémech ze sady Visual Studio pomocí LLDB.
  • Upgradovali jsme verzi CMake dodávaná se sadou Visual Studio na verzi 3.21. Podrobnosti o tom, co je k dispozici, najdete v poznámkách k verzi CMake 3.21.
  • Nástroje LLVM dodávané se sadou Visual Studio byly upgradovány na LLVM 12. Podrobnosti najdete v poznámkách k verzi LLVM.
  • Sada nástrojů MSVC teď ve výchozím nastavení v záznamech ladění nastaví hodnotu hash zdroje SHA-256. Sada nástrojů dříve používala MD5 pro vytváření zdrojových hodnot hash ve výchozím nastavení.
  • Vývoj her s úlohou C++ teď nainstaluje nejnovější Unreal Engine s podporou sady Visual Studio 2022.
  • Vylepšili jsme IntelliSense jazyka C++ při poskytování navigace a zvýrazňování syntaxe pro typy z importovaných modulů a jednotek hlaviček.
  • Vylepšili jsme výkon technologie IntelliSense C++ optimalizací přístupu k databázi symbolů a využití hlaviček v mezipaměti, čímž se zlepšila doba načítání pro přístup do kódu.
  • Technologie IntelliSense Code Linter pro C++ je teď ve výchozím nastavení zapnutá a poskytuje okamžité návrhy při psaní a opravuje návrhy běžných vad kódu.
  • Podpora pro libfuzzer pod přepínačem -fsanitize=fuzzer. Další podrobnosti najdete v dokumentaci.
  • Vylepšili jsme detekci dereference ukazatele null v nástrojích pro analýzu kódu.
  • Analýza kódu teď vynucuje, aby se vracely hodnoty funkcí anotovaných _Check_return_ nebo _Must_inspect_result_ se musí kontrolovat.
  • Přidání podpory pro gsl::not_null analýzu kódu
  • Aktualizace na NDK r21 LTS v úloze vývoje mobilních aplikací C++.
  • Záhlaví C++ AMP jsou teď zastaralá. Zahrnutí <amp.h> do projektu C++ vygeneruje chyby sestavení. Chcete-li umlčet chyby, definujte _SILENCE_AMP_DEPRECATION_WARNINGS. Další podrobnosti najdete na našich odkazech pro vyřazení AMP.

Ladění a diagnostika

  • Vylepšení dialogového okna Připojit k procesu
  • Vylepšení pomocných rutin výjimek
  • Vynucení kliknutí na tlačítko Spustit
  • Analýza diagnostiky výpisu paměti
  • Vydali jsme nový typ zarážky s názvem Závislá zarážka, která umožňuje nakonfigurovat zarážku tak, aby byla povolena pouze v případě, že se poprvé dosáhne jiné zarážky.
  • Přidali jsme další aktualizace uzlu Extrenal Sources , nyní můžete zobrazit modul pod dílčím uzlem Moduly bez zdrojů a načíst symboly formuláře průzkumník řešení sám.
  • Vylepšení zarážky hřbetu
  • Dočasná zarážka
  • Přetažení zarážky
  • Uzel externích zdrojů v Průzkumník řešení
  • Vylepšení dialogového okna Připojit k procesu

Přizpůsobení

  • Přidání barevných karet pro svislé a vodorovné karty
  • Přidání sady Motiv a práce s autory motivu VS Code ke spuštění kolekce vlastních motivů
  • Vytvořený převaděč motivů pro převod motivů VS Code tak, aby fungoval v sadě Visual Studio 2022
  • Přidání možnosti synchronizace motivu sady Visual Studio s motivem Windows
  • Přidali jsme nové možnosti správy dokumentů, včetně přizpůsobení šířky karet, tučného aktivního dokumentu a dalšího tlačítka zavřít v docwellu.

Editor

  • Přidání navigace podmnožinou
  • Automatické ukládání je teď k dispozici jako funkce Preview.
  • Prostředí kopírování a vkládání s více stříškovou stříšku

Rozšiřitelnost

  • Odebrání rozhraní API ze sestavení Microsoft.VisualStudio.Language.Client
  • Sada VS SDK obsahuje několik zásadních změn a rozšíření sady Visual Studio 2019 nebudou v roce 2022 fungovat. Další informace najdete v dokumentaci k VSSDK.
  • Referenční sestavení sady VS SDK už nejsou nainstalovaná do VSSDK\VisualStudioIntegration\Common\Assemblies složky. Pokud sestavení spoléhalo na tato sestavení, proveďte migraci projektu tak, aby místo toho používal balíčky NuGet. Pro offline scénáře:
    1. Uchovávejte informační kanál NuGet v organizaci, ze kterého se mají balíčky NuGet obnovit.
    2. Vrácení binárních souborů se změnami
  • Přidání oprav zásadních změn ILanguageClient

Cloud Services

  • Azurite se použije pro místní emulaci služby Azure Storage místo starších a už aktivně nevyvíjených emulátorů úložiště Azure.

Nástroje Git

Nabídka Nápověda

  • Během 17.0 jsme přemodelovali nabídku nápovědy s materiálem Začínáme a užitečnými Tipy/triky.
  • Poskytuje další spolupráci s naším vývojovým týmem přidáním informací, jako je přístup ke komunitě vývojářů, poznámky k verzi, roadmapa produktu Visual Studio a stránky sociálních médií.

prostředí Opětovné načítání za provozu

  • Opětovné načítání za provozu je nyní k dispozici vývojářům v .NET prostřednictvím ladicího programu sady Visual Studio a bez ladicího programu pro mnoho typů aplikací .NET 6.
  • Opětovné načítání za provozu je nyní k dispozici vývojářům jazyka C++ při použití ladicího programu sady Visual Studio.

Další podrobnosti najdete na výše uvedeném odkazu.

IntelliCode

  • Kdo předpovědět další blok kódu jazyka C# na základě aktuálního kontextu a představuje ho jako vložený návrh napravo od kurzoru.
  • Kdo dokončení řádků jsou teď kompatibilní s nejnovějšími buildy JetBrains ReSharper. Upozorňujeme, že aktualizace kontextu dokončení řádku na základě vlastního výběru položky seznamu dokončení ReSharpers není podporována – v případě potřeby se uživatelé ReSharperu můžou rozhodnout používat místo toho nativní IntelliSense sady Visual Studio, jak je uvedeno tady.

JavaScript/TypeScript

  • Vydali jsme nový typ projektu JavaScript/TypeScript, který sestavuje samostatné projekty JavaScript/TypeScript s dalšími nástroji. V sadě Visual Studio budete moct vytvářet projekty Angular a React pomocí verze architektury nainstalované na vašem počítači.
  • Testování JavaScriptu a TypeScriptu je nyní k dispozici v Průzkumníku testů sady Visual Studio.
  • K dispozici grafické uživatelské rozhraní NPM, takže si teď můžete stáhnout moduly NPM stejným způsobem, jakým stahujete balíčky NuGet.

Sada .NET 6 SDK

  • Sada .NET 6 SDK je součástí sady Visual Studio 2022.

Produktivita platformy .NET

  • Zavedení refaktoringu parametrů může přesunout nový parametr z implementace metody do svých volajících.
  • Sledování zdroje hodnot pro analýzu toku dat
  • Možnost podtržení proměnných, které jsou znovu přiřazeny
  • Přidání možnosti hledání v dialogovém okně Generovat přepsání
  • Rychlé informace o značkách kódu> XML <teď zachovávají prázdné znaky a bloky CDATA.
  • Okno Najít všechny odkazy teď seskupí projekty s více cíli.
  • Refaktoring pro odebrání opakujících se typů v jazyce Visual Basic
  • Přechod na implementaci už nebude přecházet na členy s abstraktními deklaracemi, které jsou také přepsány.
  • Synchronizace oborů názvů tak, aby odpovídaly struktuře složek z Průzkumník řešení
  • Konfigurace analýzy kódu na pozadí z Průzkumník řešení
  • Pro nové projekty .NET je teď ve výchozím nastavení povoleny odkazové typy s možnou hodnotou Null.
  • Refaktoring oboru názvů s oborem souborů c# 10.0
  • Ve výchozím nastavení je teď zapnutý přechod na dekompilované zdroje.
  • Refaktoring pro preferování kontroly typu před kontrolou typu
  • Komentáře XML teď automaticky vygenerují <exception> značku, když metoda explicitně vyvolá výjimky.
  • Okraj dědičnosti je teď ve výchozím nastavení povolený.

Programovací jazyky

  • C#10

Razor (ASP.NET Core) Editor

  • Omezené uživatelské rozhraní se zablokuje a zlepší výkon při spuštění řešení.
  • Rychlejší sémantické zabarvení až 2x v některých řešeních
  • Podpora F7 (zobrazení kódu) v souborech Razor
  • Podpora fragmentů kódu v souborech razor, která dokončí relaci fragmentu kódu s jednou tabulátorem místo stisknutí tabulátoru
  • Lepší formátování v blocích, @code když jsou vnořené komponenty HTML a Razor
  • podpora Opětovné načítání za provozu v souborech Razor
  • Zlepšení výkonu
  • Vylepšení formátování a odsazení
  • Nové barvy editoru Razor
  • TagHelpers jsou teď barevné a mají rychlou podporu klasifikace informací a popisy pro dokončování.
  • Zvýraznění závorek úhlu a navigace u konstruktorů Razor
  • Komentáře teď mají automatické dokončování, inteligentní odsazení, automatické zahrnutí pokračování komentářů a blokování navigace v komentářích.

Vzdálené testování

  • Velmi raná experimentální verze Preview povolení spouštění testů ve vzdálených prostředích, jako jsou kontejnery Linuxu, WSL a připojení SSH.

Podpora testovacích nástrojů

  • Zobrazit v Průzkumníku testů
  • Nové verze testovací platformy počínaje verzí 17.0 nebudou moct spouštět obecné testy a seřazené testy. Tyto konkrétní funkce jsou dodávány pouze jako součást dřívější verze MSTestv1 a nejsou součástí MSTestv2. Vidíme, že velmi nízké využití těchto funkcí a seřazených testů se nyní považuje za v rozporu s osvědčenými postupy testování.
  • Některé testovací prostředí nebudou k dispozici ve verzi 17.0, včetně vytváření nových souborů Test Nastavení a editoru Test Nastavení. Testovací běhy budou moct dál používat soubory Test Nastavení, ale test Nastavení byl nahrazen funkcí Spustit Nastavení a doporučujeme uživatelům migrovat vyšší výkon a funkčnost. Další informace.
  • Aktualizace podpory zátěžového testu webového zatížení a programového testu uživatelského rozhraní Programové testy uživatelského rozhraní a [webové zátěžové testy](Konec životnosti cloudové služby zátěžového testování | Blog Azure DevOps (microsoft.com) byl oficiálně vyřazen v roce 2019. Aby se minimalizoval dopad na uživatele, existuje minimální podpora těchto funkcí v sadě Visual Studio 2022. Důrazně doporučujeme uživatelům přejít z programového testu uživatelského rozhraní a webového zátěžového testu.

Sada nástrojů pro sady SDK rozšíření UPW

  • Sady SDK rozšíření UPW jsou teď nutné explicitně deklarovat typy, které chtějí zobrazit v sadě nástrojů, tak, že je zobrazí v souboru SdkManifest.xml. Chování starších verzí sady Visual Studio se nemění; budou ignorovat seznam ovládacích prvků v manifestu a místo toho dynamicky vyčíslit typy ovládacích prvků v sestaveních sady SDK.

Důvěryhodná umístění

  • Přepracovali jsme funkci "Důvěřovat Nastavení" a teď můžeme zobrazit upozornění, když se v integrovaném vývojovém prostředí chystá otevřít nedůvěryhodný kód (např. soubory, projekty nebo složky).
  • Kontroly důvěryhodnosti se teď provádějí na úrovni složky řešení.
  • Projekty vytvořené uživatelem se automaticky přidají do důvěryhodného seznamu.
  • Uživatelé můžou přeskočit kontroly důvěryhodnosti v dočasných umístěních vytvořených sadou Visual Studio.

Aktualizace, LTSC a nasazení

  • V sadě Visual Studio 2022 bude k dispozici více simultánně podporovaných servisních směrných plánů, které se uvolní na podzim a na jaře. Další podrobnosti najdete v dokumentaci k rytmu vydávání verzí sady Visual Studio a životnímu cyklu produktu Visual Studio 2022.
  • Nový instalační program, který je součástí sady Visual Studio 2022, má nyní možnost konfigurovat, odkud má produkt Visual Studio získávat aktualizace. To vám umožní zvolit aktualizace z jiné verze LTSC, nebo pokud jste ve spravovaném podnikovém prostředí, můžete klienta nakonfigurovat tak, aby získal aktualizace z rozložení. Možnost konfigurovat zdroj aktualizací je nová funkce, která je součástí Instalační program pro Visual Studio, a proto chování platí i pro nižší verze sady Visual Studio, například Visual Studio 2019. Další informace o konfiguraci aktualizačního kanálu najdete v dokumentaci k sadě Visual Studio . Další informace o tom, jak tuto práci provést pro rozložení sítě, najdete v průvodci Správa istrátory sady Visual Studio.
  • IT Správa istrátory teď můžou hlásit problémy bez instalace sady Visual Studio.

Uživatelské rozhraní

  • Výchozí ikony byly aktualizovány a aktualizovány.

Webové nástroje

  • Stránka souhrnu publikování teď obsahuje akce ke spuštění nebo zastavení vzdáleného ladění a profilace v části .... menu on the top right corner of the 'Hosting' section
  • Stránka Připojení ed Services (Služby) má nyní akci ke spuštění Průzkumník služby Storage
  • Šablona ASP.NET Core Empty, která je součástí .NET 6, používá nové paradigma minimálních rozhraní API, pro které jsme začali přidávat podporu.
  • Azurite se použije pro místní emulaci služby Azure Storage místo starších a už aktivně nevyvíjených emulátorů úložiště Azure.
  • Ověřování můžete do aplikace ASP.NET Core přidat pomocí platformy Microsoft Identity Platform prostřednictvím prostředí Připojení ed Services v sadě Visual Studio.

Návrhář WPF XAML pro rozhraní .NET Framework

  • Aktuální návrhář WPF XAML pro .NET Framework je nahrazen novým návrhářem WPF XAML pro rozhraní .NET Framework na základě stejné architektury, která se používá pro Návrhář WPF XAML pro .NET (.NET Core). Prostředí sady Visual Studio bude vypadat stejně, ale dodavatelé ovládacích prvků třetích stran musí podporovat nový model rozšiřitelnosti, protože předchozí model založený na .design.dll a Microsoft.Windows.Design.Extensibility je zastaralý. Pokud jste už vytvořili .designtools.dll rozšíření pro .NET (.NET Core), bude stejné rozšíření fungovat pro nový návrhář WPF XAML pro .NET Framework. Další informace o migraci na nový model rozšiřitelnosti najdete v následujícím dokumentu migrace.

Opětovné načítání XAML za provozu

  • Změny Opětovné načítání za provozu XAML – Menší změny panelu nástrojů a nastavení v aplikaci

Dynamický náhled XAML

  • Xaml Live Preview je teď k dispozici pro vývojáře WPF, UPW, WinUI a Xamarin.Forms, kteří používají své aplikace v emulátoru Androidu nebo jako desktopovou aplikaci PRO UPW. Live Preview zachycuje uživatelské rozhraní spuštěných aplikací a přenese ho do ukotveného okna v sadě Visual Studio. To usnadňuje použití xaml Opětovné načítání za provozu ke změně aplikace při zobrazení těchto změn v samotném sadě Visual Studio, aniž by bylo nutné mezi spuštěnou aplikací a sadou Visual Studio při provádění živých změn kódu XAML přecházet zpět a zpět.

Další informace potřebujete kliknutím na výše uvedený odkaz.

Ukázková data XAML

  • Při vytváření ovládacích prvků DataGrid, ListBox a ListView z panelu nástrojů v aplikacích WPF se teď ve výchozím nastavení přidají ukázková data návrhu. Pokud chcete toto chování zakázat, zrušte zaškrtnutí políčka Automaticky přidat ukázková data při vytváření elementů v části Nástroje – Možnosti –>> Návrhář XAML.
  • Další informace o ukázkových datech najdete v dokumentaci k ukázkovým datům.

Vylepšené prostředí vazeb XAML

  • Provedli jsme řadu vylepšení, která umožňují rychlou a jednoduchou datovou vazbu, například rychlý přístup k dialogu Datové vazby z inspektoru vlastností, možnost nastavit vazbu z rychlých akcí, možnost zvolit vlastnost, která se má svázat v dialogovém okně Datové vazby.

Další informace potřebujete kliknutím na výše uvedený odkaz.

Známé problémy

Vývoj mobilních aplikací s využitím .NET

Nástroje Pythonu

C++ IntelliSense

Podrobnosti o novinkách v této verzi sady Visual Studio 2022 verze 17.0.0

Ladění a diagnostika

  • Vylepšení dialogového okna Připojit k procesu
  • Zobrazení seznamu nového nadřazeného nebo podřízeného procesu prostřednictvím přepínače v dolní části okna
    • Výběr zobrazení by měl být zachován.
    • Levá klávesová zkratka na klávesnici přejde do nadřazeného procesu v zobrazení nadřazeného/podřízeného objektu.
    • Všechny sloupce by měly být seřazené jako původní zobrazení.
  • Sloupec Nový příkazový řádek je k dispozici v obou zobrazeních.
  • Název fondu aplikací se zobrazuje ve sloupci Název pro procesy w3wp.

! [Připojit ke zpracování] (media/17.0/17.0_P2_attach_to _process_3.png)

  • Přidání pomocné rutiny výjimky v bloku catch Zobrazí se pomocná rutina výjimky s příslušnými informacemi o výjimce, když spravovaný krok způsobí vyvolání výjimky a krok se dokončí v bloku catch.
  • Nové tlačítko Pokračovat: zobrazuje pomocnou rutinu výjimky u výjimek zachycených.

Exception Handler Updates

  • Přidali jsme možnost vynutit spuštění kliknutím, která spustí ladicí program, dokud se nedosáhne vybrané pozice kurzoru a současně ignoruje všechny zarážky mezi.
  • Můžete to provést kliknutím na Vynutit spuštění kliknutím na kliknutí pravým tlačítkem myši na požadovaný řádek kódu.

Force Run to Cursor

  • Když je aplikace v režimu ladění, můžete také spustit "Force Run to Click" (Vynutit spuštění kliknutím) kliknutím na zelený glyf, který se zobrazí vedle řádku kódu, když myš najede myší a podrží klávesu SHIFT.

Force Run to Cursor Glyph

  • Analýza diagnostiky výpisu paměti
    • Vylepšili jsme modul analyzátoru, abychom zjistili další problémy s asynchronní synchronizací v ASP.NET výpisech paměti core.
    • Zjistěte, jaké části kódu využívají nejvíce prostředků procesoru, a to kontrolou prvních 5 vláken podle času procesoru.
    • Zkontrolujte celou spravovanou haldu a zkontrolujte známky tlaku paměti v generaci 0, 1, 2 a haldě velkého objektu.
    • Pokud máte výpis stavu systému, můžete najít druhou náhodnou výjimku a vlákno, které způsobilo chybové ukončení aplikace.
    • Nedaří se vytvořit diagnostickou hypotézu? Pokud přesná příčina chybového ukončení nebo zablokování není dobře známá, můžete pomocí analyzátoru výjimek rychle najít a zkontrolovat všechny výjimky v haldě.
    • V těchto momentech, kdy je analýza paměti důležitá, jsme vylepšili heuristiku analyzátoru front finalizátoru. Teď se zaměříme na váš kód a vyloučíme objekty spravované rozhraním .NET Framework.

Závislá zarážka

Jedná se o novou zarážku, která uživateli umožňuje nakonfigurovat zarážku tak, aby byla povolena pouze v případě, že se poprvé dosáhne jiné zarážky. Při ladění ladicí program sady Visual Studio pozastaví aplikaci pouze na závislé zarážce, pokud dojde k dosažení požadované zarážky. Libovolnou zarážku můžete převést na závislá zarážku tak, že v okně nastavení zaškrtnete políčko Povolit pouze při použití následující zarážky a vyberete požadovanou zarážku z rozevíracího seznamu, na kterém chcete nakonfigurovat závislý zarážku.

Dependent Breakpoint

Vylepšení zarážky hřbetu

Přidali jsme nový glyf zarážky, který označuje umístění, kde může uživatel nastavit zarážku.

Breakpoint Glyph

Kliknutím pravým tlačítkem myši na tento glyf zarážky získáte novou místní nabídku s možnostmi; což poskytuje rychlý způsob, jak vytvořit pokročilé zarážky (podmíněná zarážka, tracepoint a dočasná zarážka) méně kliknutí.

Breakpoint Context Menu

Dočasná zarážka

Jedná se o novou zarážku, která uživateli umožňuje kód přerušit pouze jednou. Při ladění ladicí program sady Visual Studio pozastaví modul runtime aplikace pouze jednou pro tuto zarážku a odebere ho okamžitě po dosažení. Libovolnou zarážku můžete převést na dočasnou zarážku tak, že v okně nastavení zaškrtnete políčko Odebrat zarážku. Případně můžete použít novou místní nabídku kliknutí pravým tlačítkem myši ze zarážky k nastavení této zarážky.

Temporary Breakpoint

Přetažení zarážky

Přidali jsme gesto přetažení pro zarážky. Teď můžete zarážku uložit a uvolnit na požadovaném řádku kódu a přesunout zarážku z jednoho umístění do jiného. Funguje pro naši pokročilou zarážku, pokud jsou akce nebo proměnné podmínky v kontextu.

Drag and Drop Breakpoint

Uzel externích zdrojů v Průzkumník řešení

V Průzkumníku řešení jsme přidali nový uzel Externí zdroje. Zobrazí se pouze při ladění a zobrazí se zdroje pro spravované moduly se symboly načtenými, které obsahují informace o zdrojovém serveru nebo odkazu na zdroj. Při ladění se pod tímto uzlem zobrazí všechny načtené soubory spravovaných symbolů (PDB), které obsahují informace o zdrojovém serveru. Můžete vyhledat soubory jako jakoukoli jinou složku průzkumníka řešení nebo poklikáním na položku soubor stáhnout ze zdrojového serveru a otevřít ho v editoru VS. External Sources node in Solution explorer

Vylepšení dialogového okna Připojit k procesu

Do dialogového okna Připojit k procesu jsme přidali nové zaškrtávací políčko automatické aktualizace, které při kontrole aktualizuje seznam procesů automaticky s dostupnými procesy. Nová možnost Vybrat libovolné okno z plochy z dialogového okna Připojit k procesu umožňuje uživateli vybrat jakékoli spuštěné okno z plochy a připojit se k příslušnému procesu ladění.

Attach to process Dialog Improvements

Analýza diagnostiky výpisu paměti

Nalezení rámců kořenového volání v případě, že dojde k výjimce Stack Overflow, může být obtížné a časově náročné. Naše nejnovější analyzátory představují pohodlný pohled na zásobník volání a odeberou repetititivní a hlučné rámce pro rychlejší analýzu problémů.

Přizpůsobení

Převod motivů VS Code na motivy sady Visual Studio

Vytvořili jsme nástroj Pro převaděč motivů, který dokáže převést motivy editoru VS Code tak, aby fungovaly v sadě Visual Studio. Zkuste to tady.

Nová sada motivů sady Visual Studio

Výchozí motivy VS Code jsou teď k dispozici jako sada Visual Studio Theme Pack. Podívejte se na balíček motivu.

Synchronizovat motiv s operačním systémem Windows

Přidali jsme možnost synchronizovat motiv sady Visual Studio s motivem Windows, aby se motiv mohl upravit na základě dostupného množství okolního světla. Pokud to chcete povolit, přejděte do části Nástroje > Použít > systémové nastavení.

Barevné karty

Pokud chcete povolit barevné karty, přejděte na karty Možnosti > nástrojů > a okna a povolte zabarvení karet.

Color tabs

Editor

Navigace podmnožinou

Kombinace kláves Ctrl+Alt+Šipka vlevo a Ctrl+Alt+Šipka vpravo teď přecházela podmnožinou. Například řetězec "HelloWorld" identifikuje "Hello" a "World" jako subwords. Povolení navigace v podwordu v Editoru > možností > nástroje > Obecné způsobí, že příkazy související s slovem (např. TranspoziceWord) budou interagovat s podwordy.

Autosave

V části Nástroje > Možnosti > prostředí > ve verzi Preview funkce je nyní k dispozici automatické ukládání. Pokud je tato možnost povolená, ztratí-li aplikace Sady Visual Studio fokus (např. jiné okno se fokus), uloží se všechny špinavé dokumenty na disk, pokud je to možné. Pokud některý soubor nelze uložit, zůstane nezašpiněný, dokud ho uživatel explicitně neuloží (pomocí příkazů Uložit nebo Uložit jako...).

Prostředí kopírování/vložení s více stříškovou stříšku

Vylepšili jsme prostředí pro kopírování a vkládání s více stříškovou stříšku. Vložením více řádků do více karet dříve vzniklo duplikování celé schránky v každé stříšce. Teď vložením více řádků do stejného počtu karet vložíte každý řádek do příslušné stříšky. Pokud chcete použít více kurzorů, stiskněte Alt+Shift+kliknutí myší nebo Alt+Shift+. Výběr rozbalíte pomocí kombinace kláves Ctrl+Shift+šipka . Potom stisknutím kombinace kláves Ctrl+C zkopírujte text ve více výběrech. Pomocí kombinace kláves Alt+Shift+kliknutí myší můžete vytvořit více karet pro každý řádek, který chcete vložit do požadovaných umístění. Nakonec stisknutím kombinace kláves Ctrl+V vložte každý řádek na vlastní stříšku.

Multi-caret copy and paste

Kromě toho můžete použít kombinaci kláves Alt+Shift+šipka nahoru nebo šipka dolů nebo alt+Shift+myš a vybrat více kartů. Dříve tato gesta vytvořila výběr pole. Výběr pole se teď transformuje na více karet. Tato metoda je jednodušší a rychlejší než kliknout na přesná místa pro vložení jednotlivých kartů. Pokud chcete, aby se při rozbalení výběru více kurzorů používal výběr políček, přejděte na >>Rozšířené možnosti textového editoru > Alt+Shift+šipka a vyberte Použít pole.

Multi-caret box selection option

Rozšiřitelnost

Microsoft.VisualStudio.LanguageServer.Client představuje nový způsob přizpůsobení oznámení, když se jazykovému klientovi nepodaří inicializovat.

Inicializační úkol bude nyní sledován centrem stavu úkolů (TSC). Pokud se úloha inicializace nezdaří, uživatelé můžou přejít na TSC získat další informace o tom, co se nepovedlo. Jazykoví klienti teď budou moct přizpůsobit zprávu zobrazenou uživateli s informacemi o tom, co tato chyba představuje, a možné akce, které je potřeba provést k jeho opravě. Abychom to mohli udělat, představujeme novou sadu rozhraní API v rozhraní ILanguageClient. Tato nová rozhraní API by způsobila zásadní změnu v rozhraní ILanguageClient, takže rozšíření jazyků budou muset odkazovat na nový balíček, aby fungovala v sadě Visual Studio 2022.

Toto jsou nová rozhraní API:

  1. ShowNotificationOnInitializeFailed – Logická vlastnost , která určuje, jestli má server jazyka zobrazit bublinu, která uživatele upozorní na selhání, například takto:

ShowNotificationOnInitializeFailed in the Task Status Center

Doporučujeme nastavit tuto vlastnost na true pouze v případě, že selhání výrazně ovlivňuje uživatelské prostředí pro projekt, na který aktuálně pracuje.

  1. Metoda OnServerInitializedFailedAsync – Tato metoda se vyvolá při selhání inicializace klienta jazyka. Poskytneme objekt LanguageClientInitializationInfoBase s informacemi o tom, jak k chybě došlo, aby klient jazyka mohl uživatele o selhání informovat vlastním způsobem nebo poskytnout přizpůsobenou zprávu s kontextem selhání. Pokud je zpráva zadaná, zobrazí se v okně Výstup v sadě Visual Studio.

Language client initialization error in the Output Window

JavaScript/TypeScript

Nyní je k dispozici podpora pro nový typ projektu JavaScript/TypeScript, který umožňuje vytvářet samostatné projekty Angular, React a Vue v sadě Visual Studio. Projekty se vytvoří pomocí nástrojů rozhraní příkazového řádku, které jste nainstalovali na místní počítač. To také znamená, že verze šablony je založená na verzích cli, které máte na místním počítači.

V rámci těchto nových projektů budete moct spouštět testy jednotek a integrovat je s projekty ASP.NET Core API. Dokumentaci najdete tady.

  • Vydali jsme nový typ projektu JavaScript/TypeScript, který sestavuje samostatné projekty JavaScript/TypeScript s dalšími nástroji. Další informace najdete tady.
  • K dispozici je grafické uživatelské rozhraní NPM, takže si teď můžete stáhnout moduly NPM stejným způsobem jako balíčky NuGet v nových projektech JavaScript/TypeScript.

NPM GUINPM GUI2

prostředí Opětovné načítání za provozu pro vývojáře v .NET & C++

Dříve v tomto roce jsme oznámili Opětovné načítání za provozu .NET, ambiciózní projekt, který Opětovné načítání za provozu co nejvíce vývojářům .NET. Začali jsme na této cestě s první verzí Preview dostupnou v sadě Visual Studio 2019 a slíbili jsme, že v sadě Visual Studio 2022 bude k dispozici mnohem více. Dnes s radostí sdílím podrobnosti o tom, co jsme dokončili ve verzi GA sady Visual Studio 2022.

Pro každého, kdo Opětovné načítání za provozu, je zde rychlý úvod. Prostředí Opětovné načítání za provozu v sadě Visual Studio funguje pro spravované aplikace .NET i nativní aplikace jazyka C++. Bez ohledu na typ aplikace, na které pracujete, je naším cílem Opětovné načítání za provozu ušetřit tolik restartování aplikací mezi úpravami, což vám umožní zvýšit produktivitu tím, že zkracuje dobu strávenou čekáním na opětovné sestavení, restartování aplikací, opětovným přechodem na předchozí místo, kde jste byli v samotné aplikaci atd.

Toho dosáhneme tím, že vám umožníte upravovat soubory kódu aplikací a tyto změny kódu použít okamžitě u spuštěné aplikace, označované také jako "Opětovné načítání za provozu". Jakmile se tyto změny použijí, jednoduše znovu spusťte kód tak, že provedete akci v samotné aplikaci (nebo prostřednictvím nějakého časovače atd.) a okamžitě uvidíte změny bez pozastavení aplikace přes zarážky.

Pokud chcete zobrazit některé živé ukázky této funkce, můžete se podívat na jedno z těchto videí:

Opětovné načítání za provozu uživatelské prostředí v sadě Visual Studio

Prostředí Opětovné načítání za provozu pro vývojáře v .NET i C++ v sadě Visual Studio 2022 také prošlo velkými vylepšeními. Panel nástrojů teď má cílovou implementaci tlačítka "Opětovné načítání za provozu" s vylepšeným vzhledem a dalšími funkcemi.

První věc, kterou si všimnete, je nové tlačítko s rozevíracím seznamem s novou ikonou. Příkaz se přejmenuje z možnosti Použít změny kódu (z dřívějších verzí Preview) na Opětovné načítání za provozu.

Hot Reload User Experience in Visual Studio 2022

Rozbalením tlačítek se zobrazí rychlý přístup k funkcím, jako je restartování spuštěných aplikací, přepínač výslovného souhlasu pro Opětovné načítání za provozu při uložení a rychlý přístup k novému panelu nastavení.

Tady jsou další podrobnosti o jednotlivých nových funkcích:

  • Snadné restartování aplikací: Nyní můžete snadno restartovat spuštěnou aplikaci, pokud je potřeba použít hrubou úpravu prostřednictvím opětovného sestavení bez ohledu na to, jestli jste aplikaci spustili pomocí ladicího programu, nebo pokud jste ji spustili bez ladicího programu (NOVÉ pro aplikace .NET 6!).
  • Opětovné načítání za provozu při uložení: Ve starších verzích Preview můžete použít pouze Opětovné načítání za provozu změny při uložení v ASP.NET projektech, a to pro každý druhý projekt, který jste museli explicitně kliknout na tlačítko Opětovné načítání za provozu. V konečné verzi je nyní možné Opětovné načítání za provozu pomocí klíče pro uložení pro libovolný typ projektu. Tato možnost je výslovný souhlas, ale jakmile ji povolíte, bude platit pro všechny budoucí relace sady Visual Studio, pokud ji nevypnete.
  • Snadný Nastavení Access: Přidali jsme panel možností Opětovné načítání za provozu, který vám poskytne větší kontrolu nad tím, kdy je Opětovné načítání za provozu povolený/zakázaný. K těmto nastavením se můžete dostat v sadě Visual Studio "Možnosti > .NET / C++ Opětovné načítání za provozu" nebo prostřednictvím rozevírací nabídky Opětovné načítání za provozu tlačítek kliknutím na Nastavení.

Přidali jsme také vylepšené dialogové okno pro úpravy, které je k dispozici při spuštění aplikace .NET bez ladicího programu.

New Rude Edit dialog for Hot Reload in Visual Studio 2022

Toto nové dialogové okno obsahuje několik vylepšení, například:

  • Možnost výslovného souhlasu relace sady Visual Studio pro opětovné sestavení a použití změn v každé Opětovné načítání za provozu hrubých úprav. Po zaškrtnutí se to týká všech budoucích hrubých úprav, dokud se sada Visual Studio nerestartuje.
  • Opětovné sestavení a použití příkazu změny kódu, který lze provést jediným kliknutím, místo několika ručních kroků
  • A snadný přístup k nastavení

Dialogové okno také umožňuje pokračovat v úpravách, pokud nechcete provádět žádnou automatizovanou akci, jak bylo dříve možné.

Existuje jedno známé omezení, toto nové dialogové okno nebude dostupné ve verzi GA při použití ladicího programu, ale práce, která ji v tomto scénáři zpřístupní, se dokončí v budoucí aktualizaci.

Podpora aplikací C++

Při použití sady Visual Studio 2022 a spuštění aplikace pomocí ladicího programu je teď možné Opětovné načítání za provozu nativní aplikaci C++ při spuštění pod ladicím programem (F5) pomocí tlačítka Opětovné načítání za provozu. Opětovné načítání za provozu se podporuje také pro aplikace vytvořené pomocí projektů CMake a OpenFolder.

Toto prostředí využívá nativní funkce Upravit a Pokračovat. Podporované úpravy najdete v naší dokumentaci.

Podporované architektury aplikací .NET a scénáře

Vzhledem k tomu, že jsme oznámili, Opětovné načítání za provozu zpět v květnu 2021, velmi běžná otázka od vývojářů .NET byla "bude Opětovné načítání za provozu pracovat s architekturou aplikací .NET nebo kombinací verzí?". Ve většině situací jsme udělali obrovský pokrok v tom, aby odpověď ANO, zde jsou hlavní body.

  • Při použití sady Visual Studio 2022 a spuštění aplikace pomocí ladicího programu funguje základní Opětovné načítání za provozu prostředí pro většinu typů aplikací a rozhraní .NET, to zahrnuje .NET Framework, .NET Core a .NET 5+ (pro jazyk C# i VB.NET podle potřeby). Mezi podporované typy aplikací patří web (změny kódu), desktopové, mobilní, cloudové a jiné typy projektů. Tady je klíčové pravidlo, pokud používáte ladicí program, který předpokládá, že Opětovné načítání za provozu je pro vás k dispozici, a zkuste to!
  • Při použití sady Visual Studio 2022, ale ne při použití ladicího programu (například spuštění aplikace pomocí CTRL-F5 Opětovné načítání za provozu) je nyní k dispozici i bez ladicího programu při cílení na většinu typů aplikací .NET 6. To znamená, že aplikace, které cílí na .NET 6 (.NET 5 nebo novější), nebudou podporovat scénář žádného ladicího programu a musí k získání podpory Opětovné načítání za provozu použít ladicí program.
  • Při použití sady Visual Studio 2022 s aplikací .NET 6 se podporuje většina scénářů. Toto není omezeno na výše uvedenou novou funkci "žádný ladicí program". Zahrnuje také další nové funkce, jako je podpora Opětovné načítání za provozu projektů Blazor a obecnější úpravy souborů Razor v jakýchkoli aplikacích ASP.NET Core a Opětovné načítání za provozu CSS. Použití sady Visual Studio 2022 i aplikací, které cílí na .NET 6 společně, vám poskytne nejvýkonnější Opětovné načítání za provozu prostředí a doufáme, že to vyzkoušíte.

Níže rozbalíme výše uvedený souhrn a podíváme se na další podrobnosti.

Visual Studio 2022 s aplikací .NET při použití ladicího programu

Při použití sady Visual Studio 2022 a spuštění aplikace pomocí ladicího programu Opětovné načítání za provozu funguje s většinou architektur aplikací, včetně typických typů aplikací, jako jsou konzola, model Windows Forms (WinForms), WPF, UPW, WinUI 3* a většina typů webových projektů ASP.NET (pro úpravy kódu) včetně ASP.NET MVC, webového rozhraní API a dokonce i starších projektů Webových formulářů. Tento seznam je také příkladem. Skutečná odpověď je kdekoli, kde máte .NET a používáte ladicí program spravovaného sadou Visual Studio, měli byste získat základní podporu Opětovné načítání za provozu.

To znamená, že i projekty, jako je Azure Functions, budou v tomto scénáři fungovat skvěle. Doporučujeme, abyste si vyzkoušeli kombinaci a dejte nám vědět, jestli narazíte na nějaké problémy.

*WinUI 3 ve výchozím nastavení používá ladění smíšeného režimu, které nepodporuje Opětovné načítání za provozu. Toto nastavení můžete upravit v nastavení projektu povolením spravovaného ladicího programu, který umožní správné fungování Opětovné načítání za provozu.

Při použití sady Visual Studio 2022 s aplikací .NET, ale ne pomocí ladicího programu

Opětovné načítání za provozu je nyní k dispozici bez ladicího programu při cílení na většinu typů aplikací .NET 6, včetně typů projektů, jako jsou konzola, WPF, model Windows Forms (WinForms), ASP.NET Core MVC, webové rozhraní API a Blazor. Víme, že někteří vývojáři mají dobrý důvod nebo preferovat spouštění aplikací bez ladicího programu a doufáme, že tato další funkce jim poskytne hodnotu, která nebude mít žádný vliv na čas spuštění.

Tato funkce je exkluzivní pro .NET 6 nebo novější a tyto aplikace, které necílí na .NET 6 (.NET 5 nebo níže), nebudou podporovat scénář žádného ladicího programu a musí používat ladicí program k získání přístupu k Opětovné načítání za provozu funkcí.

Mějte také na paměti, že v naší první verzi nebudou podporovány všechny typy projektů pro scénář "žádný ladicí program". Konkrétně:

  • Aplikace pro UPW nejsou podporovány pro Opětovné načítání za provozu bez ladicího programu, to je záměrné a neexistují žádné aktuální plány na vylepšení.
  • Aplikace Xamarin.Forms, které cílí na iOS a Android, nepodporují .NET Opětovné načítání za provozu (bez ohledu na to, jestli spouštíte aplikaci s ladicím programem nebo bez něj), ale budou i nadále podporovat XAML Opětovné načítání za provozu
  • Aplikace .NET MAUI v bezprostřední budoucnosti nebudou podporovat žádný scénář ladicího programu, ale budou podporovat .NET Opětovné načítání za provozu prostřednictvím ladicího programu.

Při použití sady Visual Studio 2022 s aplikací .NET 6 se podporuje většina typů scénářů.

Vývojáři, kteří můžou používat Sadu Visual Studio 2022 i pracovat na aplikacích, které cílí na .NET 6, získají výhody nejpropracovanějšího a nejpropracovanějšího prostředí Opětovné načítání za provozu.

Nejdůležitější informace o podporovaných funkcích:

  • Aplikace Blazor (Server a WebAssembly*)
  • Úpravy souborů Razor na webových stránkách Blazor i běžných ASP.NET Core
  • Opětovné načítání za provozu šablon stylů CSS
  • Možnost získat podporu Opětovné načítání za provozu při spouštění aplikací bez ladicího programu (jak je popsáno výše)

Vývojáři, kteří cílí na .NET 6, budou v budoucích aktualizacích sady Visual Studio 2022 a v hlavních verzích .NET nadále dostávat další vylepšení. Teprve začínáme!

*Ve verzi GA sady Visual Studio 2022 Opětovné načítání za provozu podpora blazor WebAssembly při použití ladicího programu sady Visual Studio ještě není povolená. Stále můžete získat Opětovné načítání za provozu Pokud aplikaci spustíte prostřednictvím sady Visual Studio bez ladicího programu a pracujeme na řešení v budoucí aktualizaci sady Visual Studio.

Podporované ASP.NET základní scénáře

Základní Opětovné načítání za provozu prostředí je nyní široce podporováno pro mnoho ASP.NET scénářů. Nejrozšířenější funkcí je schopnost měnit soubory tříd kódu a dalších tříd .NET pro většinu typů webových aplikací. Tato funkce funguje při používání ladicího programu sady Visual Studio a je k dispozici kdekoli, kde byla dříve dostupná funkce Upravit a Pokračovat.

Pro vývojáře ASP.NET Core, kteří cílí na .NET 6, nejsou pro nižší verze .NET k dispozici další možnosti, mezi která patří například:

  • CSHTML: Úprava souboru Razor CSHTML teď podporuje mnoho typů úprav.
  • Aktualizace prohlížeče: Při úpravě souboru razor se teď při ladění automaticky aktualizují změny ve webovém prohlížeči. Tato možnost byla dříve dostupná pouze při spuštění aplikace bez ladicího programu.
  • CSS Opětovné načítání za provozu: Teď je možné změnit soubory CSS, když je aplikace spuštěná, a změny se okamžitě použijí pro spuštěnou aplikaci při psaní.
  • Žádný ladicí program: Teď získáte podporu Opětovné načítání za provozu při spuštění webové aplikace pomocí sady Visual Studio bez ladicího programu (CTRL-F5).

Poznámka: Při práci na aplikaci Blazor Wasm a použití sady Visual Studio 2022 (17.0) Opětovné načítání za provozu pro stránky razor funguje jenom při spouštění aplikací bez ladicího programu. V budoucí aktualizaci přidáme podporu ladicího programu.

Podporované úpravy .NET

Prostředí .NET Opětovné načítání za provozu využívá mechanismus pro úpravy a pokračování a provedli jsme vylepšení podpory dalších typů úprav, které jsou nad rámec toho, co bylo původně možné v předchozích verzích. Mezi vylepšení patří:

  • Přidání, aktualizace nebo odstranění vlastních atributů
  • Přidání nebo aktualizace struktur záznamů
  • Přidání nebo aktualizace direktiv #line
  • Úpravy výrazů Switch
  • Úpravy souborů pomocí direktiv #line, včetně změn samotné direktivy
  • Úpravy příkazů nejvyšší úrovně
  • Úprava kódu, který používá některou z nových funkcí C# 10, jako jsou globální direktivy using, obory názvů s oborem souborů, vylepšené lambda a konstruktory struktury bez parametrů
  • Přejmenování parametrů lambda
  • Přejmenování parametrů existujících metod

Výše uvedená vylepšení jsou k dispozici pro Opětovné načítání za provozu i prostředí pro úpravy a pokračování.

Další Aktualizace

  • Opětovné načítání za provozu a upravit a pokračovat několika procesy: Nyní je možné spolehlivě používat prostředí Opětovné načítání za provozu i možnosti Upravit a Pokračovat při připojení k více procesům. Dříve tato funkce nebyla plně podporovaná a ne vždy fungovala správně, byla opravena.
  • Aktualizace chybových a upozorňujících zpráv: Aktualizovali jsme mnoho chybových a upozorňujících zpráv, aby byly jasnější, když se zprávy vztahují na EnC i Opětovné načítání za provozu. Udělali jsme to tak, že zprávy budou obecnější, aby se během operací Opětovné načítání za provozu nepoužívaly terminologie pro úpravy a pokračování.
  • Rychlejší testování jednotek aplikací .NET: technologie Opětovné načítání za provozu je teď možné použít jako experimentální funkci ke zrychlení testování jednotek při cílení na .NET 6. Další informace najdete v části Testování v těchto poznámkách k verzi.

Nepodporované scénáře .NET

I v konečné verzi budou stále některé nepodporované scénáře, o nichž byste měli vědět:

  • Aplikace Xamarin.Forms nepodporují Opětovné načítání za provozu .NET ve scénářích pro iOS a Android. Při cílení na aplikaci pro UPW získáte některé Opětovné načítání za provozu. Jedná se o návrh a neočekáváme žádná další vylepšení. (Poznámka: Opětovné načítání za provozu XAML bude dál dostupná a podporovaná pro zákazníky Xamarin.Forms v nejnovější sadě SDK).
  • Aplikace .NET MAUI nejsou v této verzi podporované, pokud chcete pracovat s .NET MAUI a Opětovné načítání za provozu podrobnosti najdete v poznámkách k vydání verze pro Visual Studio 2022 Update 1 Preview 1.
  • Aplikace vytvořené pomocí jazyka F# nebo těch, které cílí na .NET Native, nebudou podporovat Opětovné načítání za provozu.

Produktivita platformy .NET

Refaktoring synchronizačních oborů názvů je teď k dispozici v nabídce projektu nebo složky v Průzkumník řešení (po kliknutí pravým tlačítkem myši) a umožňuje snadno synchronizovat obory názvů tak, aby odpovídaly struktuře složek.

Sync namespaces from Solution Explorer

Konfigurace analýzy kódu na pozadí je nyní dostupná v nabídce Průzkumník řešení (po kliknutí pravým tlačítkem). Klikněte pravým tlačítkem na uzel řešení v Průzkumník řešení a vyberte Analyzovat a Vyčistit kód. Dále vyberte Nastavit obor analýzy a nakonfigurujte obor pro analýzu kódu na pozadí.

  • K dispozici je refaktoring, který zavádí parametr, který přesune výraz z implementace metody do svých volajících přidáním nového parametru. Umístěte kurzor na řádek obsahující výraz nebo zvýrazněte výraz. Stisknutím kláves (Ctrl+.) aktivujte nabídku Rychlé akce a refaktoringy . Vyberte Možnost Zavést parametr pro{0}nebo Zavést parametr pro všechny výskyty .{0} Obě možnosti budou mít tři kontextové možnosti pro vložení aktualizovaného výrazu ve všech webech volání, (2) extrakce a vytvoření nové metody, která vrátí výraz a přidá argument na webech volání, nebo (3) vytvoří přetížení metody, která obsahuje výraz a volá původní metodu.

Introduce parameter from Quick Actions menu

  • K dispozici je nový příkaz s názvem Sledovat zdroj hodnot, který umožňuje provádět analýzu toku dat, abyste zjistili, jak určité hodnoty mohly být předány v daném bodě a kde by mohly být předány. Klikněte pravým tlačítkem na libovolného člena a v místní nabídce vyberte Sledovat zdroj hodnot.

Track value source in right click menu

  • Otevře se okno Sledování hodnot, které vám umožní analyzovat výsledky:

Track Value Source Window

  • Přidali jsme možnost podtržení proměnných, které se znovu přiřazuje. Tato možnost je ve výchozím nastavení vypnutá, takže ji budete muset povolit v textovém editoru > Možnosti > nástrojů > C# nebo Základní > upřesnit a vybrat proměnné s opětovným přiřazením podtržení.

Underline reassigned variables in Editor

  • Do dialogového okna Generovat přepsání jsme přidali možnost hledání, která umožňuje rychle vyhledávat a vybírat členy, které chcete přepsat.

Search in Generate Overrides Dialog

  • Rychlé informace o značkách kódu> XML <teď zachovávají prázdné znaky a bloky CDATA. Umístěte kurzor nad prvek. Okno s rychlými informacemi pak nad kódem zobrazí podporované styly z komentářů XML.

Quick Info for XML preserves whitespace

  • Okno Najít všechny odkazy teď seskupí projekty s více cíli a sníží vizuální šum.

Find All Reference Groups Multi-Targeted Projects

  • Teď existuje refaktoring, který odebere opakující se typy v jazyce Visual Basic.
  • Přechod na implementaci už nebude přecházet na členy s abstraktními deklaracemi, které jsou také přepsány.

Nástroje jazyka C#

V jazyce C# 8.0 jsme zavedli odkazové typy s možnou hodnotou null, které umožňují deklarovat, jestli se očekává hodnota null. Pokud chcete použít odkazové typy s možnou <Nullable>hodnotou null, musíte buď přidat element enable</Nullable> do souboru projektu, nebo přidat #nullable povolit direktivu pragma ke každému zdrojovému souboru v projektu. Pro zjednodušení tohoto procesu teď automaticky zahrneme <Nullable>povolení</Nullable> pro nové projekty .NET.

V jazyce C# 10.0 zavádíme obor názvů s oborem souborů a poskytujeme možnost vnořit definice tříd v rámci oboru názvů. Teď máme refaktoring pro převod oboru názvů na obor názvů s oborem souborů. Abyste mohli použít obor názvů s oborem souborů, musíte nejprve do souboru projektu přidat prvek náhledu<LangVersion></LangVersion>. Dále umístěte kurzor na obor názvů. Stisknutím Ctrl+. aktivujte nabídku Rychlé akce a refaktoring. Vyberte Převést na obor názvů s oborem souborů.

File-scoped namespace refactoring

Teď existuje refaktoring, který by se dal preferovat is not nullis object při použití u typů hodnot. Pokud chcete použít tento nový refaktoring, umístěte kurzor na kontrolu typu. Stisknutím Ctrl+. aktivujte nabídku Rychlé akce a refaktoring. Zaškrtněte políčko Preferovat kontrolu typu.

Přechod na dekompilované zdroje

Ve výchozím nastavení přejděte k dekompilovaným zdrojům ve výchozím nastavení, takže můžete přejít k deklaracím typů knihoven. Přechod na Dekompilované zdroje je k dispozici při vyvolání Přejít na definici u symbolu knihovny ve zdrojovém kódu a v dekompilovaných zdrojích.

Vylepšení editoru

Komentáře XML teď automaticky vygenerují <exception> značku v rámci <summary> značky, která umožňuje přidat popis, když metoda explicitně vyvolá výjimky.

V sadě Visual Studio 2019 jsme vydali okraj dědičnosti, který přidává ikony na okraje představující implementace a přepsání kódu. Kliknutím na ikony okrajů dědičnosti se zobrazí možnosti dědičnosti, na které můžete přejít. V této verzi dědičnost okraje je ve výchozím nastavení povoleno. Pokud chcete zakázat okraj dědičnosti, přejděte do Editoru>možností>nástroje>C# nebo Základní>upřesnit a zrušte výběr možnosti Povolit okraj dědičnosti.

Inheritance Margin

Programovací jazyky

C# 10

  • Zaznamenává struktury a with výrazy na strukturách (record struct Point(int X, int Y);, var newPoint = point with { X = 100 };).
  • Globální direktivy using: global using direktivám se vyhněte opakování stejných using direktiv v mnoha souborech ve vašem programu.
  • Vylepšené určité přiřazení: určité přiřazení a analýza nullability lépe zpracovat běžné vzory, jako dictionary?.TryGetValue(key, out value) == trueje .
  • Interpolované řetězce konstant: interpolované řetězce složené z konstant jsou samy o sobě konstanty.
  • Vzory rozšířených vlastností: Vzory vlastností umožňují přístup k vnořeným členům (if (e is MethodCallExpression { Method.Name: "MethodName" })).
  • Zapečetěný záznam ToString: záznam může dědit základní záznam s zapečetěným ToString.
  • Generátory přírůstkových zdrojů: vylepšete prostředí generování zdrojů ve velkých projektech rozdělením kanálu zdrojové generace a ukládáním průběžných výsledků do mezipaměti.
  • Smíšené dekonstrukce: dekonstrukce-přiřazení a dekonstrukce-deklarace lze kombinovat dohromady ((existingLocal, var declaredLocal) = expression).
  • AsyncMethodBuilder na úrovni metody: AsyncMethodBuilder použitý ke kompilaci async metody lze přepsat místně.
  • #line direktiva span: povolte zdrojové generátory, jako je razor, jemně odstupňované řízení mapování čar s #line direktivami, které určují cílové rozpětí (#line (startLine, startChar) - (endLine, endChar) charOffset "fileName").
  • Vylepšení lambda: Atributy a návratové typy jsou povoleny pro lambda; lambda a skupiny metod mají přirozený typ delegáta (var f = short () => 1;).
  • Interpolované obslužné rutiny řetězců: Interpolované typy obslužných rutin řetězců umožňují efektivní formátování interpolovaných řetězců v přiřazeních a vyvolání.
  • Obory názvů s oborem souborů: soubory s jedním oborem názvů nepotřebují další složené závorky ani odsazení (namespace X.Y.Z;).
  • Konstruktory struktury bez parametrů: podporují konstruktory bez parametrů a inicializátory polí instance pro typy struktur.
  • CallerArgumentExpression: tento atribut umožňuje zachytit výrazy předané metodě jako řetězce.

Další podrobnosti najdete v tématech pojednávajících o stavu funkcí jazyka C# a změnách způsobujících chyby.

Razor (ASP.NET Core) Editor

  • V souborech Razor je teď Opětovné načítání za provozu podpora.

Reload Support in Razor Files

  • Výrazně jsme vylepšili výkon editoru Razor.

  • Vylepšili jsme formátování a odsazení, aby bylo spolehlivější a výrazně rychlejší.

  • Přidali jsme nové barvy Razor! Tyto barvy můžete přizpůsobit v > nástrojích Možnosti > písma a barvy prostředí > .

  • TagHelpers jsou teď barevné a mají podporu klasifikace v popisech pro rychlé informace a dokončování IntelliSense.

TagHelpers Classification Support

  • Vylepšili jsme zvýraznění úhlové větve a navigaci pro konstrukce Razor.

  • Komentáře teď mají automatické dokončování, inteligentní odsazení, automatické zahrnutí pokračování komentářů a blokování navigace v komentářích.

Vzdálené testování v rané fázi experimentální verze Preview

Máme velmi ranou experimentální verzi Preview, která umožňuje spouštění testů ve vzdálených prostředích, jako jsou kontejnery Linuxu, WSL a připojení SSH. I když je to velmi cenná schopnost, žádáme o vaši trpělivost, protože tato funkce je stále ve velmi raném experimentálním stavu, protože shromažďujeme zpětnou vazbu. Nemusí se vám zobrazit plynulost, kterou obvykle získáte, protože si můžete představit, že existuje spousta rohových scénářů, jak můžeme komunikovat a spravovat propojené prostředí ze sady Visual Studio. Tady jsou některé požadavky pro použití této experimentální verze vzdáleného testování:

  • V cílovém prostředí je potřeba nainstalovat potřebné závislosti. To znamená, že pokud chcete, aby testy cílené na .NET 3.1 běžely v linuxovém kontejneru, musíte zajistit, aby byl kontejner nainstalovaný přes váš soubor Dockerfile. Někdy bychom rádi vytvořili prostředí pro instalaci, které umožňuje hladké získání všech testovacích závislostí, ale prozatím necháváme většinu zřizování prostředí až do specifikace uživatele.
  • Pomocí podokna Výstupní> testy naplánujte monitorování stavu připojení ke vzdálenému prostředí. Pokud se například kontejner zastavil, zobrazí se zpráva v podokně Výstupní testy>. Možná nedetekujeme všechny scénáře, takže plánujeme zkontrolovat výstup, pokud to vypadá, že připojení bylo ztraceno. Zvlášť pokud není podokno Výstup nastaveno na Test, nemusí se zpráva okamžitě zobrazit. Stále experimentujeme s nejlepším modelem oznámení, když dojde ke ztrátě připojení, takže zpětná vazba je velmi vítána! Pokud se zdá, že připojení bylo ztraceno, můžete pomocí rozevíracího seznamu vzdáleného testovacího prostředí v Průzkumníku testů nastavit připojení zpět do místního prostředí a pak znovu vybrat vzdálené prostředí a znovu připojit připojení.
  • Experimentální verze Preview je prozatím vymezená pouze na testy .NET. Jsme si vědomi zájmu o podporu prostředí vzdáleného testování C++ a doufáme, že to také nakonec poskytneme.

Jak si můžu vyzkoušet vzdálené testování?

  • Oficiální dokumenty dorazí po experimentálním období. Prozatím je to, co potřebujete, abyste mohli začít testovat.
  • Prostředí se zadají v testenvironments.json kořenovém adresáři vašeho řešení. Struktura souboru JSON se řídí následujícím schématem:
{
    "version": "1", // value must be 1
    "environments": [
        { "name": "<unique name>", ... },
        ...
    ]
}
  • Připojení místního kontejneru
    • Pokud se chcete připojit ke kontejneru spuštěném místně, musíte mít na místním počítači Docker Desktop . Volitelně můžete povolit integraci WSL2 pro lepší výkon.
    • Pro soubor Dockerfile je možné prostředí zadat v testEnvironments.json kořenovém adresáři vašeho řešení:
          {
          "name": "<name>",
          "localRoot": "<path to local environment>", // optional
          "type": "docker",
          "dockerImage": "<docker image tag>",
          }
      
      Příklad:
      {
      "version": "1",
      "environments": [
          {
          "name": "linux dotnet-core-sdk-3.1",
          "type": "docker",
          "dockerImage": "testenv"
          }
      ]
      }
      
    • Tady je příklad souboru Dockerfile pro spouštění testů, které cílí na .NET 3.1.
      FROM mcr.microsoft.com/dotnet/core/sdk:3.1
      
    • Vytvořte kontejner pomocí následujícího příkazu (včetně "" na konci): docker build -t <docker image name> -f <path to Dockerfile> .
  • Místní připojení WSL2
    • Na místním počítači musíte povolit integraci WSL2.
    • Prostředí je možné zadat v testEnvironments.json kořenovém adresáři vašeho řešení pomocí tohoto schématu:
      {
      "version": "1",
      "environments": [
          {
          "name": "WSL-Ubuntu",
          "type": "wsl",
          "wslDistribution": "Ubuntu"
          }
      ]
      }
      
  • Připojení SSH
    • Pokud chcete přidat nebo odebrat připojení SSH, přejděte na Možnosti > nástrojů > pro různé platformy > Připojení ion Manager. Když vyberete Přidat, budete moct zadat název hostitele, port a všechny přihlašovací údaje, které potřebujete.
    • Prostředí je možné zadat v testEnvironments.json kořenovém adresáři vašeho řešení následujícím způsobem:
      {
      "version": "1",
      "environments": [
          {
          "name": "ssh-remote",
          "type": "ssh",
          "remoteUri": "ssh://user@hostname:22"
          }
      ]
      }
      
  • Aktivní prostředí je vybráno prostřednictvím rozevíracího seznamu na panelu nástrojů Průzkumníka testů. V současné době může být aktivní jenom jedno testovací prostředí.

Remote testing environment drop down in Test Explorer

  • Po výběru prostředí se testy zjistí a spustí v novém prostředí.

Tests are discovered and executed in remote environments

  • Teď můžete spouštět a ladit testy ve vzdáleném prostředí.

    View test results from remote environment in the test explorer

  • Průzkumník testů vás může vyzvat k instalaci některých chybějících požadavků prostředí a pokusu o jejich instalaci, ale nakonec ponecháme většinu zřizování vzdáleného prostředí na specifikaci uživatele.

Opětovné načítání za provozu v Průzkumníku testů [experimentální]: Nyní je možné vyzkoušet novou experimentální funkci, která zrychlí vaše testovací prostředí pomocí technologie Opětovné načítání za provozu na pozadí. To znamená, že po prvním testovacím spuštění, kde se stále vyžaduje úplné sestavení, můžete provést menší změny, spustit testy a všechny tyto aktualizace se projeví bez nutnosti znovu provést úplné sestavení. Pokud chcete začít a získat další upozornění, podívejte se na následující podrobnosti:

Hot reload for the Test Explorer in Visual Studio enables you to run tests without requiring a build between minor edits

  • Toto prostředí je dostupné jenom pro projekty, které cílí na .NET 6, a musíte se přihlásit tak, že přejdete na Možnosti nástrojů >> – test.

Screenshot of Visual Studio showing enable hot reload option in Tools > Options > Test.

  • Pokud je tato možnost povolená, vaše testy se aktualizují i s neuložené změny v editoru. Nevystavujeme, takže binární soubory na disku ve složce přihrádky jsou zastaralé. To znamená, že se v sadě Visual Studio můžou zobrazovat nesrovnalosti mezi tím, co je na disku, a výsledky testů. Pokud chcete tyto problémy vyřešit a než se přihlásíte, ujistěte se, že provedete úplné sestavení pomocí kombinace kláves Ctrl+Shift+B. Jakékoli explicitní sestavení nahradí výsledky testu opětovného načítání za provozu běžnými výsledky testů úplného sestavení.

  • Existují určité typy úprav, které opětovné načítání za provozu nemůže vyzvednout a v těchto případech se ve výchozím nastavení vrátí ke starému chování při úplném sestavení. Upozorňujeme také, že se sledují pouze změny v sadě Visual Studio, neprůzné případy v editoru, jako jsou změny cílů, se můžou ve výchozím nastavení vrátit zpět, aby vyžadovaly úplné sestavení.

  • Některé velké změny (například přejmenování názvů metod 1000+ ) mohou trvat delší dobu opětovného načítání než pouhé opětovné sestavení. V těchto případech se ve výstupu zobrazí zpráva s výzvou, aby uživatelé udělali úplné opětovné sestavení, a nečekal na opětovné načtení za provozu.

  • Trasování zásobníku ještě není k dispozici s opětovným načtením za provozu v Průzkumníku testů. Pokud potřebujete použít trasování zásobníku, doporučujeme provést úplné sestavení.

Testovací nástroje

  • Zobrazit v Průzkumníku testů (Ctrl+E,S):Zobrazit v Průzkumníku testů je možnost přeskočit z místa, kde je kurzor v testovací metodě v editoru, do místa, kde je test v Průzkumníku testů. Může vám to připomínat podobnou funkci s názvem Synchronizovat s aktivním dokumentem, která udržuje dokument, na který právě pracujete, zvýrazněný v Průzkumník řešení. To byl jeden z nejlepších hlasování o vývojářské komunitě, takže děkuji všem, kteří hlasovali a pomohli nám určit prioritu této funkce! Show in Test Explorer is also available from the editor right-click menu, CodeLens test glyph, and the right-click in the Průzkumník řešení.

    Show in Test Explorer from right-click menuShow in Test Explorer from CodeLens

  • Aktualizace webového zátěžového testu a programového testu uživatelského rozhraní: Záznam webového zátěžového testu je k dispozici v sadě Visual Studio 2022. Programový záznam testu uživatelského rozhraní nebude součástí sady Visual Studio 2022. I tak budete moct spouštět programové testy uživatelského rozhraní a vytvářet nové testy napsáním kódu v sadě Visual Studio 2022, ale záznam spoléhá na 32bitové závislosti, které nejsou pro port proveditelné. Visual Studio 2019 můžete nainstalovat vedle sebe, abyste mohli použít programový záznam uživatelského rozhraní. Připomínáme, že test webového zatížení a programový test uživatelského rozhraní byly v roce 2019 zastaralé a plánujeme je z produktu odebrat, když můžeme minimalizovat dopad na uživatele. Důrazně doporučujeme uživatelům, kteří se zajímají o testování webového uživatelského rozhraní, aby přijali novou multiplatformní a opensourcovou architekturu webového testování Playwright. Kromě podpory všech hlavních prohlížečů a mnohem lepšího zpracování asynchronního kódu má Playwright také integrovanou funkci nahrávání testů.

Důvěryhodná umístění

  • V rámci revize "Důvěřovat Nastavení" jsme odebrali kontrolu "Označit webu" a přidali jsme dialogové okno upozornění, které se zobrazí při pokusu o otevření kódu (např. souborů, projektů nebo složek), které nebyly dříve důvěryhodné.
  • Kód teď může být důvěryhodný v aktuální složce nebo v umístění nadřazené složky.
  • Projekty vytvořené uživatelem se automaticky přidají do seznamu důvěryhodných umístění uživatele.
  • Kontroly důvěryhodnosti pro dočasná umístění vytvořená funkcemi sady Visual Studio můžete přeskočit.

Před otevřením obsahu (např. řešení, projektu, souboru nebo složky) v integrovaném vývojovém prostředí ověříme, jestli umístění složky bylo dříve důvěryhodné.

Pokud se zjistí nedůvěryhodný kód, zobrazíme upozornění s upozorněním na důsledky zabezpečení a požádáme vás, abyste kód před normální operací integrovaného vývojového prostředí důvěřovali.

Poznámka: I když je tato funkce ve výchozím nastavení vypnutá, je možné ji povolit prostřednictvím možnosti > Důvěryhodnost Nastavení Před otevřením obsahu znovu nakonfigurovat rozhodnutí o důvěryhodnosti>.

Aktualizace uzlů externích zdrojů

Uzel Externí zdroje v Průzkumníku řešení má teď také podporu jazyka C++. Kromě toho jsme přidali nový dílčí uzel, který vám poskytne všechny moduly se symboly, ještě nejsou načteny.

External Sources node in Solution explorer supports C++

Symboly můžete načíst přímo z Průzkumníka řešení tak, aby se moduly zobrazovaly v externích zdrojových uzlech. Soubory, které uzel Externí zdroje obsahuje, jsou teď také seřazené abecedně.

External Sources menu

Aktualizovaná a aktualizovaná ikona

  • V rámci našeho cíle aktualizovat uživatelské rozhraní pro Visual Studio 2022 najdete nově aktualizované a aktualizované ikony v integrovaném vývojovém prostředí založené na konzistenci, čitelnosti a znalostech.

Examples of new icons with dark and light backgrounds

Opětovné načítání za provozu XAML

Aktualizovali jsme nastavení Opětovné načítání za provozu XAML a panely nástrojů v aplikaci, abychom měli přehled o tom, že nastavení a prostředí aplikací souvisejí s Opětovné načítání za provozu XAML, a ne s Opětovné načítání za provozu .NET.

Updated in-app toolbar in XAML apps

Zjednodušili jsme také podokno nastavení, abychom lépe uspořádali společné možnosti.

Updated XAML Settings options panel

Dynamický náhled XAML

Xaml Live Preview je teď k dispozici pro vývojáře WPF, UPW, WinUI a Xamarin.Forms, kteří používají své aplikace v emulátoru Androidu nebo jako desktopovou aplikaci PRO UPW. Live Preview zachycuje uživatelské rozhraní spuštěných aplikací a přenese ho do ukotveného okna v sadě Visual Studio. To usnadňuje použití xaml Opětovné načítání za provozu ke změně aplikace při zobrazení těchto změn v samotném sadě Visual Studio, aniž by bylo nutné mezi spuštěnou aplikací a sadou Visual Studio při provádění živých změn kódu XAML přecházet zpět a zpět.

Live Preview of XAML Desktop Apps UI

Jak začít:

  • Spuštění podporované aplikace pomocí ladicího programu
  • Zapnutí dynamického náhledu XAML, a to buď pomocí rychlého vyhledávání, zadáním "XAML Live Preview" nebo pomocí panelu nástrojů v aplikaci "Zobrazit v dynamickém náhledu XAML"

Po spuštění prostředí budou k dispozici následující funkce:

  • Posouvání a přiblížení: Můžete posouvat a přibližovat okno, které zachycuje uživatelské rozhraní aplikací. Díky tomu můžete nastavit, aby vyhovovalo vašim potřebám zobrazit celou aplikaci nebo jenom části, které se pokoušíte upravit. Posouvání a posouvání funguje s dotykovou podložkou (posouvání dvěma prsty), kolečkem myši nebo klávesou CTRL a kliknutím přetáhněte obsah kolem.
  • Pravítka: Můžete přidat jedno nebo více vodorovných nebo svislých pravítek, která překryjí spuštěnou aplikaci. Tyto čáry se pak dají přesunout do pozice pomocí myši nebo klávesnice. Při přesouvání pravítka pomocí kláves se šipkami slouží k přesnému umístění a klávesy Ctrl + šipka pro rychlé umístění. Pravítka můžete odstranit také tak, že je vyberete (kliknete na ně) a stisknete klávesu Delete.
  • Tipy pro výběr elementů a informace: Pomocí výběru elementu můžete vybrat prvek XAML, který chcete upravit, pomocí stejné funkce, kterou můžete použít z panelu nástrojů Live Visual Tree nebo v aplikaci. Po výběru můžete také povolit novou funkci Informační tipy, abyste získali další informace o vybraném prvku, jako jsou písma, barvy, informace o okrajích nebo odsazení a další. Při použití výběru elementů zvažte povolení náhledu vybrané položky – buď prostřednictvím tlačítka panelu nástrojů Dynamický vizuální strom, nebo nastavení možnosti > ladění > Opětovné načítání za provozu nastavení – přejděte do zdrojového kódu XAML.
  • Přepínání windows: Můžete určit, která okna aplikace se zachytí.

Vylepšené prostředí vazeb XAML

  • Vylepšené ikony datových vazeb v Inspektoru vlastností Teď můžete rychle získat přístup k dialogovému okně Datové vazby kliknutím na ikonu "válce" vedle vlastnosti a kliknutím na ikonu x můžete vazbu vymazat.

Binding icons in Property Inspector

  • Přidání karty Vazby v rychlých akcích, abyste mohli vytvářet vazby pomocí několika kliknutí z návrháře XAML.

Binding tab in Quick Actions

  • Přidání pole se seznamem Cílová vlastnost do dialogového okna Datové vazby pro výběr vlastnosti na cestách.

Updated Data Binding Dialog with Target Property combo box

Hlavní hlasování problémy od komunity vývojářů

Podívejte se na úplný seznam oprav komunity vývojářů v této verzi.


Známé problémy

Podívejte se na všechny otevřené problémy a dostupná alternativní řešení v sadě Visual Studio 2022 pomocí následujícího odkazu.

Názory a návrhy

Rádi uslyšíme váš názor! Problém můžete nahlásit nebo navrhnout funkciFeedback Icon pomocí ikony Odeslat zpětnou vazbu v pravém horním rohu instalačního programu nebo integrovaného vývojového prostředí sady Visual Studio nebo z nápovědy > k odeslání názoru. Problémy můžete sledovat pomocí komunity vývojářů sady Visual Studio, kde přidáváte komentáře nebo hledáte řešení. Naše podpora na živém chatu vám navíc poskytne bezplatnou pomoc s instalací.


Blogy

Využijte přehledů a doporučení, které najdete na webu Blogy o vývojářských nástrojích, abyste si udržovali přehled o všech nových vydaných verzích a měli k dispozici podrobné příspěvky popisující širokou škálu funkcí.


Na začátek stránky