2022LogoInformacje o wersji 17.0 programu Visual Studio 2022


Napiwek

Obejrzyj nagrania wydarzenia startowego programu Visual Studio 2022, aby dowiedzieć się więcej o nowościach, usłyszeć porady i wskazówki oraz pobrać bezpłatny cyfrowy swag.

Społeczność deweloperów | programu Visual Studio 2022 — harmonogram | wymagań systemowych zgodność | | z warunkami licencyjnymi historii | wydania | kodu | dystrybucyjnego Blogi | najnowsze znane problemy | z nowościami w dokumentacji programu Visual Studio


Visual Studio 2022 w wersji 17.0

Wsparcie dla programu Visual Studio 2022 w wersji 17.0 zakończyło się w lipcu 2023 r., co oznacza, że nie będzie więcej aktualizacji zabezpieczeń dla tej wersji. Subskrybenci Enterprise i Professional korzystający z kanału LTSC programu Visual Studio 2022 17.0 powinni przyjąć najnowszy bieżący kanał lub wydanie LTSC.

Przeczytaj o wersjach i datach pomocy technicznej programu Visual Studio 2022.

Dowiedz się więcej o cyklu życia produktu i obsłudze programu Visual Studio.

Odwiedź witrynę programu Visual Studio, aby uzyskać dostęp do linków dla najnowszych wersji produktów Visual Studio 2022. Aby uzyskać instrukcje dotyczące instalowania i aktualizowania programu Visual Studio 2022, zobacz Aktualizowanie programu Visual Studio 2022 do najnowszej wersji. Przewodnik Administracja istratora programu Visual Studio zawiera wskazówki dotyczące wdrażania programu Visual Studio w całej organizacji.

Wydania programu Visual Studio 2022 w wersji 17.0

Visual Studio 2022 Blog

Blog programu Visual Studio 2022 to oficjalne źródło szczegółowych informacji o produkcie od zespołu inżynierów programu Visual Studio. Szczegółowe informacje na temat wydań programu Visual Studio 2022 można znaleźć w następujących wpisach:


17.0.23 Visual Studio 2022 w wersji 17.0.23

wydany 11 lipca 2023 r.

Problemy rozwiązane w tej wersji 17.0.23

  • Firma Microsoft zna lukę w zabezpieczeniach, w której istnieje możliwość wstrzyknięcia adresu SMTP, który może wystąpić w klasie SmtpClient. Odpowiada to cve-2022-26893 (nie opublikowano CVE, ponieważ luka w zabezpieczeniach jest oceniana jako średnia).

Biuletyny zabezpieczeń rozwiązane


17.0.22 Visual Studio 2022 w wersji 17.0.22

wydany 13 czerwca 2023 r.

Problemy rozwiązane w tej wersji 17.0.22

  • Firma Microsoft zna lukę w zabezpieczeniach, w której istnieje możliwość wstrzyknięcia adresu SMTP, który może wystąpić w klasie SmtpClient. Odpowiada to cve-2022-26893 (nie opublikowano CVE, ponieważ luka w zabezpieczeniach jest oceniana jako średnia).

Biuletyny zabezpieczeń rozwiązane

  • CVE-2023-24897 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu programu Visual Studio Ta aktualizacja zabezpieczeń usuwa lukę w zabezpieczeniach zestawu MSDIA SDK, w której uszkodzone pliki PDB mogą powodować przepełnienie sterty, co prowadzi do awarii lub zdalnego wykonywania kodu.
  • CVE-2023-25652 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu programu Visual Studio Ta aktualizacja zabezpieczeń usuwa lukę w zabezpieczeniach polegającą na tym, że specjalnie spreparowane dane wejściowe do narzędzia git mają zastosowanie — odrzucenie może prowadzić do kontrolowanego zapisu zawartości w dowolnych lokalizacjach.
  • CVE-2023-25815 Luka w zabezpieczeniach dotycząca fałszowania programu Visual Studio Ta aktualizacja zabezpieczeń usuwa lukę w zabezpieczeniach, w której komunikaty lokalizacji usługi GitHub odwołują się do stałej ścieżki zamiast przestrzegać prefiksu środowiska uruchomieniowego, który prowadzi do braku powiązanych zapisów i awarii pamięci.
  • CVE-2023-29007 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu programu Visual Studio Ta aktualizacja zabezpieczeń usuwa lukę w zabezpieczeniach, w której plik konfiguracji zawierający błąd logiki powoduje dowolne wstrzyknięcie konfiguracji.
  • CVE-2023-29011 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu programu Visual Studio Ta aktualizacja zabezpieczeń usuwa lukę w zabezpieczeniach, w której plik wykonywalny Git dla systemu Windows odpowiedzialny za implementację serwera proxy SOCKS5 jest podatny na pobieranie niezaufanej konfiguracji na komputerach z wieloma użytkownikami.
  • CVE-2023-29012 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu programu Visual Studio Ta aktualizacja zabezpieczeń usuwa lukę w zabezpieczeniach, w której program GIT dla systemu Windows git niepoprawnie wyszukuje program podczas uruchamiania, co prowadzi do dyskretnego wykonywania dowolnego kodu.
  • CVE-2023-27909 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu programu Visual Studio Ta aktualizacja zabezpieczeń usuwa lukę w zabezpieczeniach zapisu poza granicami w zestawie Autodesk® FBX SDK, gdzie wersja 2020 lub poprzednia może prowadzić do wykonania kodu za pośrednictwem złośliwie spreparowanych plików FBX® lub ujawnienia informacji.
  • CVE-2023-27910 Luka w zabezpieczeniach dotycząca ujawniania informacji programu Visual Studio Ta aktualizacja zabezpieczeń usuwa lukę w zabezpieczeniach, w której użytkownik może zostać oszukany do otwarcia złośliwego pliku FBX, który może wykorzystać lukę w zabezpieczeniach przepełnienia buforu stosu w zestawie Autodesk® FBX® SDK 2020 lub wcześniej, co może prowadzić do zdalnego wykonywania kodu.
  • CVE-2023-27911 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu programu Visual Studio Ta aktualizacja zabezpieczeń usuwa lukę w zabezpieczeniach polegającą na tym, że użytkownik może otworzyć złośliwy plik FBX, który może wykorzystać lukę w zabezpieczeniach przepełnienia buforu stertowego w zestawie Autodesk® FBX® SDK 2020 lub wcześniej, co może prowadzić do zdalnego wykonywania kodu.
  • CVE-2023-33139 Luka w zabezpieczeniach dotycząca ujawniania informacji programu Visual Studio Ta aktualizacja zabezpieczeń usuwa lukę w zabezpieczeniach OOB, w której analizator plików obj w programie Visual Studios prowadzi do ujawnienia informacji.
  • CVE-2023-29331 Luka w zabezpieczeniach dotycząca odmowy usługi .NET i Visual Studio Luka w zabezpieczeniach Ta aktualizacja zabezpieczeń usuwa lukę w zabezpieczeniach, w której proces pobierania AIA dla certyfikatów klienta może prowadzić do odmowy usługi.
  • CVE-2023-24895 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu na platformie .NET i programie Visual Studio Ta aktualizacja zabezpieczeń usuwa lukę w zabezpieczeniach analizatora WPF XAML, w którym analizator bez skrzynki odbiorczej może prowadzić do zdalnego wykonywania kodu.
  • CVE-2023-24936 Luka w zabezpieczeniach dotycząca podniesienia uprawnień platformy .NET i programu Visual Studio Ta aktualizacja zabezpieczeń usuwa lukę w zabezpieczeniach w ograniczeniach obejścia podczas deserializacji elementu DataSet lub DataTable z pliku XML, co prowadzi do podniesienia uprawnień.
  • CVE-2023-32032 Luka w zabezpieczeniach dotycząca podniesienia uprawnień platformy .NET Luka w zabezpieczeniach istnieje na platformie .NET przy użyciu wyodrębniania zawartości pliku Tar, co może spowodować podniesienie uprawnień.
  • CVE-2023-33126 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu na platformie .NET Luka w zabezpieczeniach istnieje na platformie .NET podczas scenariuszy śledzenia awarii i stosu, które mogą prowadzić do załadowania dowolnego pojemnika
  • CVE-2023-33128 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu platformy .NET Luka w zabezpieczeniach istnieje w generatorze źródła platformy .NET dla P/Invoke, co może prowadzić do zwolnienia niezainicjowanej pamięci i awarii.
  • CVE-2023-33135 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu na platformie .NET Luka w zabezpieczeniach luka w zabezpieczeniach istnieje w zestawie .NET SDK podczas przywracania narzędzia, co może prowadzić do podniesienia uprawnień.

17.0.21 Visual Studio 2022 w wersji 17.0.21

wydany 11 kwietnia 2023 r.

Problemy rozwiązane w tej wersji 17.0.21

  • Naprawia awarię, gdy nieprawidłowe dane wejściowe są wysyłane do sterownika używanego podczas trenowania PGO dla sterowników trybu jądra.
  • Rozwiązano problem w programie IIS Express, który mógł spowodować awarię podczas aktualizowania danych telemetrycznych.
  • Firma Microsoft zna lukę w zabezpieczeniach, w której istnieje możliwość wstrzyknięcia adresu SMTP, który może wystąpić w klasie SmtpClient. Odpowiada to cve-2022-26893 (nie opublikowano CVE, ponieważ luka w zabezpieczeniach jest oceniana jako średnia).

Społeczność deweloperów

Biuletyny zabezpieczeń rozwiązane


17.0.20 Visual Studio 2022 w wersji 17.0.20

wydany 14 marca 2023 r.

Problemy rozwiązane w tej wersji 17.0.20

  • Firma Microsoft zna lukę w zabezpieczeniach, w której istnieje możliwość wstrzyknięcia adresu SMTP, który może wystąpić w klasie SmtpClient. Odpowiada to cve-2022-26893 (nie opublikowano CVE, ponieważ luka w zabezpieczeniach jest oceniana jako średnia).
  • Usługa Git 2.39 zmieniła nazwę wartości credential.helper z "manager-core" na "manager". Aby uzyskać więcej informacji, zobacz https://aka.ms/gcm/rename.
  • Aktualizacje do pakietu mingit i Git dla systemu Windows do wersji 2.39.2, która dotyczy CVE-2023-22490

Biuletyny zabezpieczeń rozwiązane


17.0.19 Visual Studio 2022 w wersji 17.0.19

wydany 14 lutego 2023 r.

Problemy rozwiązane w tej wersji 17.0.19

  • Zaktualizowano interpreter CPython do wersji 3.9.13.
  • Aktualizacje do mingit i Git dla pakietu systemu Windows do wersji 2.39.1.1, która zawiera adres CVE-2022-41903

Biuletyny zabezpieczeń rozwiązane

17.0.18 Visual Studio 2022 w wersji 17.0.18

wydany 10 stycznia 2023 r.

Biuletyny zabezpieczeń rozwiązane

  • CVE-2023-21538 Luka w zabezpieczeniach typu odmowa usługi na platformie .NET Luka w zabezpieczeniach typu "odmowa usługi" istnieje na platformie .NET 6.0, gdzie złośliwy klient może spowodować przepełnienie stosu, co może spowodować atak typu "odmowa usługi", gdy atakujący wyśle nieprawidłowe żądanie do ujawnionego punktu końcowego.

17.0.17 Visual Studio 2022 w wersji 17.0.17

wydany 13 grudnia 2022 r.

Biuletyny zabezpieczeń rozwiązane


17.0.16 Visual Studio 2022 w wersji 17.0.16

wydany 8 listopada 2022 r.

Problemy rozwiązane w tej wersji 17.0.16

Biuletyny zabezpieczeń rozwiązane


17.0.15 Visual Studio 2022 w wersji 17.0.15

wydany 11 października 2022 r.

Problemy rozwiązane w tej wersji 17.0.15

  • Administracja istratory będą mogli zaktualizować Instalatora programu VS na komputerze klienckim w trybie offline z układu bez aktualizowania programu VS.

Biuletyny zabezpieczeń rozwiązane


17.0.14 Visual Studio 2022 w wersji 17.0.14

wydany 13 września 2022 r.

Problemy rozwiązane w tej wersji 17.0.14

Biuletyny zabezpieczeń rozwiązane

CVE-2022-38013 Luka w zabezpieczeniach typu "odmowa usługi" na platformie .NET Luka w zabezpieczeniach typu "odmowa usługi" istnieje w ASP.NET Core 3.1 i .NET 6.0, gdzie złośliwy klient może spowodować przepełnienie stosu, co może spowodować atak typu "odmowa usługi", gdy osoba atakująca wyśle dostosowany ładunek analizowany podczas powiązania modelu.


17.0.13 Visual Studio 2022 w wersji 17.0.13

wydany 9 sierpnia 2022 r.

Problemy rozwiązane w tej wersji 17.0.13

  • Rozwiązuje problem z błędem git po aktualizacji 17.1.4 — opinia programu Visual Studio udostępnia opcję oznaczania repozytorium git jako bezpiecznego za pośrednictwem programu Visual Studio.
  • Aktualizacje MinGit do wersji 2.37.1.1, aby rozwiązać problem CVE — CVE-2022-29187 (mitre.org), która ujawniła użytkownikom lukę w zabezpieczeniach, w której przechodzili do repozytorium, którego właścicielem, ale inny użytkownik może zapisywać, mógł zostać wykorzystany do uruchomienia złośliwego kodu.
  • Aktualizacje git dla systemu Windows do wersji 2.37.1.1, zwracając się do CVE-2022-31012.

Biuletyny zabezpieczeń rozwiązane


17.0.12 Visual Studio 2022 w wersji 17.0.12

wydany 12 lipca 2022 r.

Problemy rozwiązane w tej wersji 17.0.12

  • Zaktualizowano bibliotekę LibraryManager, aby uwzględnić zmiany interfejsu API cdnjs
  • Usunięto usterkę polegającą na tym, że edytor tekstów był pusty podczas otwierania dokumentu lub ulegał awarii podczas wpisywania.

Biuletyny zabezpieczeń rozwiązane


17.0.11 Visual Studio 2022 w wersji 17.0.11

wydany 14 czerwca 2022 r.

Problemy rozwiązane w tej wersji 17.0.11

  • Zaktualizowano obok siebie zestaw narzędzi Dev 16.11 C++ do wersji 14.29.30145.00. Najnowsza wersja zestawu narzędzi Dev 16.11 C++ zawiera ważne poprawki błędów, w tym naprawianie wszystkich pozostałych raportów błędów C++20. Aby uzyskać więcej informacji, zapoznaj się z informacjami o wersji 16.11.14.

Zgłaszane na forum Developer Community

Biuletyny zabezpieczeń rozwiązane


17.0.10 Visual Studio 2022 w wersji 17.0.10

wydany 10 maja 2022 r.

Problemy rozwiązane w tej wersji 17.0.10

  • Zaktualizowano narzędzie Git dla systemu Windows używane przez program Visual Studio i instalowany składnik opcjonalny do wersji 2.36.0.1
  • Rozwiązano problem z integracją z usługą Git, który polegał na tym, że w przypadku ściągania/synchronizowania gałęzi, które rozeszły się, okno danych wyjściowych nie wyświetlało zlokalizowanej wskazówki dotyczącej sposobu jego rozwiązania.
  • Rozwiązano problem polegający na tym, że podczas otwierania repozytorium Git w programie Visual Studio okno danych wyjściowych wyświetlało komunikat "Wystąpił co najmniej jeden błąd" zamiast przyczyny wystąpienia błędu i sposobu jego rozwiązywania.
  • Zaktualizowano punkt odniesienia webview2 w usłudze Daytona

Zgłaszane na forum Developer Community

Biuletyny zabezpieczeń rozwiązane

[CVE-2022-29117 Luka w zabezpieczeniach typu "odmowa usługi" platformy .NET Luka w zabezpieczeniach istnieje w programach .NET 6.0, .NET 5.0 i .NET Core 3.1, gdzie złośliwy klient może manipulować plikami cookie i powodować odmowę usługi.

CVE-2022-23267 Luka w zabezpieczeniach typu "odmowa usługi" platformy .NET Core Luka w zabezpieczeniach istnieje w programach .NET 6.0, .NET 5.0 i .NET Core 3.1, gdzie złośliwy klient może spowodować odmowę usługi za pośrednictwem nadmiaru alokacji pamięci za pośrednictwem klienta HttpClient.

CVE-2022-29145 Luka w zabezpieczeniach typu odmowa usługi platformy .NET Luka w zabezpieczeniach istnieje w programach .NET 6.0, .NET 5.0 i .NET Core 3.1, gdzie złośliwy klient może spowodować odmowę usługi, gdy formularze HTML są analizowane.

CVE-2022-24513 Luka w zabezpieczeniach dotycząca podniesienia uprawnień Potencjalna luka w zabezpieczeniach dotycząca podniesienia uprawnień występuje, gdy usługa aktualizatora programu Microsoft Visual Studio nieprawidłowo analizuje lokalne dane konfiguracji.


17.0.9 Visual Studio 2022 w wersji 17.0.9

wydany 19 kwietnia 2022 r.

Problemy rozwiązane w tej wersji 17.0.9

  • Naprawiono regresję vctip.exe z wersji 17.0.8
  • Usunięto usterkę, która uniemożliwiała ładowanie niektórych aplikacji za pomocą narzędzia Sanitizer adresów (ASAN) w systemie Windows 11.
  • Rozwiązano inny problem z usługą ASAN polegający na tym, że w aplikacjach wielowątowych ze rywalizacją o stertę mogły występować zakleszczenia, fałszywe raporty "dzikiego wskaźnika" lub zakleszczenia podczas zamykania procesu.
  • Rozwiązano problem "Nie można zainstalować dowolnego rozszerzenia (vsix) dla programu Visual Studio na maszynie w trybie offline".

17.0.8 Visual Studio 2022 w wersji 17.0.8

wydany 12 kwietnia 2022 r.

Problemy rozwiązane w tej wersji 17.0.8

Zgłaszane na forum Developer Community

Biuletyny zabezpieczeń rozwiązane

CVE-2022-24765 Luka w zabezpieczeniach dotycząca podniesienia uprawnień Istnieje potencjalna luka w zabezpieczeniach podniesienia uprawnień w usłudze Git dla systemu Windows, w której operacje git mogą być uruchamiane poza repozytorium podczas seraching dla katalogu Git. Usługa Git dla systemu Windows została zaktualizowana do wersji 2.35.2.1.

CVE-2022-24767 Luka w zabezpieczeniach dotycząca przejęcia biblioteki DLL potencjalna luka w zabezpieczeniach dotycząca porwania biblioteki DLL istnieje w instalatorze Git dla systemu Windows podczas uruchamiania narzędzia dezinstalatora na koncie użytkownika SYSTEM. Usługa Git dla systemu Windows została zaktualizowana do wersji 2.35.2.1.

CVE-2022-24513 Luka w zabezpieczeniach dotycząca podniesienia uprawnień Potencjalna luka w zabezpieczeniach dotycząca podniesienia uprawnień występuje, gdy usługa aktualizatora programu Microsoft Visual Studio nieprawidłowo analizuje lokalne dane konfiguracji.


17.0.7 Visual Studio 2022 w wersji 17.0.7

wydany 8 marca 2022 r.

Problemy rozwiązane w tej wersji 17.0.7

  • Zwiększona wydajność monitorów o wysokiej szybkości odświeżania.
  • Naprawiono zawieszenie podczas uruchamiania programu Visual Studio dla użytkowników jednostek SKU społeczności.

Zgłaszane na forum Developer Community

Społeczność deweloperów zawiera pełną listę poprawek dostępnych w wersji 17.0.

Biuletyny zabezpieczeń rozwiązane

CVE-2020-8927 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu istnieje w programach .NET 5.0 i .NET Core 3.1, gdzie w wersjach biblioteki Brotli istnieje przepełnienie buforu przed wersją 1.0.8.

CVE-2022-24464 Luka w zabezpieczeniach Odmowa usługi istnieje w programach .NET 6.0, .NET 5.0 i .NET CORE 3.1 podczas analizowania niektórych typów żądań formularzy HTTP.

CVE-2022-24512 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu istnieje na platformie .NET 6.0, .NET 5.0 i .NET Core 3.1, w której występuje przepełnianie buforu stosu w procedurze analizy podwójnej platformy .NET.

CVE-2021-3711 Luka w zabezpieczeniach dotycząca przepełnienia buforu OpenSSL Luka w zabezpieczeniach potencjalnego przepełnienia buforu istnieje w programie OpenSSL, który jest używany przez usługę Git dla systemu Windows. Usługa Git dla systemu Windows została zaktualizowana do wersji 2.35.1.2, która rozwiązuje ten problem.


17.0.6 Visual Studio 2022 w wersji 17.0.6

wydany 8 lutego 2022 r.

Problemy rozwiązane w tej wersji 17.0.6

Biuletyny zabezpieczeń rozwiązane

CVE-2022-21986 Luka w zabezpieczeniach odmowa usługi istnieje w programach .NET 5.0 i .NET 6.0, gdy serwer internetowy Kestrel przetwarza określone żądania HTTP/2 i HTTP/3


17.0.5 Visual Studio 2022 w wersji 17.0.5

wydany 13 stycznia 2022 r.

Problemy rozwiązane w tej wersji 17.0.5

  • Rozwiązano problem z okazjonalnym wystąpieniem, w którym program VSInstr nie zakończył się podczas instrumentacji binarnej z nietrwałymi metadanymi, co powodowało niepowodzenie profilowania instrumentacji.
  • Rozwiązano problemy polegające na tym, że plik link.exe czasami ulega awarii lub zawieszał się podczas tworzenia pliku PDB wraz z plikiem binarnym.
  • Usunięto usterkę w C++ Concurrency::p arallel_for_each, która ulegała awarii procesu wywołującego z powodu przepełnienia liczby całkowitej.
  • Usunięto usterkę w porównaniach CString atL w trybach języka C++20 i C++Latest.
  • Naprawiono awarię podczas wykonywania pliku binarnego PGI-ed na arm64 i arm64ec, gdy była używana duża liczba sond pogo.
  • Rozwiązano problem polegający na optymalizacji bardzo dużych funkcji, który mógł generować niepoprawny kod.

17.0.4 Visual Studio 2022 w wersji 17.0.4

wydany 16 grudnia 2021 r.

Problemy rozwiązane w tej wersji 17.0.4

  • Dodaje obsługę środowiska Xcode 13.2.

17.0.3 Visual Studio 2022 w wersji 17.0.3

wydany 14 grudnia 2021 r.

Problemy rozwiązane w tej wersji 17.0.3

Renderowanie znaków kontrolki tekstu dwukierunkowego

Aby zapobiec potencjalnie złośliwemu wykorzystaniu, który umożliwia błędne przedstawienie kodu, edytor programu Visual Studio nie zezwala już na dwukierunkowe znaki sterujące tekstem w celu manipulowania kolejnością znaków na powierzchni edycji. Nowa opcja spowoduje, że te dwukierunkowe znaki sterujące tekstem będą wyświetlane z symbolami zastępczymi. Dwukierunkowe znaki sterujące tekstem będą nadal obecne w kodzie, ponieważ to zachowanie ma wpływ tylko na to, co jest renderowane w edytorze kodu.

VS with bidirectional text control characters replaced with placeholders

Ta funkcja jest kontrolowana w obszarze Narzędzia\Opcje. Na stronie Edytor tekstu\Ogólne istnieje opcja "Pokaż znaki kontrolki tekstu dwukierunkowego", która będzie domyślnie sprawdzana. Po zaznaczeniu wszystkie dwukierunkowe znaki kontrolki tekstu będą renderowane jako symbole zastępcze. Usunięcie zaznaczenia opcji spowoduje przywrócenie poprzedniego zachowania, w którym te znaki nie są renderowane.

Znak Unicode jest uważany za dwukierunkowy znak kontrolki tekstu, jeśli znajduje się w dowolnym z następujących zakresów: U+061c, U+200e-U+200f, U+202a-U+202e, U+2066-U+2069.

  • Naprawiono awarię Projektant formularzy sieci Web
  • Rozwiązano problem polegający na tym, że uzupełnianie CSS dla pliku !important powodowało wstawianie tekstu w niewłaściwej lokalizacji w plikach HTML lub Razor.
  • Naprawiono regresję przy użyciu języka XAML zestawu narzędzi Xamarin.Forms Przeładowywanie na gorąco powodującym konflikt z bibliotekami, które współużytkują podobne zależności, takie jak SignalR. Przeładowywanie na gorąco XAML zestawu narzędzi Xamarin.Forms powinny teraz mieć możliwość współdziałania niezależnie od tego, co zostało załadowane w aplikacji.
  • Rozwiązano problem polegający na tym, że czasami strony przeglądu projektu, narzędzia diagnostyczne lub okna profilera wydajności stały się puste.
  • Rozwiązano problem podczas edytowania plików razor, w którym kursor czasami przechodził do innej lokalizacji w połowie pisania.

Zgłaszane na forum Developer Community

Społeczność deweloperów zawiera pełną listę poprawek dostępnych w wersji 17.0.

Biuletyny zabezpieczeń rozwiązane

CVE-2021-43877 Luka w zabezpieczeniach platformy .NET Luka w zabezpieczeniach dotycząca podniesienia uprawnień istnieje w narzędziu ANCM, co może umożliwić podniesienie uprawnień, gdy aplikacje platformy .NET Core, .NET 5 i .NET 6 są hostowane w usługach IIS.

CVE-2021-42574 Dwukierunkowa luka w zabezpieczeniach dotycząca tekstu dwukierunkowego może służyć do renderowania kodu w edytorze niezależnie od tego, co znajduje się na dysku.


17.0.2 Visual Studio 2022 w wersji 17.0.2

wydany 30 listopada 2021 r.

Problemy rozwiązane w tej wersji 17.0.2

  • Poprawka dotycząca generowania kodu w trybie dyskretnym zły przy użyciu operacji podobnych do memmove z nakładającymi się danymi
  • Dodano obsługę komunikatów w oknie danych wyjściowych wyświetlanych podczas korzystania z modułów języka C++ lub jednostek nagłówka. Zawiera to obecnie znane problemy związane z używaniem modułów lub jednostek nagłówka z funkcją IntelliSense.
  • Rozwiązano problem ze stronami przeglądu narzędzia CMake i edytorem CMake Ustawienia zablokowanym w ciągu "Oczekiwanie na zakończenie inicjowania funkcji IntelliSense..."
  • Rozwiązano problem polegający na tym, że szablonowy destruktor biorący udział w hierarchii klas z inicjatorami składowymi danych mógł zostać utworzone zbyt wcześnie, co potencjalnie prowadzi do nieprawidłowej diagnostyki dotyczącej użycia niezdefiniowanych typów lub innych błędów.
  • Dodano środowisko Python 3.9.7 do obciążenia języka Python. Usunięto język Python 3.7.8 z powodu luki w zabezpieczeniach.
  • Rozwiązano problem polegający na tym, że polecenie Znajdź dalej (F3) i Znajdź dalej (Ctrl+F3) czasami przechodziło do pierwszego wystąpienia w pliku zamiast następnego wystąpienia.
  • Rozwiąż problem polegający na tym, że daty w interfejsach użytkownika kontroli wersji nie były zgodne z ustawieniami regionalnymi systemu operacyjnego klienta.
  • Rozwiąż problem w systemie Windows 11, w którym klienci ustawili Terminal Windows jako domyślne, a debuger nie może poprawnie zatrzymać debugowania aplikacji konsolowej i zapobiec przyszłym uruchomieniom.

Zgłaszane na forum Developer Community

Społeczność deweloperów zawiera pełną listę poprawek dostępnych w wersji 17.0.


17.0.1 Visual Studio 2022 w wersji 17.0.1

wydany 16 listopada 2021 r.

Problemy rozwiązane w tej wersji 17.0.1

  • Naprawiono awarię podczas korzystania z kompilacji wsadowych.
  • Naprawiono awarię podczas uruchamiania projektów platformy Xamarin.Forms z włączonym Przeładowywanie na gorąco XAML.

Zgłaszane na forum Developer Community

Społeczność deweloperów zawiera pełną listę poprawek dostępnych w wersji 17.0.

17.0.0 Visual Studio 2022 w wersji 17.0.0

wydany 8 listopada 2021 r.

Podsumowanie nowości w tej wersji programu Visual Studio 2022 w wersji 17.0.0

64-bitowy

  • plik devenv.exe jest teraz tylko 64-bitowy

usług Azure Cloud Services

  • Nowe projekty usługi Azure Cloud Service (klasycznej) nie są obsługiwane z powodu wycofania się na platformie Azure dla nowych klientów. Zalecane są projekty usługi w chmurze platformy Azure (wsparcie dodatkowe).
  • Istniejące projekty usługi Azure Cloud Service (klasyczne) można otwierać i są w pełni obsługiwane.

C++

  • Narzędzia kompilacji w wersji 143 są teraz dostępne za pośrednictwem instalatora programu Visual Studio, a także autonomicznych narzędzi kompilacji.
  • Nowe środowisko Przeładowywanie na gorąco jest teraz dostępne dla natywnych aplikacji języka C++ podczas uruchamiania w debugerze. Obsługuje zarówno projekty MSBuild, jak i CMake. Aby uzyskać więcej informacji, zobacz naszą sekcję Przeładowywanie na gorąco poniżej.
  • Teraz można kompilować i debugować natywnie w systemie WSL2 bez ustanawiania połączenia SSH. Obsługiwane są zarówno międzyplatformowe projekty CMake, jak i projekty systemu Linux oparte na programie MSBuild.
  • Program Visual Studio obsługuje buildPresets.targets teraz opcję w pliku CMakePresets.json. Dzięki temu można utworzyć podzbiór obiektów docelowych w projekcie CMake.
  • Menu Project w projektach CMake zostało usprawnione i uwidacznia opcje "Usuń pamięć podręczną i ponownie skonfiguruj" i "Wyświetl pamięć podręczną".
  • Strony przeglądu narzędzia CMake zostały zaktualizowane w celu obsługi pliku CMakePresets.json.
  • Zaimplementowana /scanDependencies flaga do wyprowadzania zależności modułów C++20 dla projektów CMake zgodnie z opisem w artykule P1689r4. Jest to krok w kierunku obsługi tworzenia projektów opartych na modułach za pomocą narzędzia CMake i pracujemy nad ukończeniem tej obsługi w kolejnych wersjach.
  • Teraz można debugować procesy uruchomione w systemach zdalnych z poziomu programu Visual Studio za pomocą usługi LLDB.
  • Uaktualniliśmy wersję narzędzia CMake dostarczoną z programem Visual Studio do wersji 3.21. Zobacz informacje o wersji narzędzia CMake 3.21, aby uzyskać szczegółowe informacje na temat dostępnych informacji.
  • Narzędzia LLVM dostarczane z programem Visual Studio zostały uaktualnione do maszyny WIRTUALNEJ LLVM 12. Aby uzyskać szczegółowe informacje, zobacz informacje o wersji maszyny wirtualnej LLVM.
  • Zestaw narzędzi MSVC domyślnie domyślnie określa skrót sha-256 źródła w rekordach debugowania. Wcześniej zestaw narzędzi domyślnie używał rozwiązania MD5 do tworzenia skrótów źródłowych.
  • Programowanie gier w języku C++ teraz instaluje najnowszy aparat Unreal Engine z obsługą programu Visual Studio 2022.
  • Wprowadzono ulepszenia w funkcji IntelliSense języka C++ podczas udostępniania wyróżniania nawigacji i składni dla typów z zaimportowanych modułów i jednostek nagłówka.
  • Ulepszona wydajność funkcji IntelliSense języka C++, optymalizując użycie buforowanego nagłówka i dostęp do bazy danych symboli, zapewniając ulepszone czasy ładowania umożliwiające przejście do kodu.
  • Funkcja Linter kodu IntelliSense dla języka C++ jest teraz domyślnie włączona, zapewniając błyskawiczne sugestie podczas wpisywania i naprawianie sugestii dotyczących typowych wad kodu.
  • Obsługa biblioteki libfuzzer pod przełącznikiem -fsanitize=fuzzer. Więcej szczegółów można znaleźć w dokumentacji.
  • Ulepszyliśmy wykrywanie wyłusek wskaźnika null w naszych narzędziach do analizy kodu.
  • Analiza kodu wymusza teraz, aby zwracały wartości funkcji z adnotacjami _Check_return_ lub _Must_inspect_result_ muszą być sprawdzane.
  • Dodano obsługę analizy gsl::not_null kodu.
  • Zaktualizowano do wersji NDK r21 LTS w obciążeniu C++ Mobile Development.
  • Nagłówki C++ AMP są teraz przestarzałe. Uwzględnienie <amp.h> w projekcie języka C++ spowoduje wygenerowanie błędów kompilacji. Aby wyciszyć błędy, zdefiniuj wartość _SILENCE_AMP_DEPRECATION_WARNINGS. Aby uzyskać więcej informacji, zobacz nasze linki amp deprecation.

Debugowanie i diagnostyka

  • Ulepszenia okna dialogowego Dołączanie do procesu
  • Ulepszenia pomocnika wyjątków
  • Wymuś uruchomienie, aby kliknąć
  • Analiza diagnostyczna zrzutu pamięci
  • Opublikowaliśmy nowy typ punktu przerwania o nazwie Zależny punkt przerwania, który umożliwia skonfigurowanie punktu przerwania tak, aby był włączony tylko wtedy, gdy kolejny punkt przerwania zostanie trafiony po raz pierwszy.
  • Dodaliśmy więcej aktualizacji do węzła Extrenal Sources (Źródła extrenal), teraz można zobaczyć moduł w podwęźle "Moduły bez źródeł" i załadować symbole formularza eksploratora rozwiązań.
  • Ulepszenia punktu przerwania Gutter
  • Tymczasowy punkt przerwania
  • Przeciąganie i upuszczanie punktu przerwania
  • Węzeł źródła zewnętrznego w Eksplorator rozwiązań
  • Ulepszenia okna dialogowego Dołączanie do procesu

Personalizacja

  • Dodano karty kolorów dla kart pionowych i poziomych
  • Dodano pakiet motywów i pracowaliśmy z autorami motywów programu VS Code w celu uruchomienia kolekcji motywów niestandardowych
  • Wbudowany konwerter motywów do konwertowania motywów programu VS Code na pracę w programie Visual Studio 2022
  • Dodano możliwość synchronizowania motywu programu Visual Studio z motywem systemu Windows
  • Dodano nowe funkcje zarządzania dokumentami, w tym dostosowywanie szerokości karty, pogrubienie aktywnego dokumentu i dodatkowy przycisk zamknięcia w docwell.

Edytor

  • Dodano nawigację podwordu
  • Automatyczne zapisywanie jest teraz dostępne jako funkcja w wersji zapoznawczej
  • Środowisko kopiowania/wklejania wielodaszka

Możliwości rozszerzania

  • Usunięto interfejsy API z zestawów Microsoft.VisualStudio.Language.Client
  • Zestaw VS SDK zawiera kilka zmian powodujących niezgodność, a rozszerzenia programu Visual Studio 2019 nie będą działać w 2022 roku. Aby uzyskać więcej informacji, zobacz dokumentację zestawu VSSDK.
  • Zestawy referencyjne zestawu VS SDK nie są już zainstalowane w folderze VSSDK\VisualStudioIntegration\Common\Assemblies . Jeśli kompilacja polegała na tych zestawach, przeprowadź migrację projektu, aby zamiast tego używać pakietów NuGet. W przypadku scenariuszy offline:
    1. Zachowaj źródło danych nuget w organizacji, z którego mają być przywracane pakiety nuget.
    2. Zaewidencjonuj pliki binarne.
  • Dodano poprawki zmian powodujących niezgodność elementu ILanguageClient

Cloud Services

  • Azurite będzie używany do lokalnego emulacji usługi Azure Storage zamiast starszej i nie będzie już aktywnie opracowywany emulator usługi Azure Storage.

Narzędzia git

Menu Pomoc

  • W wersji 17.0 zmieniliśmy model menu Pomocy z materiałem Wprowadzenie i przydatnymi Wskazówki/Tricks.
  • Zapewnia większą współpracę z naszym zespołem deweloperów, dodając takie elementy jak dostęp do społeczności deweloperów, informacje o wersji, plan produktu Visual Studio i strony mediów społecznościowych.

środowisko Przeładowywanie na gorąco

  • Przeładowywanie na gorąco jest teraz dostępny dla deweloperów platformy .NET za pośrednictwem debugera programu Visual Studio i bez debugera dla wielu typów aplikacji platformy .NET 6
  • Przeładowywanie na gorąco jest teraz dostępna dla deweloperów języka C++ podczas korzystania z debugera programu Visual Studio

Aby uzyskać więcej informacji, zobacz powyższy link

IntelliCode

  • KtoTo le uzupełniania wierszy przewiduje następny fragment kodu języka C# na podstawie bieżącego kontekstu i przedstawia go jako sugestię śródwierszową po prawej stronie kursora.
  • KtoTo le uzupełniania linii są teraz zgodne z najnowszymi kompilacjami JetBrains ReSharper. Należy pamiętać, że aktualizacja kontekstu uzupełniania wiersza na podstawie niestandardowego wyboru elementów listy uzupełniania reSharper nie jest obsługiwana — jeśli jest to wymagane, użytkownicy usługi ReSharper mogą zdecydować się na używanie natywnej funkcji IntelliSense programu Visual Studio, zgodnie z dokumentacją tutaj

JavaScript/TypeScript

  • Opublikowaliśmy nowy typ projektu JavaScript/TypeScript, który kompiluje autonomiczne projekty JavaScript/TypeScript z dodatkowymi narzędziami. Będzie można tworzyć projekty Angular i React w programie Visual Studio przy użyciu wersji platformy zainstalowanej na komputerze.
  • Testowanie języka JavaScript i TypeScript jest teraz dostępne w Eksploratorze testów programu Visual Studio
  • Dostępny graficzny interfejs użytkownika narzędzia NPM, dzięki czemu można teraz pobrać moduły NPM w taki sam sposób, jak w przypadku pobierania pakietów NuGet

Zestaw SDK platformy .NET 6

  • Zestaw .NET 6 SDK jest dołączony do programu Visual Studio 2022

Produktywność platformy .NET

  • Wprowadzenie refaktoryzacji parametrów może przenieść nowy parametr z implementacji metody do elementów wywołujących.
  • Śledzenie źródła wartości na potrzeby analizy przepływu danych
  • Opcja podkreślnia zmiennych, które są ponownie przypisane
  • Dodano opcję wyszukiwania w oknie dialogowym Generowanie przesłonięć
  • Szybkie informacje dotyczące tagów kodu> XML <zachowują teraz białe znaki i bloki CDATA
  • Okno Znajdź wszystkie odwołania będzie teraz grupowanie projektów wielokierunkowych
  • Refaktoryzacja w celu usunięcia powtarzających się typów w Visual Basic
  • Przejdź do pozycji Implementacja nie będzie już przechodzić do elementów członkowskich z deklaracjami abstrakcyjnymi, które również są zastępowane.
  • Synchronizowanie przestrzeni nazw w celu dopasowania ich do struktury folderów z Eksplorator rozwiązań
  • Konfigurowanie analizy kodu w tle z Eksplorator rozwiązań
  • Typy referencyjne dopuszczane do wartości null są teraz domyślnie włączone dla nowych projektów platformy .NET
  • Refaktoryzacja przestrzeni nazw o zakresie plików w języku C# 10.0
  • Przechodzenie do dekompilowanych źródeł jest teraz domyślnie włączone
  • Refaktoryzacja w celu preferowania sprawdzania typu o wartości null
  • Komentarze XML będą teraz automatycznie generować <exception> tag, gdy metoda jawnie zgłasza wyjątki
  • Margines dziedziczenia jest teraz domyślnie włączony

Języki programowania

  • C#10

Edytor Razor (ASP.NET Core)

  • Zmniejszona wydajność interfejsu użytkownika zawiesza się i poprawia wydajność podczas uruchamiania rozwiązania
  • Szybsze kolorowanie semantyczne do 2x w niektórych rozwiązaniach
  • Obsługa języka F7 (wyświetlanie kodu) w plikach Razor
  • Obsługa fragmentów kodu w plikach razor, które zakończą sesję fragmentu kodu za pomocą jednej karty zamiast naciskania klawisza tab-tab
  • Lepsze formatowanie w blokach w @code przypadku zagnieżdżenia składników HTML i Razor
  • obsługa Przeładowywanie na gorąco w plikach Razor
  • usprawnienia dotyczące wydajności
  • Ulepszenia formatowania i wcięcia
  • Nowe kolory edytora Razor
  • Narzędzia TagHelpers są teraz kolorowane i mają obsługę szybkiej klasyfikacji informacji i etykietki narzędzi uzupełniania
  • Wyróżnianie nawiasów klamrowych i nawigacja dla konstrukcji Razor
  • Komentarze mają teraz automatyczne uzupełnianie, inteligentne wcięcie, automatyczne dołączanie kontynuacji komentarzy i nawigację po komentarzach

Testowanie zdalne

  • Bardzo wczesna eksperymentalna wersja zapoznawcza włączania uruchamiania testów w środowiskach zdalnych, takich jak kontenery systemu Linux, program WSL i połączenia SSH.

Obsługa narzędzi do testowania

  • Pokaż w Eksploratorze testów
  • Nowe wersje platformy testowej począwszy od wersji 17.0 nie będą mogły uruchamiać testów ogólnych i uporządkowanych testów. Te konkretne funkcje są dostarczane tylko w ramach wczesnej wersji msTestv1 i nie są uwzględnione w MSTestv2. Widzimy bardzo niskie użycie tych funkcji i uporządkowane testy są teraz uważane za sprzeczne z najlepszymi rozwiązaniami testowych.
  • Niektóre środowiska testowe nie będą dostępne w wersji 17.0, w tym w tworzeniu nowych plików Test Ustawienia i Edytorze testów Ustawienia. Przebiegi testów nadal będą mogły używać plików Test Ustawienia jednak Test Ustawienia został zastąpiony poleceniem Uruchom Ustawienia i zachęcamy użytkowników do migracji ulepszonej wydajności i funkcjonalności. Dowiedz się więcej.
  • Aktualizacje obsługi testu obciążeniowego internetowego i kodowanego testu interfejsu użytkownika. Kodowane testy interfejsu użytkownika i [Testy obciążenia sieci Web](Usługa testowania obciążenia opartego na chmurze — koniec życia | Blog usługi Azure DevOps (microsoft.com) został oficjalnie przestarzały w 2019 roku. Aby zminimalizować wpływ na użytkowników, w programie Visual Studio 2022 jest minimalna obsługa tych funkcji. Zdecydowanie zachęcamy użytkowników do wyłączenia kodowanego testu interfejsu użytkownika i internetowego testu obciążeniowego.

Populacja przybornika dla zestawów SDK rozszerzeń platformy UWP

  • Zestawy SDK rozszerzeń platformy UWP są teraz wymagane do jawnego deklarowania typów, które mają być wyświetlane w przyborniku, wyświetlając je w pliku SdkManifest.xml. Zachowanie starszych wersji programu Visual Studio nie zmienia się; Będą ignorować listę kontrolek w manifeście i zamiast tego dynamicznie wyliczają typy kontrolek w zestawach zestawu SDK.

Zaufane lokalizacje

  • Odświeżyliśmy funkcję "Ufaj Ustawienia" i teraz możemy wyświetlić ostrzeżenie za każdym razem, gdy niezaufany kod (np. pliki, projekty lub foldery) zostanie otwarty w środowisku IDE.
  • Testy zaufania są teraz wykonywane na poziomie folderu rozwiązania
  • Projekty utworzone przez użytkownika są automatycznie dodawane do listy zaufanych
  • Użytkownicy mogą pominąć kontrole zaufania w lokalizacjach tymczasowych utworzonych przez program Visual Studio

Aktualizacje, wdrożenia LTSC i

  • W programie Visual Studio 2022 będzie wiele równoczesnych obsługiwanych planów bazowych obsługi, które zostaną wydane jesienią i wiosną. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją rytmu wydania programu Visual Studio i cyklem życia produktu Visual Studio 2022.
  • Nowy instalator dostarczany z programem Visual Studio 2022 ma teraz możliwość konfigurowania miejsca, w którym produkt Visual Studio powinien pobierać aktualizacje. Dzięki temu możesz wybrać aktualizacje z innej wersji LTSC lub, jeśli jesteś w zarządzanym środowisku przedsiębiorstwa, możesz skonfigurować klienta w celu pobrania aktualizacji z układu. Możliwość skonfigurowania źródła aktualizacji to nowa funkcja, która jest dostarczana z Instalator programu Visual Studio, a tym samym zachowanie ma zastosowanie również do starszych wersji programu Visual Studio, takich jak Visual Studio 2019. Aby uzyskać dodatkowe informacje na temat konfigurowania kanału aktualizacji, zapoznaj się z dokumentacją aktualizacji programu Visual Studio . Aby uzyskać dodatkowe informacje na temat tworzenia tej pracy dla układów sieciowych, zapoznaj się z przewodnikiem dotyczącym Administracja istratorów programu Visual Studio.
  • Administracja istratorzy IT mogą teraz zgłaszać problemy bez konieczności instalowania programu Visual Studio.

Interfejs użytkownika

  • Ikony domyślne zostały zaktualizowane i odświeżone.

Narzędzia sieci Web

  • Strona Podsumowanie publikowania zawiera teraz akcje uruchamiania/zatrzymywania zdalnego debugowania i profilowania w obszarze "...". menu w prawym górnym rogu sekcji "Hosting"
  • Strona usługi Połączenie ma teraz akcję uruchamiania Eksplorator usługi Storage
  • Szablon "ASP.NET Core Empty" dostarczany z platformą .NET 6 używa nowego paradygmatu "minimalnych interfejsów API" , dla którego zaczęliśmy dodawać obsługę
  • Azurite będzie używany do lokalnego emulacji usługi Azure Storage zamiast starszej i nie będzie już aktywnie opracowywany emulator usługi Azure Storage.
  • Uwierzytelnianie można dodać do aplikacji ASP.NET Core przy użyciu Platforma tożsamości Microsoft za pomocą środowiska usług Połączenie w programie Visual Studio.

Projektant XAML WPF dla platformy .NET Framework

  • Bieżąca Projektant WPF XAML dla platformy .NET Framework została zastąpiona nowym Projektant WPF XAML dla platformy .NET Framework na podstawie tej samej architektury używanej dla Projektant WPF XAML dla platformy .NET (.NET Core). Środowisko programu Visual Studio będzie wyglądać tak samo, ale dostawcy kontroli innych firm muszą obsługiwać nowy model rozszerzalności, ponieważ poprzedni model oparty na .design.dll i Microsoft.Windows.Design.Extensibility jest przestarzały. Jeśli utworzono .designtools.dll już rozszerzenie dla platformy .NET (.NET Core), to samo rozszerzenie będzie działać dla nowej Projektant WPF XAML dla platformy .NET Framework. Aby uzyskać więcej informacji na temat migracji do nowego modelu rozszerzalności, zapoznaj się z poniższym dokumentem migracji.

Gorące ponowne ładowanie XAML

  • Zmiany Przeładowywanie na gorąco XAML — drobne zmiany paska narzędzi i ustawień w aplikacji

Wersja zapoznawcza XAML na żywo

  • Wersja zapoznawcza języka XAML na żywo jest teraz dostępna dla deweloperów WPF, UWP, WinUI i Xamarin.Forms, które uruchamiają swoje aplikacje w emulatorze systemu Android lub jako aplikacja klasyczna platformy UWP. Podgląd na żywo przechwytuje działający interfejs użytkownika aplikacji i przenosi go do zadokowanego okna w programie Visual Studio. Ułatwia to korzystanie z Przeładowywanie na gorąco XAML w celu zmiany aplikacji podczas wyświetlania tych zmian w samym programie Visual Studio bez konieczności używania klawisza Tab między uruchomioną aplikacją a programem Visual Studio podczas wprowadzania zmian w kodzie XAML na żywo.

Aby uzyskać więcej informacji, kliknij powyższy link.

Przykładowe dane XAML

  • Przykładowe dane w czasie projektowania będą teraz domyślnie dodawane podczas tworzenia kontrolek DataGrid, ListBox i ListView z przybornika w aplikacjach WPF. Aby wyłączyć to zachowanie, usuń zaznaczenie pola wyboru "Automatycznie dodaj przykładowe dane podczas tworzenia elementów" w obszarze Narzędzia — Opcje —>> Projektant XAML".
  • Aby dowiedzieć się więcej na temat przykładowych danych, odwiedź dokumentację przykładowych danych.

Ulepszone środowisko powiązań XAML

  • Wprowadziliśmy kilka ulepszeń, aby szybko i łatwo powiązać dane, takie jak szybki dostęp do okna dialogowego Powiązanie danych z inspektora właściwości, możliwość ustawiania powiązania z funkcji Szybkie akcje, możliwość wybierania właściwości do powiązania wewnątrz okna dialogowego Powiązanie danych.

Aby uzyskać więcej informacji, kliknij powyższy link.

Znane problemy

Programowanie aplikacji mobilnych za pomocą platformy .NET

Narzędzia języka Python

C++ IntelliSense

Szczegóły nowości w tej wersji programu Visual Studio 2022 w wersji 17.0.0

Debugowanie i diagnostyka

  • Ulepszenia okna dialogowego Dołączanie do procesu
  • Nowy widok listy procesów nadrzędny/podrzędny za pomocą przełącznika w dolnej części okna
    • Wybór widoku powinien być utrwalone.
    • Lewa klawiatura na klawiaturze przechodzi do procesu nadrzędnego w widoku nadrzędnym/podrzędnym.
    • Wszystkie kolumny powinny być sortowane tak jak oryginalny widok.
  • Kolumna Nowy wiersz polecenia jest dostępna w obu widokach.
  • Nazwa puli aplikacji jest wyświetlana w sekcji "Kolumna tytułu" dla procesów w3wp

! [Dołącz do procesu ] (media/17.0/17.0_P2_attach_to _process_3.png)

  • Dodano pomocnika wyjątków w bloku catch. Spowoduje to wyświetlenie pomocnika wyjątku z odpowiednimi informacjami o wyjątku, gdy krok zarządzany powoduje zgłoszenie wyjątku, a krok zostanie ukończony w bloku przechwytywania.
  • Nowy przycisk "kontynuuj": pokazujący pomocnik wyjątku dla wyjątków "złapanych".

Exception Handler Updates

  • Dodaliśmy opcję Wymuś uruchomienie, aby kliknąć polecenie , aby uruchomić debuger do momentu osiągnięcia wybranego położenia kursora podczas ignorowania wszystkich punktów przerwania między nimi.
  • Możesz to wykonać, klikając polecenie "Wymuś uruchomienie do kliknięcia" w menu prawym przyciskiem myszy w żądanym wierszu kodu.

Force Run to Cursor

  • Gdy aplikacja jest w trybie debugowania, możesz również wykonać polecenie "Wymuś uruchomienie do kliknięcia", klikając zielony glyph, który pojawia się obok wiersza kodu, gdy wskaźnik myszy został zatrzymany podczas przytrzymywania klawisza SHIFT.

Force Run to Cursor Glyph

  • Analiza diagnostyczna zrzutu pamięci
    • Ulepszyliśmy aparat analizatora, aby znaleźć więcej problemów z synchronizacją za pośrednictwem asynchronicznych w ASP.NET Core pamięci.
    • Znajdź, które części kodu zużywają najwięcej zasobów procesora CPU, przeglądając 5 pierwszych wątków według czasu procesora CPU.
    • Przejrzyj całą zarządzaną stertę pod kątem oznak ciśnienia pamięci w generacji 0, 1, 2 i stercie dużych obiektów.
    • Jeśli masz zrzut awaryjny, możesz kuckly znaleźć drugi prawdopodobieństwo wyjątku i wątku, który spowodował awarię aplikacji.
    • Masz trudności z utworzeniem hipotezy diagnostycznej? Gdy dokładna przyczyna awarii lub zawieszenia nie jest dobrze znana, możesz użyć analizatora wyjątków, aby szybko znaleźć i przejrzeć wszystkie wyjątki na stercie.
    • W tych momentach, gdy analiza pamięci jest ważna, ulepszyliśmy heurystyka analizatora kolejki Finalizer. Teraz koncentrujemy się na kodzie i wykluczamy obiekty zarządzane przez platformę .NET Framework.

Zależny punkt przerwania

Jest to nowy punkt przerwania, który umożliwia użytkownikowi skonfigurowanie punktu przerwania do włączenia tylko wtedy, gdy pierwszy punkt przerwania zostanie osiągnięty. Podczas debugowania debuger programu Visual Studio wstrzyma aplikację tylko w zależnym punkcie przerwania, jeśli zostanie osiągnięty punkt przerwania wymagań wstępnych. Dowolny punkt przerwania można przekonwertować na zależny punkt przerwania, włączając pole wyboru "Włącz tylko po osiągnięciu punktu przerwania obserwowanego" w oknie ustawień i wybierając punkt przerwania wymagań wstępnych z listy rozwijanej, na której chcesz skonfigurować zależny punkt przerwania.

Dependent Breakpoint

Ulepszenia punktu przerwania Gutter

Dodaliśmy nowy glyph punktu przerwania, aby wskazać lokalizację, w której użytkownik może ustawić punkt przerwania.

Breakpoint Glyph

Kliknięcie prawym przyciskiem myszy tego punktu przerwania spowoduje nadanie nowego menu kontekstowego z opcjami; umożliwia szybkie tworzenie punktów przerwania z wyprzedzeniem (warunkowy punkt przerwania, punkt śledzenia i tymczasowy punkt przerwania) w mniejszej liczbie kliknięć.

Breakpoint Context Menu

Tymczasowy punkt przerwania

Jest to nowy punkt przerwania, który umożliwia użytkownikowi przerwanie kodu tylko raz. Podczas debugowania debuger programu Visual Studio wstrzymuje tylko środowisko uruchomieniowe aplikacji raz dla tego punktu przerwania i usuwa je natychmiast po jego trafieniu. Dowolny punkt przerwania można przekonwertować na tymczasowy punkt przerwania, włączając pole wyboru "Usuń punkt przerwania po trafieniu" w oknie ustawień. Alternatywnie możesz użyć nowego menu kontekstowego kliknięcia prawym przyciskiem myszy z punktu przerwania, aby ustawić ten punkt przerwania.

Temporary Breakpoint

Przeciąganie i upuszczanie punktu przerwania

Dodaliśmy gest przeciągania i upuszczania dla punktów przerwania. Możesz teraz przechowywać punkt przerwania i zwalniać go w żądanym wierszu kodu, aby przenieść punkt przerwania z jednej lokalizacji do innej. Działa on dla naszego punktu przerwania z wyprzedzeniem, o ile zmienne akcje/warunek znajdują się w kontekście.

Drag and Drop Breakpoint

Węzeł źródła zewnętrznego w Eksplorator rozwiązań

Dodaliśmy nowy węzeł "Źródła zewnętrzne" w Eksploratorze rozwiązań. Ta funkcja będzie obecnie wyświetlana tylko podczas debugowania i będzie wyświetlać źródła dla zarządzanych modułów z symbolami załadowanymi, które zawierają informacje o serwerze źródłowym lub linku źródłowego. Podczas debugowania wszystkie załadowane pliki symboli zarządzanych (.pdb), które zawierają informacje o serwerze źródłowym, będą wyświetlane w tym węźle. Możesz przeglądać pliki, takie jak dowolny inny folder Eksploratora rozwiązań, lub kliknąć dwukrotnie element, aby pobrać plik z serwera źródłowego i otworzyć go w edytorze programu VS. External Sources node in Solution explorer

Ulepszenia okna dialogowego dołączania do procesu

Dodaliśmy nowe pole wyboru automatycznego odświeżania w oknie dialogowym dołączania do procesu , które po zaznaczeniu odświeża listę procesów automatycznie przy użyciu dostępnych procesów. Nowa opcja "Wybierz dowolne okno z pulpitu" z okna dialogowego dołączania do procesu umożliwia użytkownikowi wybranie dowolnego uruchomionego okna z pulpitu i dołączenie go do skojarzonego procesu debugowania.

Attach to process Dialog Improvements

Analiza diagnostyczna zrzutu pamięci

Znalezienie ramek wywołań głównych, gdy wystąpi wyjątek Stack Overflow, może być trudne i czasochłonne. Nasze najnowsze analizatory przedstawiają wygodny widok stosu wywołań i usuwa ramki reetititive i hałaśliwe w celu szybszej analizy problemów.

Personalizacji

Konwertowanie motywów programu VS Code na motywy programu Visual Studio

Utworzyliśmy narzędzie Konwerter motywów, które umożliwia konwertowanie motywów programu VS Code na działanie w programie Visual Studio. Wypróbuj to tutaj.

Nowy pakiet motywów programu Visual Studio

Domyślne motywy programu VS Code są teraz dostępne jako pakiet motywów programu Visual Studio. Przyjrzyj się pakietowi motywów tutaj.

Synchronizowanie motywu z systemem operacyjnym Windows

Dodaliśmy możliwość synchronizowania motywu programu Visual Studio z motywem systemu Windows, dzięki czemu motyw może być dostosowany na podstawie dostępnej ilości światła otoczenia. Aby to włączyć, przejdź do pozycji Narzędzia > Motyw > użyj ustawienia systemowego.

Karty kolorów

Aby włączyć karty kolorów, przejdź do pozycji Narzędzia > Opcje > kart i okna i włącz kolorowanie kart.

Color tabs

Edytor

Nawigacja podwordu

Ctrl+Alt+Strzałka w lewo i Ctrl+Alt+Strzałka w prawo będzie teraz nawigować według podwordu. Na przykład ciąg "HelloWorld" identyfikuje ciąg "Hello" i "World" jako subwords. Włączenie nawigacji podwordu w Narzędzia > Opcje > Edytor > tekstu Ogólne spowoduje, że polecenia związane ze słowem (np. TransponujWord) będą współdziałać z podwzmianami.

Autozapisywanie

W obszarze Narzędzia > Opcje > środowiska > w wersji zapoznawczej funkcje autozapisu jest teraz dostępne. Jeśli ta opcja zostanie włączona, gdy aplikacja programu Visual Studio utraci fokus (np. inne okno zostanie fokus), wszystkie brudne dokumenty zostaną zapisane na dysku, jeśli to możliwe. Jeśli nie można zapisać żadnego pliku, pozostanie on zanieczyszczony, dopóki użytkownik jawnie go zapisze (za pomocą poleceń Zapisz lub Zapisz jako).

Środowisko kopiowania\wklejania z wieloma karetkami

Ulepszyliśmy środowisko kopiowania i wklejania wielu karetki. Wcześniej wklejanie wielu wierszy do wielu karetki spowodowało zduplikowanie całego schowka na każdym daszku. Teraz wklejanie wielu wierszy do tej samej liczby karetki spowoduje wstawienie każdego wiersza do odpowiedniego karetki. Aby użyć wielodaszka, naciśnij klawisze Alt+Shift+myszy lub Alt+Shift+. Naciśnij klawisze Ctrl+Shift+strzałka , aby rozwinąć zaznaczenie. Następnie naciśnij klawisze Ctrl+C , aby skopiować tekst w wielu zaznaczeniach. Użyj klawiszy Alt+Shift+myszy, aby utworzyć wiele karetki dla każdego wiersza, który chcesz wkleić w żądanych lokalizacjach. Na koniec naciśnij klawisze Ctrl+V , aby wkleić każdy wiersz na własnym daszku.

Multi-caret copy and paste

Ponadto możesz użyć klawisza Alt+Shift+strzałki w górę lub w dół albo alt+Shift+przeciągnij myszą, aby wybrać wiele kropek. Wcześniej te gesty utworzyły zaznaczenie pola. Teraz zaznaczenie pola przekształca się w wiele kropek. Ta metoda jest łatwiejsza i szybsza niż kliknięcie w precyzyjnych lokalizacjach w celu wstawienia pojedynczych karetki. Jeśli wolisz nadal używać zaznaczenia pola za pomocą klawiszy Alt+Shift+strzałki i alt+Shift+myszy podczas rozwijania zaznaczenia wielodaszka, przejdź do pozycji Narzędzia > Opcje > Edytor > tekstu Zaawansowane i wybierz pozycję Użyj zaznaczenia pola.

Multi-caret box selection option

Rozszerzalności

Klient Microsoft.VisualStudio.LanguageServer.Client wprowadza nowy sposób dostosowywania powiadomień, gdy klient języka nie może zainicjować.

Zadanie inicjowania będzie teraz śledzone przez Centrum stanu zadań (TSC). Jeśli zadanie inicjowania nie powiedzie się, użytkownicy mogą przejść do TSC uzyskać więcej informacji na temat tego, co poszło nie tak. Klienci języka będą teraz mogli dostosować komunikat wyświetlany użytkownikowi, podając informacje o tym, co reprezentuje ten błąd, oraz możliwe działania, które należy wykonać, aby rozwiązać ten problem. W tym celu wprowadzamy nowy zestaw interfejsów API w interfejsie ILanguageClient. Te nowe interfejsy API spowodują zmianę powodującą niezgodność w interfejsie ILanguageClient, dlatego rozszerzenia języka będą wymagać odwoływania się do nowego pakietu w celu działania w programie Visual Studio 2022.

Poniżej przedstawiono nowe interfejsy API:

  1. Właściwość ShowNotificationOnInitializeFailed — właściwość logiczna określająca, czy serwer językowy chce wyświetlić bąbelek, aby powiadomić użytkownika o awarii w następujący sposób:

ShowNotificationOnInitializeFailed in the Task Status Center

Zaleceniem jest ustawienie tej właściwości na wartość true tylko wtedy, gdy awaria znacząco wpływa na środowisko użytkownika dla projektu, nad którymi aktualnie pracuje.

  1. OnServerInitializedFailedAsync method — ta metoda zostanie wywołana, gdy inicjowanie klienta języka zakończy się niepowodzeniem. Udostępnimy obiekt LanguageClientInitializationInfoBase zawierający informacje o tym, jak wystąpił błąd, aby klient języka mógł powiadomić użytkownika o awarii na własną drogę lub dostarczyć dostosowany komunikat z kontekstem awarii. Jeśli zostanie podany komunikat, zostanie on wyświetlony w oknie Dane wyjściowe programu Visual Studio.

Language client initialization error in the Output Window

JavaScript/TypeScript

Obecnie dostępna jest obsługa nowego typu projektu JavaScript/TypeScript, który umożliwia tworzenie autonomicznych projektów Angular, React i Vue w programie Visual Studio. Projekty zostaną utworzone przy użyciu narzędzi interfejsu wiersza polecenia platformy zainstalowanych na komputerze lokalnym. Oznacza to również, że wersja szablonu jest oparta na wersjach interfejsu wiersza polecenia na komputerze lokalnym.

W ramach tych nowych projektów będzie można uruchamiać testy jednostkowe i integrować je z projektami interfejsu API platformy ASP.NET Core. Dokumentację można znaleźć tutaj

  • Opublikowaliśmy nowy typ projektu JavaScript/TypeScript, który kompiluje autonomiczne projekty JavaScript/TypeScript z dodatkowymi narzędziami. Przeczytaj więcej na ten temat tutaj
  • Dostępny graficzny interfejs użytkownika npm, dzięki czemu można teraz pobrać moduły NPM w taki sam sposób, jak pakiety Nuget w nowych projektach JavaScript/TypeScript

NPM GUINPM GUI2

środowisko Przeładowywanie na gorąco dla deweloperów platformy .NET i C++

Na początku tego roku ogłosiliśmy Przeładowywanie na gorąco .NET, ambitny projekt, który umożliwi Przeładowywanie na gorąco jak największej liczbą deweloperów platformy .NET. Rozpoczęliśmy tę podróż z pierwszą wersją zapoznawcza dostępną w programie Visual Studio 2019 i obiecywaliśmy o wiele więcej, aby skorzystać z programu Visual Studio 2022, w którym będzie dostarczane pełne środowisko. Dzisiaj z przyjemnością udostępniam szczegółowe informacje o tym, co zostało ukończone w wersji ogólnodostępnej programu Visual Studio 2022.

Dla każdego, kto dopiero zaczyna Przeładowywanie na gorąco, oto krótkie wprowadzenie. Środowisko Przeładowywanie na gorąco w programie Visual Studio działa zarówno dla zarządzanych aplikacji platformy .NET, jak i natywnych języka C++. Niezależnie od typu aplikacji, nad którą pracujesz, naszym celem Przeładowywanie na gorąco jest zapisanie jak największej liczby ponownych uruchomień aplikacji między edycjami, co pozwala zwiększyć produktywność dzięki skróceniu czasu oczekiwania na ponowne skompilowanie, ponowne uruchomienie, ponowne przejście do poprzedniej lokalizacji, w której była w samej aplikacji itp.

Robimy to, umożliwiając edytowanie plików kodu aplikacji i stosowanie tych zmian kodu natychmiast do uruchomionej aplikacji, znanej również jako "Przeładowywanie na gorąco". Po zastosowaniu tych zmian po prostu ponownie wykonaj kod, wykonując akcję w samej aplikacji (lub za pośrednictwem pewnego rodzaju czasomierza itp.) i natychmiast zobacz zmiany, bez wstrzymywania aplikacji przez punkty przerwania!

Jeśli chcesz zobaczyć niektóre pokazy na żywo tej funkcji, możesz zapoznać się z jednym z następujących filmów wideo:

środowisko użytkownika Przeładowywanie na gorąco w programie Visual Studio

Środowisko Przeładowywanie na gorąco dla deweloperów platformy .NET i C++ w programie Visual Studio 2022 również uległo dużym ulepszeniom. Pasek narzędzi ma teraz docelową implementację naszego przycisku "Przeładowywanie na gorąco" z ulepszonym wyglądem i większą funkcjonalnością.

Pierwszą rzeczą, którą zauważysz, jest nowy przycisk stylu listy rozwijanej z nową ikoną. Nazwa polecenia została zmieniona na "Zastosuj zmiany kodu" (od wczesnych wersji zapoznawczych) na "Przeładowywanie na gorąco".

Hot Reload User Experience in Visual Studio 2022

Rozszerzenie przycisków powoduje wyświetlenie szybkiego dostępu do funkcji, takich jak ponowne uruchamianie aplikacji, przełącznik zgody na Przeładowywanie na gorąco podczas zapisywania i szybki dostęp do nowego panelu ustawień.

Poniżej przedstawiono więcej szczegółów na temat każdej z nowych funkcji:

  • Łatwe ponowne uruchamianie aplikacji: możesz teraz łatwo ponownie uruchomić uruchomioną aplikację, jeśli należy zastosować niegrzeczne edytowanie za pomocą ponownej kompilacji niezależnie od tego, czy aplikacja została uruchomiona przy użyciu debugera, czy też została uruchomiona bez debugera (NOWOŚĆ dla aplikacji platformy .NET 6!).
  • Przeładowywanie na gorąco przy zapisywaniu: We wcześniejszych wersjach zapoznawczych można było zastosować tylko Przeładowywanie na gorąco zmiany dotyczące zapisywania w projektach ASP.NET dla każdego innego projektu, który musiał jawnie kliknąć przycisk Przeładowywanie na gorąco. W ostatecznej wersji można teraz Przeładowywanie na gorąco przy użyciu klucza zapisywania dla dowolnego typu projektu. Ta opcja jest włączona, ale po włączeniu tej opcji będzie ona stosowana do wszystkich przyszłych sesji programu Visual Studio, chyba że wyłączysz tę opcję.
  • Łatwy dostęp Ustawienia: dodaliśmy panel opcji Przeładowywanie na gorąco, aby zapewnić większą kontrolę po włączeniu/wyłączeniu Przeładowywanie na gorąco. Te ustawienia można uzyskać w programie Visual Studio "Opcje > .NET/C++ Przeładowywanie na gorąco" lub za pomocą menu rozwijanego przycisków Przeładowywanie na gorąco, klikając pozycję Ustawienia.

Dodaliśmy również ulepszone niegrzeczne okno dialogowe edycji, które jest dostępne podczas uruchamiania aplikacji .NET bez debugera.

New Rude Edit dialog for Hot Reload in Visual Studio 2022

To nowe okno dialogowe zawiera wiele ulepszeń, takich jak:

  • Szeroka opcja ponownego kompilowania i stosowania zmian w każdej sesji programu Visual Studio w każdej Przeładowywanie na gorąco niegrzeczna edycja. Po zaznaczeniu tego ustawienia dotyczy wszystkich przyszłych niegrzecznych edycji do momentu ponownego uruchomienia programu Visual Studio
  • Ponowne kompilowanie i stosowanie polecenia zmiany kodu, które można wykonać za pomocą jednego kliknięcia, zamiast wielu ręcznych kroków
  • Łatwy dostęp do ustawień

Okno dialogowe umożliwia również kontynuowanie edycji, jeśli nie chcesz wykonywać żadnych automatycznych akcji, jak wcześniej było to możliwe.

Istnieje jedno znane ograniczenie, to nowe okno dialogowe nie będzie dostępne w wersji ogólnodostępnej podczas korzystania z debugera, ale praca nad udostępnieniem go w tym scenariuszu zostanie ukończona w przyszłej aktualizacji.

Obsługa aplikacji języka C++

W przypadku korzystania z programu Visual Studio 2022 i uruchamiania aplikacji przy użyciu debugera teraz można Przeładowywanie na gorąco natywnej aplikacji języka C++ podczas uruchamiania w debugerze (F5) przy użyciu przycisku "Przeładowywanie na gorąco". Przeładowywanie na gorąco jest również obsługiwana w przypadku aplikacji utworzonych przy użyciu projektów CMake i OpenFolder.

To środowisko jest obsługiwane przez natywną edycję i kontynuuj, aby uzyskać informacje na temat obsługiwanych edycji, zobacz naszą dokumentację.

Obsługiwane scenariusze i struktury aplikacji platformy .NET

Od czasu ogłoszenia Przeładowywanie na gorąco z maja 2021 r. bardzo często zadawane pytanie od deweloperów platformy .NET brzmi "czy Przeładowywanie na gorąco współpracować z kombinacją platformy .NET apps framework/wersji?". Poczyniliśmy ogromny postęp, aby odpowiedzieć TAK w większości sytuacji, oto najważniejsze informacje.

  • W przypadku korzystania z programu Visual Studio 2022 i uruchamiania aplikacji przy użyciu debugera podstawowe środowisko Przeładowywanie na gorąco działa z większością typów aplikacji i wersji platformy .NET, obejmuje to programy .NET Framework, .NET Core i .NET 5+ (zarówno dla języka C#, jak i VB.NET zgodnie z ich zastosowaniem). Obsługiwane aplikacje obejmują internet (zmiany za kodem), komputery, urządzenia przenośne, chmurę i inne typy projektów. Reguła klucza jest tutaj, jeśli używasz debugera, załóżmy, że Przeładowywanie na gorąco jest dostępny dla Ciebie i spróbuj!
  • W przypadku korzystania z programu Visual Studio 2022, ale nieużywanego debugera (na przykład przy użyciu klawiszy CTRL-F5 do uruchomienia aplikacji) Przeładowywanie na gorąco jest teraz dostępna nawet bez debugera podczas określania wartości docelowych dla większości typów aplikacji platformy .NET 6. Oznacza to, że aplikacje, które nie są przeznaczone dla platformy .NET 6 (.NET 5 lub nowszej), nie będą obsługiwać scenariusza "brak debugera" i muszą korzystać z debugera w celu uzyskania Przeładowywanie na gorąco pomocy technicznej.
  • W przypadku korzystania z programu Visual Studio 2022 z aplikacją platformy .NET 6 większość scenariuszy jest obsługiwana. Nie jest to ograniczone do nowej funkcji "brak debugera" wzmianki powyżej. Obejmuje również inne nowe funkcje, takie jak obsługa Przeładowywanie na gorąco projektów Blazor i ogólnie edytowanie plików Razor w dowolnych aplikacjach ASP.NET Core i Przeładowywanie na gorąco CSS. Korzystanie zarówno z programu Visual Studio 2022, jak i aplikacji przeznaczonych dla platformy .NET 6, ostatecznie zapewni ci najbardziej zaawansowane środowisko Przeładowywanie na gorąco i mamy nadzieję, że spróbujesz.

Poniżej omówimy powyższe podsumowanie i bardziej szczegółowo omówimy.

Program Visual Studio 2022 z aplikacją .NET podczas korzystania z debugera

W przypadku korzystania z programu Visual Studio 2022 i uruchamiania aplikacji z debugerem Przeładowywanie na gorąco współpracuje z większością struktur aplikacji, w tym typowymi typami aplikacji, takimi jak Console, Windows Forms (WinForms), WPF, UWP, WinUI 3* i większość typów projektów internetowych ASP.NET (w przypadku edycji kodu) w tym ASP.NET MVC, interfejsu API sieci Web, a nawet starszych projektów web Forms. Ta lista jest również przykładem. Prawdziwa odpowiedź to wszędzie, gdzie masz platformę .NET i korzystasz z debugera zarządzanego programu Visual Studio, musisz uzyskać podstawową pomoc techniczną Przeładowywanie na gorąco.

Oznacza to, że nawet projekty, takie jak Azure Functions, będą działać świetnie w tym scenariuszu. Zachęcamy do wypróbowania kombinacji i poinformuj nas, czy znajdziesz jakieś problemy.

*WinUI 3 domyślnie używa debugowania w trybie mieszanym, które nie obsługuje Przeładowywanie na gorąco. Można to zmodyfikować w ustawieniach projektu, włączając zarządzany debuger, który umożliwi prawidłowe działanie Przeładowywanie na gorąco.

W przypadku korzystania z programu Visual Studio 2022 z aplikacją .NET, ale nie przy użyciu debugera

Przeładowywanie na gorąco jest teraz dostępna bez debugera w przypadku określania wartości docelowych dla większości typów aplikacji platformy .NET 6, w tym typów projektów, takich jak Console, WPF, Windows Forms (WinForms), ASP.NET Core MVC, Web API i Blazor. Wiemy, że niektórzy deweloperzy mają dobry powód lub preferencje, aby uruchomić swoje aplikacje bez debugera i mamy nadzieję, że ta dodatkowa funkcja da im wartość za mało, aby nie mieć wpływu na czas uruchamiania.

Ta funkcja jest przeznaczona wyłącznie dla platformy .NET 6 lub nowszej, a te aplikacje, które nie są przeznaczone dla platformy .NET 6 (.NET 5 lub nowszej), nie będą obsługiwać scenariusza "brak debugera" i muszą używać debugera, aby uzyskać dostęp do funkcji Przeładowywanie na gorąco.

Należy również pamiętać, że nie wszystkie typy projektów będą obsługiwane w scenariuszu "brak debugera" w naszej pierwszej wersji. Szczególnie:

  • Aplikacje platformy UNIWERSALNEJ systemu Windows nie są obsługiwane w przypadku Przeładowywanie na gorąco bez debugera. Jest to celowe i nie ma żadnych bieżących planów, aby to poprawić.
  • Aplikacje platformy Xamarin.Forms przeznaczone dla systemów iOS i Android nie obsługują Przeładowywanie na gorąco platformy .NET (niezależnie od tego, czy uruchamiasz aplikację przy użyciu debugera lub bez tego debugera), ale nadal będą obsługiwać Przeładowywanie na gorąco XAML
  • Aplikacje MAUI platformy .NET w najbliższej przyszłości nie będą obsługiwać scenariusza debugera, ale będą obsługiwać Przeładowywanie na gorąco .NET za pośrednictwem debugera

W przypadku korzystania z programu Visual Studio 2022 z aplikacją .NET 6 większość scenariuszy jest obsługiwana

Deweloperzy, którzy mogą korzystać zarówno z programu Visual Studio 2022, jak i pracują nad aplikacjami przeznaczonymi dla platformy .NET 6, otrzymają korzyści z najbardziej dopracowanego i zdolnego środowiska Przeładowywanie na gorąco.

Najważniejsze informacje o obsługiwanych funkcjach:

  • Aplikacje platformy Blazor (serwer i zestaw WebAssembly*)
  • Edytowanie plików Razor w witrynach internetowych Platformy Blazor i zwykłych witryn internetowych platformy ASP.NET Core
  • Przeładowywanie na gorąco CSS
  • Możliwość uzyskania obsługi Przeładowywanie na gorąco podczas uruchamiania aplikacji bez debugera (zgodnie z powyższym opisem bardziej szczegółowo)

Deweloperzy korzystający z platformy .NET 6 będą nadal uzyskiwać więcej ulepszeń w przyszłych aktualizacjach programu Visual Studio 2022 i wersjach głównych. Dopiero zaczynamy!

*W wersji ogólnodostępnej programu Visual Studio 2022 Przeładowywanie na gorąco obsługa zestawu WebAssembly platformy Blazor w przypadku korzystania z debugera programu Visual Studio nie jest jeszcze włączona. Nadal możesz uzyskać Przeładowywanie na gorąco Jeśli uruchomisz aplikację za pomocą programu Visual Studio bez debugera i pracujemy nad rozwiązaniem tego problemu w przyszłej aktualizacji programu Visual Studio.

Obsługiwane scenariusze ASP.NET Core

Podstawowe środowisko Przeładowywanie na gorąco jest teraz szeroko obsługiwane w wielu scenariuszach ASP.NET. Najbardziej dostępną funkcją jest możliwość zmiany kodu i innych plików klas platformy .NET dla większości typów aplikacji internetowych. Ta funkcja działa podczas korzystania z debugera programu Visual Studio i jest dostępna wszędzie tam, gdzie była dostępna opcja Edytuj i Kontynuuj.

W przypadku tych deweloperów platformy ASP.NET Core przeznaczonych dla platformy .NET 6 istnieją dodatkowe funkcje niedostępne dla niższych wersji platformy .NET, w tym ulepszenia, takie jak:

  • CSHTML: Edytowanie pliku CSHTML Razor obsługuje teraz wiele typów edycji.
  • Odświeżanie przeglądarki: edytowanie pliku razor spowoduje teraz automatyczne odświeżenie zmian w przeglądarce internetowej podczas debugowania. Było to wcześniej dostępne tylko podczas uruchamiania aplikacji bez debugera.
  • Przeładowywanie na gorąco CSS: teraz można zmienić pliki CSS podczas działania aplikacji, a zmiany zostaną zastosowane natychmiast do uruchomionej aplikacji podczas wpisywania.
  • Brak debugera: teraz uzyskasz obsługę Przeładowywanie na gorąco podczas uruchamiania aplikacji internetowej przy użyciu programu Visual Studio bez debugera (CTRL-F5).

Uwaga: podczas pracy z aplikacją Blazor Wasm i przy użyciu programu Visual Studio 2022 (17.0) Przeładowywanie na gorąco dla stron razor działa tylko podczas uruchamiania aplikacji bez debugera. W przyszłej aktualizacji dodamy obsługę debugera.

Obsługiwane edycje platformy .NET

Środowisko platformy .NET Przeładowywanie na gorąco jest obsługiwane przez mechanizm Edytuj i Kontynuuj. Wprowadziliśmy ulepszenia obsługi dodatkowych typów edycji wykraczających poza to, co było pierwotnie możliwe w poprzednich wersjach. Ulepszenia obejmują:

  • Dodawanie, aktualizowanie lub usuwanie atrybutów niestandardowych
  • Dodawanie lub aktualizowanie struktur rekordów
  • Dodawanie lub aktualizowanie dyrektyw #line
  • Edytowanie wyrażeń przełącznika
  • Edytowanie plików za pomocą dyrektyw #line, w tym zmian samej dyrektywy
  • Edytowanie instrukcji najwyższego poziomu
  • Edytowanie kodu korzystającego z dowolnych nowych funkcji języka C# 10, takich jak globalne używanie dyrektyw, przestrzeni nazw o zakresie plików, ulepszone wyrażenia lambda i konstruktory struktury bez parametrów
  • Zmienianie nazw parametrów lambda
  • Zmienianie nazw parametrów istniejących metod

Powyższe ulepszenia są dostępne zarówno dla Przeładowywanie na gorąco, jak i środowisk Edytuj i Kontynuuj.

Dodatkowe Aktualizacje

  • Przeładowywanie na gorąco i edytuj i kontynuuj przy użyciu wielu procesów: Teraz można niezawodnie używać środowisk Przeładowywanie na gorąco i Edytuj i Kontynuuj, gdy są dołączone do wielu procesów. Wcześniej ta funkcja nie była w pełni obsługiwana i nie zawsze działała prawidłowo, została ona poprawiona.
  • Zaktualizowano komunikaty o błędach/ostrzeżeniach: zaktualizowaliśmy wiele komunikatów o błędach/ostrzeżeniach, aby były jaśniejsze, gdy komunikaty dotyczą zarówno protokołu EnC, jak i Przeładowywanie na gorąco. Zrobiliśmy to, tworząc bardziej ogólne komunikaty, aby edytować i kontynuować terminologię nie jest używana podczas operacji Przeładowywanie na gorąco
  • Szybsze testowanie jednostkowe aplikacji platformy .NET: technologia Przeładowywanie na gorąco może teraz służyć jako funkcja eksperymentalna w celu przyspieszenia testowania jednostkowego podczas określania celu platformy .NET 6. Aby uzyskać więcej informacji, zobacz sekcję dotyczącą testowania tych informacji o wersji

Nieobsługiwane scenariusze platformy .NET

Nawet w końcowej wersji nadal będą istnieć nieobsługiwane scenariusze, o których należy pamiętać:

  • Aplikacje platformy Xamarin.Forms nie będą obsługiwać Przeładowywanie na gorąco .NET w scenariuszach systemów iOS i Android. Podczas określania celu aplikacji platformy UWP otrzymasz kilka Przeładowywanie na gorąco. Jest to zgodnie z projektem i nie spodziewamy się wprowadzenia dalszych ulepszeń. (Uwaga: Przeładowywanie na gorąco XAML będzie nadal dostępny i obsługiwany dla klientów platformy Xamarin.Forms w najnowszym zestawie SDK)
  • Aplikacje MAUI platformy .NET nie są obsługiwane w tej wersji. Aby pracować z programem .NET MAUI i Przeładowywanie na gorąco, zobacz informacje o wersji programu Visual Studio 2022 Update 1 (wersja zapoznawcza 1).
  • Aplikacje utworzone przy użyciu języka F# lub przeznaczone dla platformy .NET Native nie będą obsługiwać Przeładowywanie na gorąco.

Produktywność platformy .NET

Refaktoryzacja przestrzeni nazw synchronizacji jest teraz dostępna w menu (kliknij prawym przyciskiem myszy) projektu lub folderu w Eksplorator rozwiązań, co umożliwia łatwe synchronizowanie przestrzeni nazw w celu dopasowania ich do struktury folderów.

Sync namespaces from Solution Explorer

Konfiguracja analizy kodu w tle jest teraz dostępna w menu Eksplorator rozwiązań (kliknij prawym przyciskiem myszy). Kliknij prawym przyciskiem myszy węzeł rozwiązania w Eksplorator rozwiązań i wybierz polecenie Analizuj i oczyszczanie kodu. Następnie wybierz pozycję Ustaw zakres analizy, aby skonfigurować zakres analizy kodu w tle.

  • Istnieje teraz refaktoryzacja, która wprowadza parametr, który spowoduje przeniesienie wyrażenia z implementacji metody do elementów wywołujących przez dodanie nowego parametru. Umieść kursor w wierszu zawierającym wyrażenie lub wyróżnij wyrażenie. Naciśnij klawisze (Ctrl+.), aby wyzwolić menu Szybkie akcje i refaktoryzacje . Wybierz pozycję Wprowadź parametr dla {0} lub Wprowadź parametr dla wszystkich wystąpień elementu {0}. Obie opcje będą miały trzy opcje wysuwane, aby (1) wstawić zaktualizowane wyrażenie we wszystkich lokacjach wywołań, (2) wyodrębnić i utworzyć nową metodę, która zwraca wyrażenie i dodaje argument w lokacjach wywołań, lub (3) utworzy przeciążenie metody zawierającej wyrażenie i wywołuje oryginalną metodę.

Introduce parameter from Quick Actions menu

  • Istnieje nowe polecenie o nazwie Śledź źródło wartości, które umożliwia przeprowadzanie analizy przepływu danych w celu określenia, w jaki sposób niektóre wartości mogły zostać przekazane w danym punkcie i gdzie mogą być przekazywane. Kliknij prawym przyciskiem myszy dowolny element członkowski i wybierz polecenie Śledź źródło wartości w menu po kliknięciu prawym przyciskiem myszy.

Track value source in right click menu

  • Zostanie otwarte okno Śledzenie wartości umożliwiające analizowanie wyników:

Track Value Source Window

  • Dodaliśmy opcję podkreślnia zmiennych, które są ponownie przypisywane. Ta opcja jest domyślnie wyłączona, dlatego należy ją włączyć w obszarze Narzędzia > Opcje > Edytor > tekstów C# lub Podstawowy > zaawansowane i wybrać ponownie przydzielone zmienne podkreślenie.

Underline reassigned variables in Editor

  • Dodaliśmy opcję wyszukiwania w oknie dialogowym Generowanie przesłonięć, co pozwala na szybkie wyszukiwanie i wybieranie członków do zastąpienia.

Search in Generate Overrides Dialog

  • Szybkie informacje dotyczące tagów kodu> XML <zachowują teraz białe znaki i bloki CDATA. Umieść kursor nad elementem. Następnie zostaną wyświetlone Szybkie podpowiedzi dotyczące obsługiwanych stylów w komentarzach języka XML nad kodem.

Quick Info for XML preserves whitespace

  • Okno Znajdź wszystkie odwołania będzie teraz grupuje projekty wielokierunkowe pomagające zmniejszyć szum wizualny.

Find All Reference Groups Multi-Targeted Projects

  • Istnieje teraz refaktoryzacja, która usuwa powtarzające się typy w Visual Basic.
  • Przejdź do pozycji Implementacja nie będzie już przechodzić do elementów członkowskich z deklaracjami abstrakcyjnymi, które również są zastępowane.

Narzędzia języka C#

W języku C# 8.0 wprowadziliśmy typy odwołań dopuszczające wartość null, co pozwala zadeklarować, czy wartość null jest oczekiwana. Aby użyć typów referencyjnych dopuszczanych wartości null, należy dodać <Nullable>element enable</Nullable> do pliku projektu lub dodać #nullable włączyć pragma do każdego pliku źródłowego w projekcie. Aby usprawnić ten proces, teraz automatycznie uwzględniamy <Nullable>włączenie</Nullable> dla nowych projektów platformy .NET.

W języku C# 10.0 wprowadzamy przestrzeń nazw o zakresie plików, która umożliwia niezagnieżdżanie definicji klas w przestrzeni nazw. Teraz mamy refaktoryzację, aby przekonwertować przestrzeń nazw na przestrzeń nazw o zakresie plików. Aby użyć przestrzeni nazw o zakresie plików, należy najpierw dodać element podglądu <LangVersion></LangVersion> do pliku projektu. Następnie umieść kursor w przestrzeni nazw. Naciśnij klawisze (Ctrl+.), aby wywołać menu Szybkie akcje i operacje refaktoryzacji. Wybierz pozycję Konwertuj na przestrzeń nazw o zakresie plików.

File-scoped namespace refactoring

Teraz refaktoryzacja jest preferowana is not nullis object w przypadku zastosowania do typów wartości. Aby użyć tej nowej refaktoryzacji, umieść kursor na sprawdzaniu typu. Naciśnij klawisze (Ctrl+.), aby wywołać menu Szybkie akcje i operacje refaktoryzacji. Wybierz pozycję Preferuj sprawdzanie typu o wartości null.

Przejdź do dekompilowanych źródeł

Przejdź do pozycji Dekompilowane źródła domyślnie włączone, co pozwala na przechodzenie do deklaracji typów bibliotek. Przejdź do dekompilowanych źródeł jest dostępny po wywołaniu polecenia Przejdź do definicji w symbolu biblioteki w kodzie źródłowym i w przypadku dekompilowanych źródeł.

Ulepszenia edytora

Komentarze XML będą teraz automatycznie generować <exception> tag w tagu <summary> , co umożliwia dodanie opisu, gdy metoda jawnie zgłasza wyjątki.

W programie Visual Studio 2019 opublikowaliśmy margines dziedziczenia, który dodaje ikony do marginesów reprezentujących implementacje i przesłonięcia kodu. Kliknięcie ikon marginesu dziedziczenia spowoduje wyświetlenie opcji dziedziczenia, do których można przejść. W tej wersji margines dziedziczenia jest domyślnie włączony. Aby wyłączyć margines dziedziczenia, przejdź do pozycji Narzędzia>Opcje>Edytor>tekstu C# lub Podstawowy>zaawansowany i usuń zaznaczenie pozycji Włącz margines dziedziczenia.

Inheritance Margin

Języki programowania

C# 10

  • Rekordy struktur i with wyrażeń w strukturach (record struct Point(int X, int Y);, var newPoint = point with { X = 100 };).
  • Globalne dyrektywy using: global using dyrektywy unikaj powtarzania tych samych using dyrektyw w wielu plikach w programie.
  • Ulepszono określone przypisanie: określone przypisanie i analiza wartości null lepiej obsługują typowe wzorce, takie jak dictionary?.TryGetValue(key, out value) == true.
  • Ciągi interpolowane stałe: ciągi interpolowane składające się z stałych są stałymi.
  • Rozszerzone wzorce właściwości: wzorce właściwości umożliwiają dostęp do zagnieżdżonych elementów członkowskich (if (e is MethodCallExpression { Method.Name: "MethodName" })).
  • Zapieczętowany rekord ToString: rekord może dziedziczyć rekord podstawowy z zapieczętowanym ToStringrekordem .
  • Generatory źródeł przyrostowych: ulepszanie środowiska generowania źródła w dużych projektach przez podzielenie potoku generowania źródła i buforowanie wyników pośrednich.
  • Mieszane dekonstrukcje: dekonstrukcja-przypisania i deklaracje dekonstrukcji można łączyć ze sobą ((existingLocal, var declaredLocal) = expression).
  • AsyncMethodBuilder na poziomie metody: AsyncMethodBuilder używany do kompilowania async metody można zastąpić lokalnie.
  • #line dyrektywy span: zezwalaj na precyzyjne sterowanie mapowaniem linii przez generatory źródeł, takie jak Razor, z dyrektywami określającymi #line zakres docelowy (#line (startLine, startChar) - (endLine, endChar) charOffset "fileName").
  • Ulepszenia lambda: atrybuty i typy zwracane są dozwolone w wyrażeniach lambda; lambda i grupy metod mają naturalny typ delegata (var f = short () => 1;).
  • Programy obsługi ciągów interpolowanych: typy obsługi ciągów interpolowanych umożliwiają efektywne formatowanie ciągów interpolowanych w przypisaniach i wywołaniach.
  • Przestrzenie nazw o zakresie plików: pliki z jedną przestrzenią nazw nie wymagają dodatkowych nawiasów klamrowych ani wcięcia (namespace X.Y.Z;).
  • Konstruktory struktury bez parametrów: obsługują konstruktory bez parametrów i inicjatory pól wystąpień dla typów struktur.
  • CallerArgumentExpression: ten atrybut umożliwia przechwytywanie wyrażeń przekazywanych do metody jako ciągów.

Zapoznaj się ze stanem funkcji języka C# oraz istotnymi zmianami, aby uzyskać więcej informacji.

Edytor Razor (ASP.NET Core)

  • Obsługa Przeładowywanie na gorąco jest teraz dostępna w plikach Razor.

Reload Support in Razor Files

  • Wprowadziliśmy znaczne ulepszenia wydajności edytora Razor.

  • Ulepszyliśmy formatowanie i wcięcia, dzięki czemu jest bardziej niezawodne i znacznie szybsze.

  • Dodaliśmy nowe kolory Razor! Te kolory można dostosować w obszarze Narzędzia > Opcje > czcionki środowiska > i kolory.

  • Narzędzia TagHelpers są teraz kolorowane i mają obsługę klasyfikacji w etykietkach narzędzi szybkich informacji i uzupełniania Funkcji IntelliSense.

TagHelpers Classification Support

  • Ulepszyliśmy wyróżnianie gałęzi kąta i nawigację dla konstrukcji Razor.

  • Komentarze mają teraz automatyczne uzupełnianie, inteligentne wcięcia, automatyczne dołączanie kontynuacji komentowania i nawigację po komentarzach.

Testowanie zdalne — wczesna wersja zapoznawcza eksperymentalna

Mamy bardzo wczesną eksperymentalną wersję zapoznawcza umożliwiającą uruchamianie testów w środowiskach zdalnych, takich jak kontenery systemu Linux, program WSL i połączenia SSH. Chociaż jest to bardzo cenna funkcja, prosimy o cierpliwość, ponieważ ta funkcja jest nadal w bardzo wczesnym stanie eksperymentalnym, ponieważ zbieramy opinie. Zwykle nie masz doświadczenia z gładkością, ponieważ można sobie wyobrazić, że istnieje wiele scenariuszy narożnych, w jaki sposób możemy komunikować się ze połączonym środowiskiem i zarządzać nim z poziomu programu Visual Studio. Poniżej przedstawiono niektóre wymagania dotyczące korzystania z tej eksperymentalnej wersji testowania zdalnego:

  • Musisz zainstalować niezbędne zależności w środowisku docelowym. Oznacza to, że jeśli chcesz, aby testy przeznaczone dla platformy .NET 3.1 działały w kontenerze systemu Linux, upewnij się, że kontener ma zainstalowany program .NET 3.1 za pośrednictwem pliku Dockerfile. Pewnego dnia chcielibyśmy utworzyć środowisko instalacji, które umożliwia płynne uzyskiwanie dowolnych zależności testowych, ale na razie pozostawiamy większość aprowizacji środowiska do specyfikacji użytkownika.
  • Zaplanuj monitorowanie stanu połączenia ze środowiskiem zdalnym za pośrednictwem okienka Testy wyjściowe>. Jeśli na przykład kontener został zatrzymany, w okienku Testy wyjściowe> pojawi się komunikat. Możemy nie wykryć wszystkich scenariuszy, więc zaplanuj sprawdzenie danych wyjściowych, jeśli wygląda na to, że połączenie zostało utracone. Zwłaszcza jeśli okienko Dane wyjściowe nie jest ustawione na "Test", może nie zostać natychmiast wyświetlony komunikat. Nadal eksperymentujemy z najlepszym modelem powiadomień, gdy połączenia zostaną utracone, więc opinie są bardzo mile widziane! Jeśli połączenie zostało utracone, możesz użyć listy rozwijanej środowiska testowego zdalnego w Eksploratorze testów, aby ustawić połączenie z powrotem do środowiska lokalnego, a następnie ponownie wybrać środowisko zdalne, aby ponownie zainicjować połączenie.
  • Eksperymentalna wersja zapoznawcza jest obecnie ograniczona tylko do testów platformy .NET. Zdajemy sobie sprawę z zainteresowania obsługą środowisk testowych zdalnych języka C++ i mamy nadzieję zapewnić to również w końcu.

Jak wypróbować testowanie zdalne?

  • Oficjalne dokumenty zostaną dostarczone po okresie eksperymentalnym. Na razie jest to, co musisz zacząć testować.
  • Środowiska są określane przy użyciu testenvironments.json w katalogu głównym rozwiązania. Struktura plików json jest zgodna z poniższym schematem:
{
    "version": "1", // value must be 1
    "environments": [
        { "name": "<unique name>", ... },
        ...
    ]
}
  • Połączenia kontenerów lokalnych
    • Aby nawiązać połączenie z kontenerem uruchomionym lokalnie, musisz mieć program Docker Desktop na komputerze lokalnym. Opcjonalnie włącz integrację ZSL2, aby uzyskać lepszą wydajność.
    • W przypadku pliku Dockerfile środowisko można określić w testEnvironments.json katalogu głównym rozwiązania:
          {
          "name": "<name>",
          "localRoot": "<path to local environment>", // optional
          "type": "docker",
          "dockerImage": "<docker image tag>",
          }
      
      Na przykład: .
      {
      "version": "1",
      "environments": [
          {
          "name": "linux dotnet-core-sdk-3.1",
          "type": "docker",
          "dockerImage": "testenv"
          }
      ]
      }
      
    • Oto przykład pliku Dockerfile do uruchamiania testów przeznaczonych dla platformy .NET 3.1.
      FROM mcr.microsoft.com/dotnet/core/sdk:3.1
      
    • Skompiluj kontener przy użyciu następującego polecenia (w tym "." na końcu): docker build -t <docker image name> -f <path to Dockerfile> .
  • Lokalne połączenia WSL2
    • Należy włączyć integrację ZSL2 na komputerze lokalnym.
    • Środowisko można określić w testEnvironments.json katalogu głównym rozwiązania, korzystając z następującego schematu:
      {
      "version": "1",
      "environments": [
          {
          "name": "WSL-Ubuntu",
          "type": "wsl",
          "wslDistribution": "Ubuntu"
          }
      ]
      }
      
  • Połączenia SSH
    • Przejdź do pozycji Narzędzia > Opcje > międzyplatformowego > menedżera Połączenie ion, aby dodać lub usunąć połączenia SSH. Wybranie pozycji "Dodaj" umożliwi wprowadzenie nazwy hosta, portu i wszelkich potrzebnych poświadczeń.
    • Środowisko można określić w testEnvironments.json katalogu głównym rozwiązania, wykonując następujące czynności:
      {
      "version": "1",
      "environments": [
          {
          "name": "ssh-remote",
          "type": "ssh",
          "remoteUri": "ssh://user@hostname:22"
          }
      ]
      }
      
  • Aktywne środowisko jest wybierane za pośrednictwem listy rozwijanej na pasku narzędzi Eksplorator testów. Obecnie tylko jedno środowisko testowe może być aktywne naraz.

Remote testing environment drop down in Test Explorer

  • Po wybraniu środowiska testy zostaną odnalezione i uruchomione w nowym środowisku.

Tests are discovered and executed in remote environments

  • Teraz możesz uruchamiać i debugować testy w środowisku zdalnym!

    View test results from remote environment in the test explorer

  • Eksplorator testów może monitować o zainstalowanie niektórych brakujących wymagań wstępnych środowiska i podjęcie próby ich zainstalowania, ale ostatecznie pozostawiamy większość aprowizacji środowiska zdalnego do specyfikacji użytkownika.

Przeładowywanie na gorąco w Eksploratorze testów [eksperymentalne]: Teraz można wypróbować nową funkcję eksperymentalną, która przyspiesza środowisko testowe przy użyciu technologii Przeładowywanie na gorąco w tle. Oznacza to, że po pierwszym przebiegu testu, w którym nadal jest wymagana pełna kompilacja, można wprowadzić drobne zmiany, uruchomić testy, a wszystkie te aktualizacje zostaną odzwierciedlone bez konieczności ponownego wykonywania pełnej kompilacji. Aby rozpocząć pracę i dowiedzieć się więcej, zobacz poniższe szczegóły:

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

  • To środowisko jest dostępne tylko dla projektów przeznaczonych dla platformy .NET 6 i musisz wyrazić zgodę, przechodząc do pozycji "Narzędzia > Opcje > testowe"

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

  • Po włączeniu tej opcji testy są aktualizowane nawet przy użyciu niezapisanych zmian w edytorze. Nie kompilujemy, więc pliki binarne na dysku w folderze bin są nieaktualne. Oznacza to, że mogą wystąpić rozbieżności między tym, co znajduje się na dysku, a wynikami testu w programie Visual Studio. Aby rozwiązać te problemy i przed zaewidencjonowaniem, upewnij się, że wykonasz pełną kompilację za pomocą klawiszy Ctrl+Shift+B. Każda jawna kompilacja zastąpi wyniki testu przeładowywania na gorąco zwykłymi wynikami testu pełnej kompilacji.

  • Istnieją pewne typy edycji, których ponowne ładowanie na gorąco nie może odebrać, a w takich przypadkach domyślnie powróci do starego zachowania wykonywania pełnej kompilacji. Należy również pamiętać, że śledzone są tylko zmiany w programie Visual Studio, nieprzezroczyste przypadki w edytorze, takie jak zmiana miejsc docelowych, mogą domyślnie wrócić do wymagania pełnej kompilacji.

  • Niektóre duże zmiany (takie jak zmiana nazwy 1000+ nazw metod) mogą trwać dłużej niż ponowne ładowanie. W takich przypadkach komunikat zostanie wydrukowany w danych wyjściowych z monitem użytkowników o wykonanie pełnej ponownej kompilacji, a nie oczekiwanie na ponowne załadowanie.

  • Ślady stosu nie są jeszcze dostępne za pomocą przeładowywania na gorąco w Eksploratorze testów. Jeśli musisz użyć śledzenia stosu, zalecamy wykonywanie pełnej kompilacji.

Narzędzia do testowania

  • Pokaż w Eksploratorze testów (Ctrl+E,S): Pokaż w Eksploratorze testów jest możliwość przechodzenia od miejsca, w którym kursor znajduje się w metodzie testowej w edytorze, gdzie test znajduje się w Eksploratorze testów. Może to przypominać o podobnej funkcji o nazwie Synchronizacja z aktywnym dokumentem, która przechowuje dokument, w którym aktualnie pracujesz, wyróżniony w Eksplorator rozwiązań. Był to jeden z najważniejszych elementów w społeczności deweloperów, więc dziękuję wszystkim, którzy głosowali i pomogli nam ustalić priorytety tej funkcji! Pokaż w Eksploratorze testów jest również dostępny w menu edytora prawym przyciskiem myszy, test CodeLens glyph i kliknij prawym przyciskiem myszy w Eksplorator rozwiązań.

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

  • Aktualizacja obsługi testu obciążeniowego internetowego i kodowanego testu interfejsu użytkownika: rejestrator testów obciążeniowych w sieci Web jest dostępny w programie Visual Studio 2022. Rejestrator kodowanych testów interfejsu użytkownika nie zostanie uwzględniony w programie Visual Studio 2022. Nadal będzie można uruchamiać kodowane testy interfejsu użytkownika i tworzyć nowe testy, pisząc kod w programie Visual Studio 2022, ale rejestrator korzysta z 32-bitowych zależności, które nie są możliwe do przeniesienia. Nadal można zainstalować program Visual Studio 2019 obok siebie, aby użyć rejestratora kodowanego interfejsu użytkownika. Przypominamy, że test obciążeniowy sieci Web i kodowany test interfejsu użytkownika zostały wycofane w 2019 r. i planujemy ich usunięcie z produktu, gdy możemy zminimalizować wpływ na użytkowników. Zdecydowanie zachęcamy użytkowników zainteresowanych testowaniem internetowego interfejsu użytkownika, aby wdrożyć nową wieloplatformową i platformę testowania internetowego typu open source Playwright. Oprócz obsługi wszystkich głównych przeglądarek i znacznie lepszej obsługi kodu asynchronicznego, Playwright ma również wbudowane funkcje rejestrowania testów.

Zaufane lokalizacje

  • W ramach przebudowy "Trust Ustawienia" usunęliśmy sprawdzanie "Znacznik sieci Web" i dodaliśmy okno dialogowe ostrzeżenia wyświetlane podczas próby otwarcia kodu (np. plików, projektów lub folderów), które nie było wcześniej zaufane
  • Kod może być teraz zaufany w bieżącej lokalizacji folderu lub folderu nadrzędnego
  • Projekty utworzone przez użytkownika są automatycznie dodawane do listy zaufanych lokalizacji użytkownika
  • Możesz pominąć kontrole zaufania dla lokalizacji tymczasowych utworzonych przez funkcję programu Visual Studio

Przed otwarciem zawartości (np. rozwiązania, projektu, pliku lub folderu) w środowisku IDE sprawdzimy, czy lokalizacja folderu była wcześniej zaufana.

Jeśli zostanie wykryty niezaufany kod, zostanie wyświetlone okno dialogowe ostrzeżenia z ostrzeżeniem informujące o implikacjach dotyczących zabezpieczeń i z prośbą o zaufanie kodowi przed normalną operacją środowiska IDE.

Uwaga: mimo że ta funkcja jest obecnie domyślnie wyłączona, można ją włączyć za pośrednictwem opcji > Zaufania Ustawienia > ponownego podejmowania decyzji o zaufaniu przed otwarciem zawartości

Aktualizacje węzła źródeł zewnętrznych

Węzeł Źródła zewnętrzne w Eksploratorze rozwiązań ma teraz również obsługę języka C++. Ponadto dodaliśmy nowy węzeł podrzędny, który daje wszystkie moduły z symbolami nie zostały jeszcze załadowane.

External Sources node in Solution explorer supports C++

Możesz również użyć menu kontekstowego po kliknięciu prawym przyciskiem myszy, aby załadować symbole bezpośrednio z Eksploratora rozwiązań, aby moduły mogły być wyświetlane w zewnętrznych węzłach źródłowych. Pliki węzła Źródła zewnętrzne są teraz sortowane alfabetycznie.

External Sources menu

Zaktualizowana i odświeżona ikonografia

  • W ramach naszego celu odświeżenia interfejsu użytkownika dla programu Visual Studio 2022 znajdziesz nowo odświeżone i zaktualizowane ikony w całym środowisku IDE na podstawie spójności, czytelności i znajomości.

Examples of new icons with dark and light backgrounds

Przeładowywanie na gorąco XAML

Zaktualizowaliśmy ustawienia Przeładowywanie na gorąco XAML i paski narzędzi w aplikacji, aby zapewnić przejrzystość, że ustawienia i środowiska aplikacji są związane z Przeładowywanie na gorąco XAML, a nie z Przeładowywanie na gorąco .NET.

Updated in-app toolbar in XAML apps

Usprawniliśmy również okienko ustawień, aby lepiej organizować wspólne opcje.

Updated XAML Settings options panel

Wersja zapoznawcza XAML na żywo

Wersja zapoznawcza języka XAML na żywo jest teraz dostępna dla deweloperów WPF, UWP, WinUI i Xamarin.Forms, które uruchamiają swoje aplikacje w emulatorze systemu Android lub jako aplikacja klasyczna platformy UWP. Podgląd na żywo przechwytuje działający interfejs użytkownika aplikacji i przenosi go do zadokowanego okna w programie Visual Studio. Ułatwia to korzystanie z Przeładowywanie na gorąco XAML w celu zmiany aplikacji podczas wyświetlania tych zmian w samym programie Visual Studio bez konieczności używania klawisza Tab między uruchomioną aplikacją a programem Visual Studio podczas wprowadzania zmian w kodzie XAML na żywo.

Live Preview of XAML Desktop Apps UI

Aby rozpocząć:

  • Uruchamianie obsługiwanej aplikacji przy użyciu debugera
  • Włącz podgląd XAML na żywo za pomocą szybkiego wyszukiwania, wpisując "Podgląd na żywo XAML" lub używając paska narzędzi w aplikacji "Pokaż w podglądzie na żywo XAML"

Po uruchomieniu środowiska będą dostępne następujące funkcje:

  • Przewijanie i powiększanie: możesz przesuwać i powiększać okno, które przechwytuje interfejs użytkownika aplikacji. Dzięki temu możesz dopasować ją do potrzeb wyświetlania pełnej aplikacji lub tylko części, które próbujesz edytować. Przesuwanie i przewijanie działa z okienkiem dotykowym (przewijanie dwoma palcami), kółkiem przewijania myszy lub CTRL + Kliknij, aby przeciągnąć zawartość.
  • Linijki: możesz dodać co najmniej jedną linijkę poziomą/pionową, aby nakładać działającą aplikację. Te linie można następnie przenosić do pozycji przy użyciu myszy lub klawiatury. Podczas przenoszenia linijek za pomocą klawiatury użyj klawiszy strzałek w celu precyzyjnego pozycjonowania i klawisza Ctrl + strzałka w celu szybkiego pozycjonowania. Możesz również usunąć linijki, wybierając je (klikając je) i naciskając klawisz delete.
  • Wskazówki dotyczące zaznaczenia elementów i informacji: za pomocą zaznaczenia elementu możesz wybrać element XAML, który chcesz edytować przy użyciu tej samej funkcji, której można użyć z poziomu paska narzędzi Live Visual Tree lub in-app. Po wybraniu można również włączyć nową funkcję "porady informacyjne", aby uzyskać dodatkowe informacje o wybranym elemecie, takim jak czcionki, kolory, informacje o marginesie/dopełnieniu i nie tylko. W przypadku korzystania z zaznaczenia elementu rozważ włączenie podglądu wybranego elementu — za pomocą przycisku paska narzędzi Live Visual Tree lub opcji > debugowania > Przeładowywanie na gorąco ustawień — aby przejść do źródłowego kodu XAML.
  • Przełączanie systemu Windows: możesz kontrolować, które okna aplikacji są przechwytywane.

Ulepszone środowisko powiązań XAML

  • Ulepszone ikony powiązań danych w Inspektorze właściwości. Teraz możesz szybko uzyskać dostęp do okna dialogowego wiązania danych, klikając ikonę "cylindra" obok właściwości i możesz wyczyścić powiązanie, klikając ikonę "x".

Binding icons in Property Inspector

  • Dodano kartę Powiązanie w obszarze Szybkie akcje, aby można było tworzyć powiązania za pomocą zaledwie kilku kliknięć w projektancie XAML.

Binding tab in Quick Actions

  • Dodano pole kombi Właściwość docelowa do okna dialogowego Powiązanie danych, aby wybrać właściwość w podróży.

Updated Data Binding Dialog with Target Property combo box

Najważniejsze problemy z głosowaniem ze społeczności deweloperów

Zobacz pełną listę poprawek społeczności deweloperów w tej wersji.


Znane problemy

Zobacz wszystkie otwarte problemy i dostępne obejścia w programie Visual Studio 2022, korzystając z poniższego linku.

Opinie i sugestie

Chcemy poznać Twoje zdanie! Możesz zgłosić problem lub zasugerować funkcjęFeedback Icon przy użyciu ikony Wyślij opinię w prawym górnym rogu instalatora lub środowiska IDE programu Visual Studio albo w obszarze Wyślij opinię w Pomocy.> Problemy można śledzić przy użyciu społeczności deweloperów programu Visual Studio, w której można dodawać komentarze lub znajdować rozwiązania. Możesz też uzyskać bezpłatną pomoc dotyczącą instalacji za pośrednictwem naszej pomocy technicznej przez czat na żywo.


Blogi

Skorzystaj ze szczegółowych informacji i zaleceń dostępnych w witrynie blogów dotyczących narzędzi programistycznych, aby być na bieżąco ze wszystkimi nowymi wersjami i zyskać dostęp do szczegółowych wpisów dotyczących szerokiego zakresu funkcji.


Początek strony