Visual Studio Icon Заметки о выпуске Visual Studio 2019 версии 16.8



Сообщество разработчиков | Требования к системе | Совместимость | Распространяемый код | Условия лицензии | Блоги | Известные проблемы | в последнем выпуске Новые возможности в документах Visual Studio


Нажмите кнопку, чтобы скачать последнюю версию Visual Studio 2019. Инструкции по установке и обновлению Visual Studio 2019 см. в документации по обновлению до последнего выпуска Visual Studio 2019. Кроме того, см. инструкции по установке в автономном режиме.

Community Download Button Professional Download Button Enterprise Download Button


Новые возможности Visual Studio 2019 версии 16.8

Выпуски Visual Studio 2019 версии 16.8

Помещенные в архив заметки о выпуске Visual Studio 2019

Блог Visual Studio 2019

Блог Visual Studio 2019 является официальным источником сведений о продукте от группы разработчиков Visual Studio. Более подробные сведения о выпусках Visual Studio 2019 версии 15.9 можно найти в следующих записях:


См. полный список всех предложений по внесению изменений в Visual Studio 2019 версии 16.8 на сайте сообщества разработчиков

Release Notes Icon Visual Studio 2019 версии 16.8.7 New release icon

Выпущено 9 марта 2021 г.

Проблемы, устраненные в этом выпуске Visual Studio 2019 версии 16.8.7

Советы по безопасности

CVE-2021-21300 Git для уязвимости удаленного выполнения кода в Visual Studio

Существует уязвимость удаленного выполнения кода, когда Visual Studio клонирует вредоносный репозиторий.

CVE-2021-26701 Уязвимость удаленного выполнения кода в .NET Core

В .NET 5 и .NET Core есть уязвимость удаленного выполнения кода. Она обусловлена методами обработки кодировки текста.


Release Notes Icon Visual Studio 2019 версии 16.8.6 New release icon

Выпущено 22 февраля 2021 г.

Проблемы, устраненные в этом выпуске Visual Studio 2019 версии 16.8.6


Release Notes Icon Visual Studio 2019 версии 16.8.5

Выпущено 09 февраля 2021 г.

Советы по безопасности

CVE-2021-1639 Уязвимость удаленного выполнения кода в языковой службе TypeScript

При загрузке Visual Studio вредоносного репозитория, содержащего файлы кода JavaScript или TypeScript, существует уязвимость удаленного выполнения кода.

CVE-2021-1721 Уязвимость .NET Core, приводящая к отказу в обслуживании

При создании веб-запроса HTTPS во время создания цепочки сертификатов X509 существует уязвимость, приводящая к отказу в обслуживании.

CVE-2021-24112 Уязвимость удаленного выполнения кода в .NET 5 и .NET Core

При удалении метафайлов, когда графический интерфейс по-прежнему ссылается на них, существует уязвимость удаленного выполнения кода. Эта уязвимость существует только в системах, работающих под управлением MacOS или Linux.

Проблемы, устраненные в этом выпуске Visual Studio 2019 версии 16.8.5

  • Исправлена проблема, при которой файл APPX x86 Microsoft.VCLibs, установленный в пакетах расширений SDK, обновлялся с неправильной подписью.
  • Исправлена утечка памяти при использовании функций DesignTime C++.
  • Исправлена проблема, из-за которой возникает исключение, если при импорте существующей базы данных в проект SSDT не был сохранен пароль.
  • Исправлена проблема, из-за которой кнопка "Опубликовать" была отключена при публикации клиентами, работающими с продуктом впервые, проектов .NET Core в папке или других целевых объектах размещения.
  • Исправлено зависание, которое иногда возникало при открытии страницы просмотра профилей публикации.
  • Добавлена поддержка Xcode 12.4.

Исправления от сообщества разработчиков


Release Notes Icon Visual Studio 2019 версии 16.8.4

Выпущено 12 января 2021 г.

Советы по безопасности

CVE-2021-1651 / CVE-2021-1680. Уязвимость, которая может привести к несанкционированному повышению привилегий в службе стандартного сборщика центра диагностики

Уязвимость, которая может привести к несанкционированному повышению привилегий, возникает, когда стандартный сборщик центра диагностики неправильно обрабатывает определенные операции с данными.

CVE-2020-26870 Уязвимость при удаленном выполнении кода в Visual Studio Installer

Уязвимость удаленного выполнения кода возникает, когда Visual Studio Installer пытается отобразить вредоносные данные Markdown.

CVE-2021-1723 Уязвимость ASP.NET Core и Visual Studio, приводящая к отказу в обслуживании

В способе обработки запросов HTTP/2 в Kestrel существует уязвимость, приводящая к отказу в обслуживании.

Проблемы, устраненные в этом выпуске Visual Studio 2019 версии 16.8.4

  • Устранена проблема, из-за которой компоненты IntelliCode для C# могли не устанавливаться при установке IntelliCode из Visual Studio Marketplace в более ранних версиях Visual Studio.
  • Транзитивные ссылки на проекты теперь учитываются, когда проекты PackageReference ссылаются на проекты packages.config с зависимостями PackageReference.
  • Добавлена поддержка Xcode 12.3.
  • Исправлена поддержка симулятора x86_64 watchOS 7.0+
  • Мы исправили ложноположительные результаты (C33001 ~ C33005) для использования вариантов, возвращаемых функцией.
  • Исправление периодического сбоя VS в конструкторе .NET Core WinForms при закрытии проекта или решения.
  • Исправление в проекте базы данных: При перетаскивании файла из обозревателя решений в открытый файл происходит удаление файла из файловой системы.
  • При нажатии кнопки "Обновить" в окне "Сравнение схем SQL" не сохраняются изменения в файле SQLPROJ.
  • Исправлена ошибка, из-за которой сборки завершались с ошибками "Не найдена таблица или столбец".
  • Исправлен флажок "Фиксировать после слияния" в разделе Team Explorer -> Ветви.
  • Исправлена ошибка, из-за которой Visual Studio могла переставать отвечать в течение нескольких секунд при проверке наличия обновлений.
  • Средство DeploymentAppRecipe.exe теперь поддерживает запуск из любого текущего каталога. Оно также возвращает ненулевое значение при сбое развертывания и выводит сообщения об ошибках в стандартный поток ошибок.

От сообщества разработчиков



Release Notes Icon Visual Studio 2019 версии 16.8.3

Дата выпуска: 8 декабря 2020 г.

Советы по безопасности

CVE-2020-17156 Уязвимость при удаленном выполнении кода в Visual Studio

Существует уязвимость удаленного выполнения кода, когда Visual Studio клонирует вредоносный репозиторий.

Проблемы, устраненные в этом выпуске Visual Studio 2019 версии 16.8.3

  • Исправлена внутренняя ошибка компилятора, если вложенный шаблон функции определен за пределами родительского класса.
  • Исправлена ошибка C2355, когда this используется в инициализаторе нестатического элемента данных.
  • Ошибка загрузки набора правил исправлена для пользовательского набора правил с помощью параметра /analyze:ruleset с /analyze:rulesetdirectory и (или) параметра /analyze:projectdirectory.
  • Исправлен периодический сбой в Visual Studio при использовании конструктора .NET Core WinForms.
  • Вставка .NET 5.0.1 в Visual Studio версии 16.8.3
  • Исправлена проблема, из-за которой некоторые окна инструментов активации в контексте пользовательского интерфейса могут привести к сбою Visual Studio.
  • Исправлена возможность отправки со страницы "Управление ветвями", если отсутствует ветвь удаленного отслеживания Git.
  • Включена поддержка Xcode 12.2.

От сообщества разработчиков



Release Notes Icon Visual Studio 2019 версии 16.8.2

Дата выпуска: 19 ноября 2020 г.

Проблемы, устраненные в этом выпуске Visual Studio 2019 версии 16.8.2

  • Исправлена ошибка оптимизации в циклах.
  • Исправлена внутренняя ошибка компилятора в реализации гарантированного пропуска копирования (функция C++ 17).
  • Исправлено ухудшение производительности при сборке с активным использованием анонимных типов.
  • Устранена проблема, при которой при редактировании кода C# появлялось сообщение "Specified argument was out of the range of valid values" (Указанный аргумент выходит за рамки допустимых значений).
  • Исправлена проблема, которая могла привести к возникновению исключения MissingMethodException при сборке проекта с шаблонами T4.
  • Исправлена проблема, при которой поиск в диалоговом окне новых проектов мог не возвращать результаты.

От сообщества разработчиков



Release Notes Icon Visual Studio 2019 версии 16.8.1

Дата выпуска: 12 ноября 2020 г.

Проблемы, устраненные в этом выпуске Visual Studio 2019 версии 16.8.1

  • Исправлена проблема с высокой степенью влияния, когда пакет SourceExplorerPackage загружался неправильно. При клонировании репозитория в Team Explorer появлялось предупреждение. При возникновении этой проблемы продукт переставал отвечать на запросы.

Release Notes Icon Visual Studio 2019 версии 16.8.0

Дата выпуска: 10 ноября 2020 г.

Сводка новых возможностей этого выпуска Visual Studio 2019 версии 16.8


F#:

  • F# 5 теперь выпускается вместе с .NET 5.
  • Улучшения производительности и исправления для инструментария Visual Studio с использованием F# Tools версии 11.0.0.
  • Полные заметки о выпуске доступны на GitHub.

C++:

  • Теперь поддерживаются сопрограммы C++20 при использовании /std:c++latest и заголовка <coroutine>.
  • IntelliSense теперь обеспечивает поддержку заголовков <concepts> и <ranges> C++20, а также позволяет переименовывать и просматривать определения концепций.
  • Наша версия библиотеки STL теперь поддерживает большинство диапазонов C++20.
  • Компилятором MSVC теперь поддерживаются условно тривиальные специальные функции-члены.
  • C11 и C17теперь поддерживаются с помощью переключателей /std:c11 и /std:c17.
  • К дополнительным улучшениям STL относятся полная поддержка std::atomic_ref, std::midpoint и std::lerp и std::execution::unseq, оптимизации std::reverse_copy и другие.
  • Обновленная версия CMake поставляется с Visual Studio для CMake 3.18.
  • Наши средства анализа кода теперь поддерживают SARIF 2.1 — отраслевой стандартный формат журнала статического анализа.
  • Отсутствующие средства сборки в проектах Linux теперь будут вызывать предупреждение на панели инструментов и четкое описание отсутствующих средств в списке ошибок.
  • Теперь можно выполнять отладку дампов ядра Linux в удаленной системе Linux или WSL непосредственно из Visual Studio.
  • Для создания комментариев в C++ Doxygen мы добавили дополнительные варианты стиля комментариев (/*! и //!).
  • Дополнительные объявления о vcpkg
  • Включена поддержка компилятора для лямбда-выражений в невычисляемых контекстах.
  • Повышена производительность ссылки /debug:full путем создания PDB-файлов в многопоточном режиме. Для некоторых крупных приложений и AAA-игр компоновка выполняется в 2–4 раза быстрее.
  • Отладчик Visual Studio теперь поддерживает char8_t.
  • Включена поддержка проектов ARM64 с использованием clang-cl.
  • Включена поддержка встроенных объектов Intel AMX.

Отладчик:

  • Поддержка отладки дампа ядра Linux в .NET Core
  • Автоматический анализ .NET и .NET Core
  • Автоматический анализ критического пути для памяти .NET и .NET Core

Обновления экспериментального редактора Razor:

  • Лампочки Blazor.
  • Лампочки C#:
  • Расширенное форматирование Razor.
  • Переименование компонентов Razor в разметке из файлов .razor.
  • Переход к определению в пространстве имен тегов компонентов Blazor.
  • Цветовое выделение C#.
  • Цветовое выделение подсказки завершения C#.
  • Переход к определению или реализации Razor, включая закрытые файлы.
  • Поиск всех ссылок в закрытых файлах Razor.
  • Повышение эффективности и стабильности редактирования Razor для крупных проектов и решений.

Использование Fakes с проектами в стиле пакета SDK:

  • При использовании Fakes с проектами в стиле пакета SDK некоторые пользователи столкнулись со следующей ошибкой во время создания оболочек.

Производительность Git:

  • Узнайте, как использовать все функции Git, из нашей новой интерактивной документации.
  • Открытие окна репозитория Git в любое время в окне "Изменения Git", меню "Вид" и строке "Состояние".
  • Получение, извлечение и отправка из нескольких удаленных репозиториев в окне "Изменения Git".
  • Просмотр сообщений об успешном выполнении и ошибках для команд Git в верхней части окна "Репозиторий Git".
  • Создайте новую ветвь из рабочего элемента Azure DevOps
  • Откройте репозиторий Git из списка локальных репозиториев в меню Git
  • Теперь поставщиком системы управления версиями по умолчанию является Git, а не TFVC.
  • Возможность одним щелчком переключаться между журналами ветви в окне репозитория Git.
  • Просмотр и выбор из списка решений в Обозревателе решений после открытия репозитория.
  • Изменение представления журнала и поиск фиксаций с помощью панели инструментов в окне репозитория Git.
  • Принесение, вытягивание и отправка из разделов входящих и исходящих фиксаций в графе журнала ветви.
  • Получение запроса на создание запроса на вытягивание после отправки ветви в удаленный репозиторий.
  • Просмотр имен ветвей в командах слияния и перемещения изменений из одной ветви в другую в контекстном меню списка ветвей.
  • Доступ к командам Git через контекстное меню в обозревателе решений и редакторе.
  • Отслеживание выполнения клонирования с помощью нового модального диалогового окна с возможностью перемещения процесса в фоновый режим.

IntelliCode:

  • Получение персонализированных завершений IntelliCode в документации по Visual Studio.
  • Обновление IntelliCode в соответствии с базой кода и предоставление в рамках документации по рабочему процессу CI команды.

Производительность .NET:

  • Анализаторы Roslyn теперь включены в пакет SDK для .NET 5.0.
  • Рефакторинг с новым синтаксисом сопоставления шаблонов not C# 9 при наличии оператора подавления.
  • Рефакторинг встроенного метода для замены статических методов, методов экземпляров и расширений в пределах тела одного оператора.
  • Исправление кода для преобразования экземпляров typeof в nameof в C# и GetType в NameOf в Visual Basic.
  • В C# и Visual Basic включена поддержка подсказок для имен встроенных параметров, которые вставляют элементы оформления для литералов, приведенных литералов и создаваемых экземпляров объектов перед каждым аргументом в вызовах функций.
  • Рефакторинг, который извлекает элементы из выбранного класса в новый базовый класс в C# и Visual Basic.
  • Для очистки кода доступны новые параметры конфигурации, которые могут применять настройки форматирования и заголовков файлов, заданные в файле EditorConfig, к отдельному файлу или всему решению.
  • Исправление кода, позволяющее удалить ключевое слово in, где аргумент не должен передаваться по ссылке.
  • Рефакторинг, который представляет новые варианты блоков объединения и сопоставления шаблонов C# 9, включая преобразование == для использования is, где это применимо.
  • Исправление кода, позволяющее сделать класс абстрактным при попытке написать абстрактный метод в неабстрактном классе.
  • Завершение IntelliSense в строковых литералах DateTime и TimeSpan автоматически появляется при вводе первого символа кавычек.
  • Исправление кода, позволяющее удалить ненужные pragma suppressions и SuppressMessageAttributes.
  • Rename и Find All References теперь распознают ссылки на символы в целевой строке глобального объекта SuppressMessageAttributes.
  • ByVal становится полупрозрачным, информируя о том, что это необязательный вариант. Также реализовано исправление, позволяющее удалить ненужный параметр ByVal в Visual Basic.
  • Включена поддержка Интерактивного окна для нескольких сред выполнения, включая .NET Framework и .NET Core.
  • Добавлен новый API RegisterAdditionalFileAction, позволяющий авторам анализаторов создать анализатор для дополнительных файлов.

Интегрированная среда разработки Visual Studio 2019:

  • Добавление учетной записи GitHub с помощью интерфейса управления учетными записями.
  • В этом выпуске устаревший интерфейс поиска в файлах признан нерекомендуемым, а все пользователи перемещаются на новый интерфейс. Группа разработчиков редактора сотрудничает с пользователями, оставляющими отзывы в Сообществе разработчиков, которые сталкиваются с проблемами в современном интерфейсе поиска в файлах.
  • Поставщик публикации ClickOnce теперь доступен для классических приложений Windows для .NET Core 3.1 и .NET 5.0.

Перенос текста в области "Подробности теста" Обозревателя тестов:

  • теперь вы можете настроить перенос текста в области "Подробности теста" в Обозревателе тестов.

Средства XAML (WPF, UWP и Xamarin.Forms):

  • Улучшения диагностики ошибок привязки XAML
  • Параметры Горячей перезагрузки XAML перемещены в раздел "Отладка" > "Горячая перезагрузка".
  • Заполнение панели элементов из пакетов NuGet без ссылок.

JavaScript/TypeScript:

  • Отладчик JavaScript/TypeScript теперь поддерживает отладку служебных сценариев, веб-сценариев, iFrame и страниц JavaScript. Кроме того, новый процесс отладки поддерживает одновременную отладку в браузере серверных приложений внутреннего узла и клиентских решений JavaScript. Эта функция все еще является экспериментальной. Вы можете включить ее в меню "Параметры отладки".
  • Теперь можно активировать возможности рефакторинга в любом месте, где они могут быть доступны, с помощью клавиш действия кода (CTRL+.). Вам даже не нужно выбирать текст — TypeScript теперь самостоятельно определяет расположение курсора, предлагая наилучшие возможности рефакторинга.
  • Теперь можно точно настроить пакеты, которые TypeScript будет искать для автоматического завершения импорта. Это может привести к повышению производительности в некоторых проектах с множеством зависимостей. Дополнительные сведения см. в заметках о выпуске TypeScript 4.0[https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-0.html ].
  • Мы добавили в область вывода сообщение, информирующее о том, какие типы мы устанавливаем для поддержки IntelliSense. Мы рекомендуем добавить в проект элемент tsconfig, чтобы настроить используемые типы.
  • Обратите внимание, что мы добавили компилятор TypeScript 4.0 и языковую службу.

Советы по безопасности

CVE-2020-17100 Уязвимость, связанная с незаконным изменением, в Visual Studio

Уязвимость, связанная с незаконным изменением, возникает, когда подключаемый модуль "Инструменты Python для Visual Studio" создает папку python27. Злоумышленник, использующий эту уязвимость, может запускать процессы с повышенными привилегиями.

Проблемы, устраненные в этом выпуске

  • Исправлена проблема, из-за которой при компиляции в Visual Studio 2019 16.7 с использованием 80-битного числа типа long double выдаются ошибки компилятора Intel C++, препятствующие сборке проектов.
  • Исправлена проблема, из-за которой компонент Live Unit Testing не запускался в некоторых сценариях.
  • Добавлена версия .NET 5.0.RC2 в выпуск Visual Studio 2019 версии 16.8, предварительная версия 4.
  • Исправлена ошибка, из-за которой случайная операция Git может начаться и никогда не завершиться.
  • Добавлена дополнительная функциональность в операции создания и подключения Visual Studio Codespaces. Зарегистрируйтесь в службе Codespaces для Visual Studio и опробуйте ее возможности.
  • Исправлена ошибка, вызывавшая сбой или зависание Visual Studio 2019 при закрытии или выходе из решений ASP.NET Core.
  • Устранена проблема, из которой не удавалось загрузить систему проектов C++ после удаления и переустановки Visual Studio 2019.

Сведения о новых возможностях Visual Studio 2019 версии 16.8.0

C++

  • Теперь поддерживаются сопрограммы C++20 при указании /std:c++latest и заголовка <coroutine>. Поддержка прежнего поведения доступна через <experimental/coroutine> и переключатель /await.
  • Теперь технология IntelliSense обеспечивает поддержку заголовков C++20 <concepts> и <ranges>, а также переименование и просмотр определений концепций. Существует известная проблема, которую мы планируем устранить в предварительной версии 4.
  • Наша версия библиотеки STL теперь поддерживает большинство диапазонов C++20. Ход выполнения можно отслеживать по проблемам с диапазонами на GitHub.
  • Компилятором MSVC теперь поддерживаются условно тривиальные специальные функции-члены.
  • C11 и C17теперь поддерживаются с помощью переключателей /std:c11 и /std:c17.
  • К дополнительным улучшениям STL относятся полная поддержка std::atomic_ref, std::midpoint и std::lerp и std::execution::unseq, оптимизации std::reverse_copy и другие. Полный список обновлений можно найти в журнале изменений.
  • Мы обновили версию CMake, поставляемую с Visual Studio, до CMake 3.18.
  • Наши средства анализа кода теперь поддерживают SARIF 2.1 — отраслевой стандартный формат журнала статического анализа. Дополнительные сведения о формате SARIF см. в официальной спецификации.
  • Отсутствующие средства сборки в проектах Linux теперь будут вызывать предупреждение на панели инструментов и четкое описание отсутствующих средств в списке ошибок.
  • Теперь можно выполнять отладку дампов ядра Linux в удаленной системе Linux или WSL непосредственно из Visual Studio.
  • Для создания комментариев в C++ Doxygen мы добавили дополнительные варианты стиля комментариев (/*! и //!).
  • Дополнительные объявления о vcpkg
  • Добавлена поддержка компилятора для лямбда-выражений в невычисляемых контекстах, что позволяет использовать лямбда-выражения в описателях decltype.
  • Теперь в Visual Studio доступны анализатор кода и исправления «по мере ввода». Настройка производится в разделе меню «Сервис»-> «Параметры»->«Текстовый редактор»->«C/C++»->«CodeStyle»->«Анализатор кода и исправления».
As-you-type linter showing warning for using bitwise & instead of logical && on bools
Анализатор кода «по мере ввода»

Отладчик

Поддержка отладки дампа ядра Linux в .NET Core

До сих пор отладка управляемых дампов ядра Linux в Windows была сложной задачей. Она, как правило, включала настройку другой среды Linux, которая точно отражала бы производственную среду, и установку набора средств для анализа. Благодаря улучшениям в Visual Studio 2019 16.8 предварительная версия 3 можно просто перетащить управляемый дамп ядра Linux непосредственно в интегрированную среду разработки и сразу же начать отладку.

Автоматический анализ .NET

Асинхронное программирование существует на платформе .NET уже несколько лет, но исторически сложилось так, что его было сложно реализовать. Мы реализовали анализатор дампа управляемой памяти, который помогает определять следующие сценарии и антишаблоны:

  • Sync-over-Async
  • Нехватка потоков ThreadPool

Автоматический анализ критического пути для памяти .NET и .NET Core

Это позволяет клиентам интуитивно понятным способом просматривать доминирующие типы объектов в куче памяти, используя специальные заметки в окне инструментов диагностики памяти.

Проблемы с созданием оболочек с использованием Fakes с проектами в стиле пакета SDK

При использовании новой функции поддержки Fakes для проектов в стиле SDK некоторые пользователи столкнулись со следующей ошибкой создания модификаторов.

Cannot generate shim for System.DateTime: type is not supported because of internal limitations

Исправление для этого доступно в предварительной версии 3 для выпуска 16.8. Для выпусков 16.7.* используйте следующее обходное решение:

  1. Добавьте <FakesUseV2Generation>False</FakesUseV2Generation> в PropertyGroup в своем файле CSPROJ.
  2. Добавьте <Fakes Include="Fakes\*.fakes" /> в ItemGroup в своем файле CSPROJ.
  3. Добавьте ссылку на созданные сборки Fakes в ProjectDir/FakesAssemblies.

Вы также можете следить за отзывами в сообществе разработчиков для получения новых сведений.

Обновления экспериментального редактора Razor

Новый экспериментальный редактор Razor теперь поддерживает следующие функции редактирования Razor:

  • Лампочки Blazor:
    • Извлечение в код программной части*:
    • Создание компонента из тега*
    • Добавление директивы @using для компонента
    • Полное имя тега компонента
  • Лампочки C#:
    • Добавление директивы @using
    • Полное имя типа
  • Расширенное форматирование Razor.
  • Переименование компонентов Razor в разметке из файлов .razor.
  • Переход к определению в именах тегов компонентов Blazor.
  • Цветовое выделение C#.
  • Цветовое выделение подсказки завершения C#.
  • Поиск всех ссылок в закрытых файлах Razor.
  • Повышение эффективности и стабильности редактирования Razor для крупных проектов и решений.

* Работает только в локальных сценариях Razor и еще не поддерживается в Visual Studio Codespaces и Live Share.

Чтобы включить экспериментальный редактор Razor, перейдите в раздел Сервис > Параметры > Среда > Предварительная версия функций, выберите Включить экспериментальный редактор Razor, а затем перезапустите Visual Studio.

Интегрированная среда разработки Visual Studio 2019

  • Добавьте свою учетную запись GitHub с помощью привычного интерфейса управления учетными записями Visual Studio. После этого интегрированный терминал и другие функции смогут использовать ваши учетные данные для удовлетворения требований к аутентификации GitHub.
Inline parameter name hints with GitHub
Добавление учетных записей GitHub в Visual Studio
  • Поставщик публикации ClickOnce теперь доступен для классических приложений Windows для .NET Core 3.1 и .NET 5.0. Чтобы начать работу, щелкните проект правой кнопкой мыши в Обозревателе решений и выберите "Опубликовать" или откройте меню <AppName> "Сборка" > "Опубликовать". ClickOnce можно найти в категории "Папка".
Inline parameter name hints with GitHub Image
Поставщик публикации ClickOnce в Visual Studio

Производительность Git

  • Создайте новую ветвь из рабочего элемента Azure DevOps

    Create a new branch from an Azure DevOps work item
    Создание новой ветви из рабочего элемента

  • Откройте репозиторий Git из списка локальных репозиториев в меню Git

Local Repositories list
Список локальных репозиториев в меню Git
  • Теперь поставщиком системы управления версиями по умолчанию является Git, а не TFVC. Эту настройку можно изменить в меню «Сервис» - «Параметры» - «Система управления версиями»

  • Возможность одним щелчком переключаться между журналами ветви в окне репозитория Git.

  • Возможность просмотра и выбора из списка решений с помощью Обозревателя решений в репозитории после его открытия

    Preview Feature toggle to show list of Views when opening a repo.
    Ротация функций (предварительная версия) для отображения списка представлений при открытии репозитория.

List of Views in Solution Explorer
Список представлений в Обозревателе решений

Производительность .NET

  • Анализаторы .NET Compiler Platform (Roslyn) выполняют анализ безопасности, производительности, структуры и других характеристик кода на C# или Visual Basic, а также выявляют другие проблемы в нем. Начиная с .NET 5.0, эти анализаторы входят в состав пакета SDK для .NET. Для проектов, предназначенных для .NET 5.0 или более поздней версии, анализаторы кода включены по умолчанию. Можно включить анализ кода для проектов, предназначенных для более ранних версий .NET, задав для свойства EnableNETAnalyzers значение true. Можно отключить анализ кода для проекта, задав для параметра EnableNETAnalyzers значение false. Для включения и отключения анализаторов .NET можно также использовать окно свойства проекта. Чтобы открыть окно свойств проекта, щелкните правой кнопкой мыши проект в обозревателе решений и выберите пункт Свойства. Затем перейдите на вкладку Анализ кода, где можно установить или снять флажок параметра Включить анализаторы .NET.
Project Properties window to enable .NET Analyzers
Окно свойств проекта для включения анализаторов .NET
  • Теперь существует рефакторинг, в котором добавлен новый синтаксис сопоставления шаблонов C# 9 not при наличии оператора подавления. Наведите курсор на оператор подавления. Нажмите CTRL+ . , чтобы открыть меню Быстрые действия и рефакторинг. Выберите Использовать сопоставление шаблонов.
Refactoring introducing C# 9 not pattern matching syntax
Рефакторинг с новым синтаксисом сопоставления шаблонов C# 9 not
  • Теперь имеется рефакторинг встраивания метода, который помогает заменить использование статических методов, экземпляров и расширений в пределах тела одного оператора с возможностью удаления исходного объявления метода. Наведите курсор на место использования метода. Нажмите CTRL+ . , чтобы открыть меню Быстрые действия и рефакторинг. Затем выберите один из следующих вариантов.

Выберите Встроить <QualifiedMethodName> , чтобы удалить объявление встраиваемого метода:

Inline Method refactoring removing declaration
Рефакторинг встраивания метода: удаление объявления

Выберите Встроить и сохранить <QualifiedMethodName> , чтобы сохранить исходное объявление метода:

Inline Method refactoring preserving declaration
Рефакторинг встраивания метода: сохранение объявления

  • Создание нового файла C# или Visual Basic из шаблона учитывает параметры стиля кода EditorConfig. Следующие стили кода применяются автоматически при создании новых файлов: заголовки файлов, сортировка директив using и размещение директив using внутри или снаружи пространств имен.

  • Реализована поддержка C# и Visual Basic для подсказок для имен встроенных параметров, которые вставляют элементы оформления для литералов, приведенных литералов и создаваемых экземпляров объектов перед каждым аргументом в вызовах функций. Чтобы включить эту функцию, перейдите в раздел Сервис > Параметры > Текстовый редактор > C# или Basic > Дополнительно и выберите Отображать подсказки для имен встроенных параметров (экспериментальная функция) . После этого подсказки для имен встроенных параметров появятся в файле C# или Visual Basic.

Inline parameter name hints
Подсказки для имен встроенных параметров
  • Теперь можно извлекать элементы из выбранного класса в новый базовый класс с помощью нового метода рефакторинга Извлечь базовый класс. Поместите курсор на имя класса или на выделенный элемент. Нажмите CTRL+ . , чтобы открыть меню Быстрые действия и рефакторинг. Выберите Извлечь элементы в новый базовый класс. Откроется диалоговое окно Извлечение базового класса, где можно указать имя базового класса и расположение, куда его следует поместить. Вы можете выбрать элементы, которые необходимо переместить в новый базовый класс, и сделать их абстрактными, установив флажок в столбце "Сделать абстрактным".
Extract Base Class
Извлечение базового класса

После нажатия кнопки ОК будет добавлен новый базовый класс вместе с его элементами.

  • Добавлено исправление кода для преобразования экземпляров typeof(<QualifiedType>).Name в nameof(<QualifiedType>) в C# и экземпляров GetType(<QualifiedType>).Name в NameOf(<QualifiedType>) в Visual Basic. Использование nameof вместо имени типа позволяет избежать отражения, происходящего при извлечении объекта. Поместите курсор в экземпляр typeof(<QualifiedType>).Name. Нажмите CTRL+ . , чтобы открыть меню Быстрые действия и рефакторинг. Затем сделайте следующее:

При использовании C# выберите Преобразовать typeof в nameof :

Convert typeof to nameof
Преобразование typeof в nameof

При использовании Visual Basic выберите Преобразовать GetType в NameOf :

Convert GetType to NameOf
Преобразование GetType в NameOf
  • У функцииОчистка кода появились новые параметры конфигурации, которые могут применять параметры форматирования и заголовков файлов, заданные в файле EditorConfig, к отдельному файлу или ко всему решению.
Formatting and File Header support in Code Cleanup
Поддержка параметров форматирования и заголовков файлов функцией "Очистка кода"
  • Теперь доступно исправление кода, позволяющее удалить ключевое слово in, где аргумент не должен передаваться по ссылке. Поместите курсор на ошибку. Нажмите CTRL+ . , чтобы открыть меню Быстрые действия и рефакторинг. Выберите Удалить ключевое слово "in" .
Remove in keyword code fix
Исправление кода для удаления ключевого слова `in`
  • Теперь доступен рефакторинг, представляющий новые методы объединения шаблонов C#9. Помимо предложений сопоставления шаблонов, например преобразования == для использования is по мере возможности, это исправление кода также предлагает методы объединения шаблонов and, or и not при сопоставлении нескольких различных шаблонов и отрицании. Поместите курсор внутрь оператора. Нажмите CTRL+ . , чтобы открыть меню Быстрые действия и рефакторинг. Выберите Использовать сопоставление шаблонов.
Introduce C#9 Pattern Combinators
Введение в методы объединения шаблонов C#9
  • Теперь доступно исправление кода, позволяющее сделать класс абстрактным, когда вы пытаетесь написать абстрактный метод в неабстрактном классе. Поместите курсор на ошибку метода. Нажмите CTRL+ . , чтобы открыть меню Быстрые действия и рефакторинг. Выберите Make class "abstract" (Сделать класс абстрактным).
Make Class Abstract
Превращение класса в абстрактный
  • В выпуске 16.7, предварительная версия 1 доступно завершение IntelliSense в строковых литералах DateTime и TimeSpan. В данном выпуске этот список завершения автоматически отображается при вводе первой кавычки. В прошлом для просмотра этого списка завершения требовалось нажать клавиши CTRL+ПРОБЕЛ. Поместите курсор внутрь строкового литерала DateTime или TimeSpan и введите первую двойную кавычку. Вы увидите параметры завершения и пояснения к каждому символу. Будут указаны формат даты и времени, а также пример.
IntelliSense Completion in DateTime and TimeSpan String Literals
Завершение IntelliSense в строковых литералах DateTime и TimeSpan
This improvement also works for interpolated strings when you type a colon
Это улучшение также работает для интерполированных строк при вводе двоеточия
  • Теперь доступно исправление кода для удаления ненужных подавлений прагмы и ненужных SuppressMessageAttributes. Наведите курсор на предупреждение прагмы или SuppressMessageAttribute. Нажмите CTRL+ . , чтобы открыть меню Быстрые действия и рефакторинг. Выберите Remove unnecessary suppression (Удалить ненужные подавления).
Remove Unnecessary Pragmas
Удаление ненужных прагм
Remove Unnecessary SuppressMessageAttributes
Удаление ненужных SuppressMessageAttribute
  • Функции Переименовать и Найти все ссылки теперь распознают ссылки на символы в целевой строке глобальных подавлений SuppressMessageAttribute.
Rename SuppressMessageAttribute
Переименование SuppressMessageAttribute
Find All References for SuppressMessageAttribute
Поиск всех ссылок для SuppressMessageAttribute
  • Visual Basic предлагал несколько способов передачи параметров — ByVal и ByRef, и в течение длительного времени ByVal быть необязательным. Теперь мы делаем ByVal полупрозрачным, чтобы указать, что это необязательный вариант, а также выпускаем исправление кода, чтобы удалить ненужные ByVal. Поместите курсор на ключевое слово ByVal. Нажмите CTRL+ . , чтобы открыть меню Быстрые действия и рефакторинг. Выберите "ByVal" keyword is unnecessary and can be removed (Ключевое слово "ByVal" является необязательным и может быть удалено).
Visual Basic Remove ByVal Refactoring
Рефакторинг удаления ByVal в Visual Basic
  • Теперь доступна поддержка Интерактивного окна для нескольких сред выполнения, таких как .NET Framework и .NET Core.
Interactive Window Support in .NET Core
Поддержка Интерактивного окна в .NET Core
  • Доступен новый API RegisterAdditionalFileAction, позволяющий авторам анализаторов создать анализатор для дополнительных файлов.

Перенос текста в области "Подробности теста" Обозревателя тестов

Эта долгожданная функция позволяет пользователю выбрать перенос текста или оставить выравнивание строк текста по умолчанию. Если выравнивание текста не требуется, перенос может сделать результаты тестового запуска гораздо более наглядными и устранить необходимость в горизонтальной полосе прокрутки. Включить перенос можно в меню параметров Обозревателя тестов или в контекстном меню области "Сводка".

Wrap test details from the Test Settings menu
Меню параметров тестирования
Wrap test details from the right-click context menu
Перенос текста в подробностях тестирования из контекстного меню

Средства XAML (WPF, UWP и Xamarin.Forms)

Улучшения диагностики ошибок привязки XAML

Разработчики, работающие над проектами WPF, UWP, WinUI и Xamarin.Forms, часто могут обнаруживать и устранять сбои привязки данных XAML в своих приложениях. Чтобы улучшить средства диагностики в этом сценарии, мы добавили две новых возможности в Visual Studio 2019 версии 16.8 или более поздней:

  • Значок индикатора ошибки привязки XAML. Новый значок индикатора сбоя привязки XAML теперь отображается на панели инструментов в приложении для проектов WPF и UWP, а также в динамическом визуальном дереве для всех проектов XAML, включая Xamarin.Forms. Этот значок отображает индикатор красного цвета, если обнаружен хотя бы один сбой привязки. Щелкнув значок, вы перейдете в новое окно сбоев привязки XAML.
Binding Failure Icon (in-app toolbar)
Значок сбоя привязки (панель инструментов в приложении)
  • Окно сбоев привязки XAML. Новое окно "Сбои привязки XAML" теперь доступно для проектов WPF, UWP, WinUI и Xamarin.Forms. В этом новом специальном интерфейсе содержатся подробные сведения о сбоях привязки, которые ранее были доступными только в окне вывода. Улучшения включают возможность просмотра сбоев в виде столбцов с поддержкой поиска, которые можно сортировать и настраивать. Мы также сгруппировали аналогичные ошибки, минимизируя шум, который может возникнуть при использовании определенных сочетаний сбоев шаблонов привязки данных. При этом все исходные необработанные сведения об ошибках остаются доступными и их можно копировать с помощью контекстного меню. (Примечание. Требуется Xamarin версии 4.5.0.266-pre3 или более поздней.)
  • Переход к источнику сбоев привязки. Сотрудничая с командой WPF, мы реализовали возможность перехода к источнику сбоев привязки для клиентов, ориентирующихся на работу с WPF в .NET 5 (RC2 или более поздней версии).
XAML Binding Failure Window & LVT Icon
Окно "Сбои привязки XAML" и значок LVT

Горячая перезагрузка XAML

  • Горячая перезагрузка XAML для Xamarin.Forms (только изменения) теперь поддерживает UWP. В этом выпуске реализована очень востребованная функция, позволяющая с помощью Горячей перезагрузки XAML вносить изменения в проекты Xamarin.Forms для платформы UWP. Обратите внимание, что эта функция все еще находится в разработке. Вносимые в XAML изменения теперь повлекут активацию обновлений в работающем приложении, тогда как другие возможности, такие как действия на панели инструментов в приложении (выбор элементов и пр.), пока не полностью реализованы, но мы включим их в один из новых выпусков.
  • Параметры горячей перезагрузки XAML перемещены в раздел "Отладка" > "Горячая перезагрузка". В этом выпуске мы объединили параметры Горячей перезагрузки XAML для WPF, UWP и Xamarin.Forms в единое окно параметров в разделе "Отладка" > "Горячая перезагрузка". Мы также добавили возможность отключать и включать Горячую перезагрузку XAML для каждой платформы, чтобы вы могли управлять доступностью этой функции. (Примечание: В ходе переноса параметры не изменятся, так что все ваши текущие настройки сохранятся и в новом расположении.)
XAML Hot Reload Consolidated Settings
Консолидированные параметры горячей перезагрузки XAML

Редактор кода XAML.

  • Поддержка WinUI 3.0 IntelliSense. В этом выпуске мы включили поддержку IntelliSense для разработчиков, создающих приложения с помощью нового выпуска WinUI 3.0, предварительная версия 3 или более поздней версии. Дополнительные сведения о WinUI 3.0 см. в документации. Оставить отзыв можно в репозитории GitHub XAML пользовательского интерфейса Windows. Примечание. Последняя предварительная версия WinUI 3.0 рекомендуется для использования с выпуском 16.9, предварительная версия 1 для получения обновленных возможностей инструментария.
  • Улучшение поддержки MVVM: При создании документа XAML можно задать d:DataContext, чтобы получить точную привязку IntelliSense для документа XAML. Ранее указание типа контекста данных вручную было утомительным. Приходилось выходить из документа XAML, находить нужный тип модели представления, копировать и вставлять его пространство имен и имя в объявление d:DataContext. В этом выпуске мы представляем новую функцию, которая позволяет быстро объявить d:DataContext с помощью значка лампочки, который предлагает возможных кандидатов на модель представления.
XAML IntelliSense for MVVM d:DataContext
XAML IntelliSense для MVVM d:DataContext

Расширяемость

От сообщества разработчиков


Известные проблемы

Просмотрите все открытые проблемы и доступные решения в Visual Studio 2019, перейдя по ссылке ниже.


Отзывы и предложения

Мы будем рады узнать ваше мнение! Вы можете сообщить о проблемах, щелкнув пункт Сообщить о проблеме в правом верхнем углу установщика или самой IDE-среды Visual Studio. Классу Feedback Icon находится в правом верхнем углу. Вы можете предлагать для продукта новые функции, задавать вопросы, находить ответы и отслеживать решение своих проблем в сообществе разработчиков Visual Studio. Кроме того, вам доступна бесплатная поддержка в чате по вопросам с установкой.


Блоги

Воспользуйтесь аналитикой и рекомендациями с сайта Developer Tools Blogs. Там вы найдете актуальные сведения обо всех новых выпусках и сможете читать публикации с подробным анализом самых разных функций.


Журнал заметок о выпуске Visual Studio 2019

Дополнительные сведения о предыдущих версиях Visual Studio 2019 см. на странице Журнал заметок о выпуске Visual Studio 2019.


К началу страницы