Informacje o wersji 17.0 programu Visual Studio 2022
Napiwek
Obejrzyj nagrania z premiery programu Visual Studio 2022, aby dowiedzieć się więcej o nowościach, usłyszeć porady i wskazówki oraz pobrać bezpłatny cyfrowy prezent.
Developer Community | Przewodnik po programie Visual Studio 2022 | Wymagania systemowe | Zgodność | Kod dystrybucyjny | Historia wersji | Postanowienia licencyjne | Blogi | Najnowsze znane problemy | Whats New 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 administratora 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
- 11 lipca 2023 r. — Visual Studio 2022 w wersji 17.0.23
- 13 czerwca 2023 r. — Visual Studio 2022 w wersji 17.0.22
- 11 kwietnia 2023 r. — Visual Studio 2022 w wersji 17.0.21
- 14 marca 2023 r. — Visual Studio 2022 w wersji 17.0.20
- 14 lutego 2023 r. — Visual Studio 2022 w wersji 17.0.19
- 10 stycznia 2023 r. — Visual Studio 2022 w wersji 17.0.18
- 13 grudnia 2022 r. — Visual Studio 2022 w wersji 17.0.17
- 8 listopada 2022 r. — Visual Studio 2022 w wersji 17.0.16
- 11 października 2022 r. — Visual Studio 2022 w wersji 17.0.15
- 13 września 2022 r. — Visual Studio 2022 w wersji 17.0.14
- 9 sierpnia 2022 r. — Visual Studio 2022 w wersji 17.0.13
- 12 lipca 2022 r. — Visual Studio 2022 w wersji 17.0.12
- 14 czerwca 2022 r. — Visual Studio 2022 w wersji 17.0.11
- 10 maja 2022 r. — Visual Studio 2022 w wersji 17.0.10
- 19 kwietnia 2022 r. — Visual Studio 2022 w wersji 17.0.9
- 12 kwietnia 2022 r. — Visual Studio 2022 w wersji 17.0.8
- 8 marca 2022 r. — Visual Studio 2022 w wersji 17.0.7
- 8 lutego 2022 r. — Visual Studio 2022 w wersji 17.0.6
- 13 stycznia 2022 r. — Visual Studio 2022 w wersji 17.0.5
- 16 grudnia 2021 r. — Visual Studio 2022 w wersji 17.0.4
- 14 grudnia 2021 r. — Visual Studio 2022 w wersji 17.0.3
- 30 listopada 2021 r. — Visual Studio 2022 w wersji 17.0.2
- 16 listopada 2021 r. — Visual Studio 2022 w wersji 17.0.1
- 8 listopada 2021 r. — Visual Studio 2022 w wersji 17.0.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:
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
- CVE-2023-33127 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu platformy .NET Luka w zabezpieczeniach istnieje w aplikacjach platformy .NET, w których można wykorzystać serwer diagnostyczny w celu osiągnięcia podniesienia uprawnień między sesjami/użytkownikami krzyżowymi (EoP) i wykonywania kodu.
- CVE-2023-33170 Luka w zabezpieczeniach obejścia funkcji zabezpieczeń platformy .NET Luka w zabezpieczeniach istnieje w aplikacjach ASP.NET Core, w których maksymalna liczba nieudanych prób blokady konta może nie zostać natychmiast zaktualizowana, umożliwiając atakującemu wypróbowanie większej liczby haseł.
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ń.
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).
Developer Community
Biuletyny zabezpieczeń rozwiązane
- CVE-2023-28260 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu platformy .NET Luka w zabezpieczeniach istnieje na platformie .NET uruchomionej na platformie Windows, gdzie można załadować bibliotekę DLL środowiska uruchomieniowego z nieoczekiwanej lokalizacji, co powoduje zdalne wykonywanie kodu.
- CVE-2023-28296 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu w programie Visual Studio
- CVE-2023-28299 Luka w zabezpieczeniach dotycząca fałszowania programu Visual Studio
- CVE-2023-28262 Luka w zabezpieczeniach dotycząca podniesienia uprawnień w programie Visual Studio
- CVE-2023-28263 Luka w zabezpieczeniach dotycząca ujawniania informacji w programie Visual Studio
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 pakietu mingit i Git dla systemu Windows do wersji 2.39.2, które dotyczą CVE-2023-22490
Biuletyny zabezpieczeń rozwiązane
- CVE-2023-22490 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu mingit
- CVE-2023-22743 Luka w zabezpieczeniach dotycząca podniesienia uprawnień instalatora Windows
- CVE-2023-23618 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu w systemie Windows
- CVE-2023-23946 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu mingit
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 pakietu mingit i Git dla systemu Windows do wersji 2.39.1.1, które dotyczą CVE-2022-41903
Biuletyny zabezpieczeń rozwiązane
CVE-2023-21567 Luka w zabezpieczeniach dotycząca odmowy usługi programu Visual Studio
CVE-2023-21815 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu w programie Visual Studio
CVE-2022-23521 atrybuty gitattributes analizowania przepełnienia liczby całkowitej
-
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.
Visual Studio 2022 w wersji 17.0.17
wydany 13 grudnia 2022 r.
Biuletyny zabezpieczeń rozwiązane
- CVE-2022-41089 Zdalne wykonywanie kodu Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu istnieje w programach .NET Core 3.1, .NET 6.0 i .NET 7.0, gdzie złośliwy aktor może spowodować, że użytkownik będzie uruchamiał dowolny kod w wyniku analizowania złośliwie spreparowanych plików xps.
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
- CVE-2022-41119 Zdalne wykonywanie kodu Sterta Przepełnienie sterty sterty w programie Visual Studio
- CVE-2022-39253 Ujawnienie informacji Lokalne wyłudzał linki symboliczne domyślnie
Visual Studio 2022 w wersji 17.0.15
wydany 11 października 2022 r.
Problemy rozwiązane w tej wersji 17.0.15
- Administratorzy będą mogli zaktualizować Instalatora programu VS na komputerze klienckim w trybie offline z układu bez aktualizowania programu VS.
Biuletyny zabezpieczeń rozwiązane
- CVE-2022-41032 Luka w zabezpieczeniach dotycząca podniesienia uprawnień platformy .NET Luka w zabezpieczeniach istnieje w programie .NET 7.0.0-rc.1, .NET 6.0, .NET Core 3.1 i klientach NuGet (NuGet.exe, NuGet.Commands, NuGet.CommandLine, NuGet.Protocol), gdzie złośliwy aktor może spowodować wykonanie dowolnego kodu przez użytkownika.
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.
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.
- Aktualizuje aplikację 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 są właścicielami, ale inny użytkownik może zapisywać, mógł zostać wykorzystany do uruchomienia złośliwego kodu.
- Aktualizuje usługę Git dla systemu Windows do wersji 2.37.1.1, zwracając się do CVE-2022-31012.
Biuletyny zabezpieczeń rozwiązane
- CVE-2022-34716 Luka w zabezpieczeniach dotycząca ujawniania informacji na platformie .NET Luka w zabezpieczeniach umożliwiająca ujawnienie informacji istnieje w programach .NET 6.0 i .NET Core 3.1, co może prowadzić do nieautoryzowanego dostępu do informacji uprzywilejowanych.
- CVE-2022-31012 Zdalne wykonywanie kodu Git dla instalatora systemu Windows może zostać wyłudzone w celu wykonania niezaufanego pliku binarnego
- CVE-2022-29187 Podniesienie uprawnień Złośliwi użytkownicy mogą utworzyć katalog .git w folderze należącym do administratora
- CVE-2022-35777 Luka w zabezpieczeniach dotycząca przepełnienia sterta zdalnego wykonywania kodu programu Visual Studio 2022 (wersja zapoznawcza) analizatora plików Fbx
- CVE-2022-35825 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu programu Visual Studio 2022 (wersja zapoznawcza) analizatora plików Fbx
- CVE-2022-35826 Zdalne wykonywanie kodu programu Visual Studio 2022 (wersja zapoznawcza) Luka w zabezpieczeniach dotycząca przepełnienia stertowego analizatora plików Fbx
- CVE-2022-35827 Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu programu Visual Studio 2022 (wersja zapoznawcza) analizatora plików Fbx
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
- 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.
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
- CVE-2022-30184 Luka w zabezpieczeniach dotycząca ujawniania informacji platformy .NET Luka w zabezpieczeniach istnieje w programach .NET 6.0 i .NET Core 3.1 w programie NuGet, gdzie może wystąpić wyciek poświadczeń.
- 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.
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.
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".
Visual Studio 2022 w wersji 17.0.8
wydany 12 kwietnia 2022 r.
Problemy rozwiązane w tej wersji 17.0.8
- Rozwiązano problem, który powodował, że niektóre animacje wykonywania testów były uruchamiane w tle nawet wtedy, gdy skojarzone wykonania testów zostały ukończone. Powoduje to spowolnienie, które były szczególnie zauważalne na monitorach o wysokiej szybkości odświeżania. Poprawka powinna poprawić środowisko korzystania z programu VS na monitorach o wysokiej szybkości odświeżania.
- Rozwiązano problem polegający na tym, że program Visual Studio zawieszał się/zawieszał się podczas korzystania z wersji TFVC przez dłuższy czas (ponad godzinę).
- Dodano wiersz polecenia instalatora w celu usunięcia nieużywanego kanału.
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.
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.
- Ogromne, powtarzalne spowolnienie interfejsu użytkownika programu VS z częstotliwością odświeżania monitora 300hz
- VSSDK: program VS 17.1.0 (wersja zapoznawcza 5.0) zawiesza się po tym, jak IVsObjectManager.UnregisterLibMgr()
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.
Visual Studio 2022 w wersji 17.0.6
wydany 8 lutego 2022 r.
Problemy rozwiązane w tej wersji 17.0.6
- Zaktualizowano instalator programu Visual Studio w celu poprawnego rejestrowania metadanych kanału.
- Wydane biuletyny w Instalator programu Visual Studio instalacji lub aktualizacji.
- Dodano informacje o datach wygaśnięcia kanału LTSC do okna dialogowego Ustawienia aktualizacji.
- Dodano możliwość programowego zmieniania lokalizacji źródłowej aktualizacji niezależnie od rzeczywistego przeprowadzania aktualizacji. Dzięki temu administratorzy IT mogą programowo zmieniać kanał aktualizacji.
- Zaktualizowano środowisko dodawania konta w usłudze GitHub w celu zwiększenia współczynnika powodzenia.
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
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 link.exe od czasu do czasu 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.
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.
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.
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ę w projektancie formularzy internetowych
- 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.
- Usterka w programie Visual Studio 2022 + Xamarin + SignalR (nie znaleziono metody)
- HtmlLanguageClient: Nie można zainicjować obiektu HtmlLanguageClient. Microsoft Visual Studio Community 2022 Preview (64-bitowa) Wersja 17.0.0 (wersja zapoznawcza 5.0)
- Dziwne rzeczy zdarzają się w edycji css w pliku razor (Blazor)
- Na stronie blazor (*.razor) dodawanie średnika do wiersza kodu c# powoduje skok kursora
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.
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 CMakeSettings zablokowanym podczas oczekiwania 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.
- Nie można wyszukać zaznaczenia, jeśli wybrano część jednego wiersza programu Visual Studio 2022
- Uzupełnianie języka C# platformy Blazor może czasami pokazywać nieprawidłowe informacje
- PackageId:AndroidImage_x86_API25_Private; PackageAction:Install; ReturnCode:3;
- Ctrl-F3 czasami przechodzi do góry dokumentu
- Ctrl-f3 zmienił zachowanie z programu Visual Studio 2019 na visual studio 2022
- Eksplorator testów programu Visual Studio 2022 zawsze wyświetla test jako "Nie uruchamiaj"
- Funkcja IntelliSense w składnikach razor blazor
- Program Visual Studio 2022 pokazuje nieprawidłowe ikony dodawania/usuwania w drzewie kontroli źródła
- Funkcja IntelliSense programu VS 2022 zajmuje trochę czasu lub nie pojawi się nawet w niektórych scenariuszach.
- Funkcja IntelliSense w plikach Razor (cshtml) nadal nie działa w programie VS 2022
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.
- Profiler programu Visual Studio 2022 nie udostępnia żadnych informacji o kodzie profilowanym
- Widok diagsession profilera wydajności zawiesza się przy zmianie rozmiaru okienka
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
- devenv.exe jest teraz tylko 64-bitowa
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.
- 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 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 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.
- 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.
- Dodano nawigację podwordu
- Automatyczne zapisywanie jest teraz dostępne jako funkcja w wersji zapoznawczej
- Środowisko kopiowania/wklejania wielodaszka
- 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:- Zachowaj źródło danych nuget w organizacji, z którego mają być przywracane pakiety nuget.
- 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
- Obsługa wielu repozytoriów w ramach flagi w wersji zapoznawczej dla dowolnego rozwiązania obejmującego różne repozytoria (tj. rozwiązania z projektami hostowanymi w różnych repozytoriach Git)
- Publikowanie w usłudze Azure DevOps jest teraz w pełni obsługiwane w środowisku tworzenia repozytorium git
- Ulepszenia paska stanu, w tym nowa możliwość wyświetlania i otwierania repozytoriów z pustego programu VS i wyświetlania liczby niezatwierdzonych zatwierdzeń
- Menu przepełnienia w oknie Zmiany usługi Git jest teraz dostępne tylko dla repozytoriów lokalnych z dodatkowymi operacjami git
- Ujednolicony pasek narzędzi różnicy zawierający liczbę dodanych/usuniętych wierszy oraz opcje konfiguracji umożliwiające odnajdywanie
- Ulepszenia szczegółów zatwierdzania, w tym bardziej dynamiczny i przyjazny dla użytkownika interfejs użytkownika
Menu Pomoc
- W wersji 17.0 zmieniliśmy model menu Pomocy z materiałem Wprowadzenie i pomocnymi wskazówkami/wskazówkami.
- 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
- Całe uzupełnianie 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.
- Pełne zakończenia 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
- 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
- C#10
- 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 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
- 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 przypadku tworzenia nowych plików TestSettings i edytora TestSettings. Przebiegi testowe nadal będą mogły używać plików TestSettings, jednak element TestSettings został zastąpiony elementem RunSettings i zachęcamy użytkowników do migrowania lepszej 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.
- Odświeżyliśmy funkcję "Ustawienia zaufania" 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 dla administratorów programu Visual Studio.
- Administratorzy IT mogą teraz zgłaszać problemy bez zainstalowanego programu Visual Studio.
- 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łączone 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ługi połączone w programie Visual Studio.
WPF XAML Designer for .NET Framework
- Bieżący projektant WPF XAML dla platformy .NET Framework został zastąpiony nowym projektantem XAML WPF dla platformy .NET Framework, na podstawie tej samej architektury używanej dla projektanta XAML WPF 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
iMicrosoft.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 nowego projektanta XAML WPF dla platformy .NET Framework. Aby uzyskać więcej informacji na temat migracji do nowego modelu rozszerzalności, zapoznaj się z poniższym dokumentem migracji.
- 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 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
- Wdrażanie platformy Xamarin dla systemu iOS kończy się niepowodzeniem po aktualizacji systemu iOS 15
- Wyjątek projektanta systemu Android w wątku "main" java.lang.NullPointerException
- Wdrażanie systemu iOS kończy się niepowodzeniem w programie VS 2022
- System Android Menedżer urządzeń nie ma żadnych urządzeń podstawowych
- Aplikacja systemu iOS "Nie można zainstalować" w symulatorze zdalnym
- Nie można otworzyć tradycyjnych stron właściwości projektu systemu iOS "Wyjątek odwołania o wartości null obiektu"
- Nie można utworzyć archiwum dla platformy Xamarin dla systemu iOS
- Nie można wdrożyć na telefonie iPhone, błąd MT1001: Nie można odnaleźć aplikacji w określonym katalogu
Narzędzia języka Python
- Nie można uruchomić programu Python Profiler, ponieważ funkcja nie została jeszcze dodana
- Wybranie pozycji "Python (najnowsza)" podczas tworzenia środowiska Conda powoduje wyświetlenie komunikatu "Python Version 0.0"
- Program formatujący zgłasza błędy z komunikatami "black" i "autopep8" z komunikatem "Nieprawidłowy tryb poprawki" w: brak nowego wiersza na końcu pliku. Szybkie obejście polega na dodaniu nowego wiersza na końcu pliku, a polecenie "black i autopep8" będzie poprawnie sformatowane
- Polecenia projektu internetowego Django (migrowanie, tworzenie, sprawdzanie itp.) są obecnie wyświetlane błędy
- Uzupełnianie Django w plikach HTML nie działa
- Tryb interaktywny IPython nie działa w języku Python 3.9
- Nawet jeśli moduł zostanie pomyślnie zainstalowany, w danych wyjściowych nadal będzie wyświetlane ostrzeżenie. Szybkie obejście polega na zamknięciu i ponownym otwarciu rozwiązania vs
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".
- 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.
- 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 SHIFT.
- 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.
Ulepszenia punktu przerwania Gutter
Dodaliśmy nowy glyph punktu przerwania, aby wskazać lokalizację, w której użytkownik może ustawić punkt przerwania.
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ęć.
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.
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.
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.
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.
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.
Personalizacja
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.
Redaktor
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.
Automatyczne zapisywanie
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 Alt+Shift+myszy lub Alt+Shift+. Naciśnij Ctrl+Shift+strzałka , aby rozwinąć zaznaczenie. Następnie naciśnij Ctrl+C , aby skopiować tekst w wielu zaznaczeniach. Użyj Alt+Shift+myszy, aby utworzyć wiele karetki dla każdego wiersza, który chcesz wkleić w żądanych lokalizacjach. Na koniec naciśnij Ctrl+V , aby wkleić każdy wiersz na własnym daszku.
Ponadto możesz użyć 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ą 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.
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:
- 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:
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.
- 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.
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
ś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".
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 do ustawień: 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.
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 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.
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 (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ę.
- 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.
- Zostanie otwarte okno Śledzenie wartości umożliwiające analizowanie wyników:
- 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.
- Dodaliśmy opcję wyszukiwania w oknie dialogowym Generowanie przesłonięć, co pozwala na szybkie wyszukiwanie i wybieranie członków do zastąpienia.
- 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.
- Okno Znajdź wszystkie odwołania będzie teraz grupuje projekty wielokierunkowe pomagające zmniejszyć szum wizualny.
- 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.
Teraz refaktoryzacja jest preferowana is not null
is 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.
Języki programowania
- 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 samychusing
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
ToString
rekordem . - 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.
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.
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:
Na przykład: .{ "name": "<name>", "localRoot": "<path to local environment>", // optional "type": "docker", "dockerImage": "<docker image tag>", }
{ "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ędzyplatformowe > Menedżer połączeń, 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.
- Po wybraniu środowiska testy zostaną odnalezione i uruchomione w nowym środowisku.
Teraz możesz uruchamiać i debugować testy w środowisku zdalnym!
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:
- 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"
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ą 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ń.
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 ustawień zaufania 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 pomocą opcji > Ustawienia > zaufania Ponownie podjąć decyzję 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.
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.
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.
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.
Usprawniliśmy również okienko ustawień, aby lepiej organizować wspólne opcje.
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 Tab między uruchomioną aplikacją a programem Visual Studio podczas wprowadzania zmian w kodzie XAML na żywo.
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 strzałek w celu precyzyjnego pozycjonowania i Ctrl + strzałka w celu szybkiego pozycjonowania. Możesz również usunąć linijki, wybierając je (klikając je) i naciskając 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".
- Dodano kartę Powiązanie w obszarze Szybkie akcje, aby można było tworzyć powiązania za pomocą zaledwie kilku kliknięć w projektancie XAML.
- Dodano pole kombi Właściwość docelowa do okna dialogowego Powiązanie danych, aby wybrać właściwość w podróży.
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.
- Niepoprawne formatowanie języka C++, gdy
Place 'else' on a new line
jest wyłączone. - Okno dialogowe zamrożone podczas edytowania i kontynuowania sprawdzania pod kątem aktualizacji kodu
- Problem z uruchamianiem symulatora programu VS Dla systemu Android w systemie Win 11 — hypervisor
- Okno dialogowe zamrożone podczas edytowania i kontynuowania sprawdzania pod kątem aktualizacji kodu
- Problem z uruchamianiem symulatora programu VS Dla systemu Android w systemie Win 11 — hypervisor
- Nie można wdrożyć na telefonie iPhone, błąd MT1001: Nie można odnaleźć aplikacji w określonym katalogu
- Nie można debugować wielu funkcji platformy Azure dotnet 5
- Program Visual Studio przestaje odpowiadać podczas debugowania aplikacji platformy UWP
- Zestaw WebAssembly platformy Blazor: ponowne ładowanie podczas ponownego ładowania, gdy przeglądarka jest zamknięta, powoduje wystąpienie nieprzydatnego wyjątku
- Program Visual Studio ulega awarii bez powodu
- Kolorowanie składni języka C++ nie działa w przypadku używania std:c++lastest w zestawie narzędzi platformy 143
- Wyszukiwanie w pliku nie działa w wersji zapoznawczej vs2022 3
- Program Visual Studio nie ładuje ponownie wszystkich zmienionych plików projektu po zmianie gałęzi
- Błąd podczas aktywowania serwera językowego
- Kliknięcie prawym przyciskiem myszy dowolnego elementu w Eksplorator rozwiązań i wybranie pozycji "Synchronizacja" powoduje nietypową wiadomość. Nie można zaewidencjonować zmian.
- Interfejs użytkownika programu Visual Studio nie odpowiada, gdy zbyt wiele danych wyjściowych dziennika kompilacji podczas kompilacji (np. czasownik diagnostyczny)
- Programowanie w systemie Linux za pomocą języka C++ — połączenie statyczne jest nieprawidłowe
- Szablony T4 w programie VS2022 wymagają niezgodnych narzędzi
- Moduły języka C++20 nie mogą odebrać specjalizacji/przeciążeń szablonu pochodzących z innego modułu
- Zapisywanie pliku w sesji "Live Share" otwiera okno dialogowe "zapisz jako" zamiast zapisywania pliku bezpośrednio
- Projekt C++ nie może ponownie załadować pliku zewnętrznego do projektu podczas uruchamiania
- Błędna regresja z wskaźnikami funkcji
- Nieprawidłowa diagnostyka niejednoznacznego wywołania operatora (C2593) z /permissive- i przyjaciel
- Przeładowywanie na gorąco nie działa dla platformy UWP/IOS platformy Xamarin.Forms po uaktualnieniu do wersji 16.10
- Błąd podczas ładowania szablonu Entitlements.plist
- Błąd funkcji IntelliSense dla konstruktora domyślnego dllimport constexpr
- System nie może odnaleźć określonego pliku (podczas nawigowania po dwukrotnym kliknięciu komunikatu o błędzie kompilacji).
- Projekt języka C++ nie jest już kompilowania w programie VS2022: nie można odnaleźć zestawu "mscorlib.dll"
- Edytor Razor w programie VS2022 (wersja zapoznawcza 2.1) działa wolno
- Funkcja IntelliSense kończy się niepowodzeniem dla języka C++20 i
- PackageId:Microsoft.WebView2.arm64; PackageAction:Install; ReturnCode:-2147219199
- Nieprawidłowe ostrzeżenia dotyczące blokady przez analizator C26110
- 16.10 uaktualnianie powoduje uszkodzenie atrybutu MSTest DataSourceAttribute za pomocą polecenia testrunconfig
- Globalna optymalizacja programu MSVC powoduje nieprawidłowe dane wyjściowe
- Zawiesza się środowisko IDE, karty migotają w nieznanych warunkach
- Dodano obsługę instrumentowania bibliotek dll za pomocą wywołań zwrotnych PROTOKOŁU TLS (instrumentowanych za pośrednictwem vsinstr.exe)
- VS2019 16.10 ASP.NET WEBFORM中不能选择事件
- Awaria katastrofalna (wyjątek od HRESULT: 0x8000FFFF (E_UNEXPECTED)) w projekcie pojedynczego dokumentu MFC
- Szablon podstawowy wybrany przez specjalizację prowadzi do błędu kompilacji
- Nie można zaktualizować z wersji zapoznawczej 1.1 do wersji zapoznawczej 2.0. W grafie zależności wykryto cykl: Microsoft.VisualStudio.ComponentGroup.UWP.VC
- Niepowodzenie instalacji programu Visual Studio 2022 (wersja zapoznawcza) w systemie Windows Server 2022.
- Program Visual Studio 2022 (wersja zapoznawcza 1) ulega awarii środowiska IDE podczas korzystania z funkcji Kompiluj wszystko.
- Debugowanie platformy Xamarin dla systemu Android za pomocą emulatora systemu Android powoduje awarię i ponowne uruchomienie programu Visual Studio 2022.
- Nie można zainstalować żadnej poprzedniej wersji programu VS. Pobieranie kończy się niepowodzeniem z powodu nieprawidłowego podpisu
- Ostrzeżenia analizy kodu/PREfast C26404, C26406, C26407 performance regression in CppCoreCheck::P ointerSafetyXtension::SearchSmartPtrsAndReferences
- Wewnętrzny błąd kompilatora ze znakiem std::to_array, gdy zmienna jest globalna i typ char const
- Błędy kompilowania nagłówków zewnętrznych
- C3493 z /std:c++latest przy użyciu powiązania strukturalnego w lambda
- Przycisk Wyślij opinię nie działa w programie VS 2022 po zainstalowaniu narzędzi języka Python
- Pliki Aspx uszkodzone po aktualizacji 16.10
- Kompilator języka C++ generuje nieprawidłowy kod dla metody constexpr
- Brak ostrzeżenia dla nieużywanej zmiennej po zadeklarowaniu const
- Kolizja nazw modułów języka C++
- Funkcja GC zbiera podczas wywołania metody w klasie ref języka c++/cli
- Publikowanie języka Python Django z projektem WebDeploy kończy się niepowodzeniem od czasu aktualizacji programu Visual Studio do wersji 16.9
- ICE: OPTYMALIZACJA ARM64 pod kątem /std:c++latest
- Wyszarzony kod źródłowy aplikacji programu VS 16.3.0 .NET Core 3.0 Blazor Server i utrata funkcji IntelliSense po wdrożeniu
- Klucz podpisywania kodu systemu iOS "iPhone Distribution: Microframe Corp
(xxxxx)'
nie znaleziono w łańcucha kluczy - Okno Narzędzia diagnostyczne ładuje miniaturę i nie zmienia rozmiaru prawidłowo.
- Wystąpił błąd kompilatora 2694 podczas próby wywołania make_shared w klasie z zgłaszającym destruktorem w środowisku MSVC 16.9 (wersja zapoznawcza 2).
- Wystąpił błąd podczas przetwarzania migawki nie można przetworzyć zarządzanej sterty.
- Program MSVC umożliwia inicjowanie domyślne const int w nowym wyrażeniu.
- Odebrano ostrzeżenie C5219 w nagłówku STL "complex".
- Etykietka narzędzia blokuje wyniki wyszukiwania.
- Program Visual Studio udzielił dziwnego wyjątku.
- Kompilator Intel C++, ICL, ma błąd kompilacji, ponieważ użycie pojęć w pliku nagłówka nie jest chronione za pomocą ifdef __cpp_lib_concepts.
- Występuje wewnętrzny błąd kompilatora podczas rozszerzania __pragma (optymalizowanie) przy użyciu /Zc:preprocessor.
- Nieprawidłowy typ "func" wewnątrz lambda w nieowartym kontekście.
- Instalator programu Visual Studio ulega awarii podczas udostępniania polecenia vsconfig
- Pobieranie domyślnego projektu biblioteki MFC dll szablonu kompilacji po dodaniu nowej klasy okna dialogowego przez kreatora.
- Instalacja programu Visual Studio w trybie offline na potrzeby tworzenia aplikacji klasycznych natywnych języka C++ nie działa corretly.
- Nawiązywanie połączenia z projektem usługi Azure VSTS za pośrednictwem programu Visual Studio powoduje, że interfejs użytkownika przestaje odpowiadać.
- Pola tekstowe w obszarze Opcje są nieczytelne, jeśli używasz większej czcionki.
- Program Visual Studio dodaje nowy element w folderze przestaje odpowiadać.
- Wyjątki stałej nullreference podczas edytowania plików js/cshtml.
- Wystąpił błąd podczas aktywowania serwera językowego zdalnego C#/Visual Basic Language Server Client.
- Występuje błąd wewnętrzny, gdy /E jest używany z /experimental:preprocessor i __pragma.
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ę 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.