RCLogoЗаметки о выпуске Visual Studio 2019, версия 16.7


Сообщество разработчиков System Requirementsy | Compatibilitable | Code | Release History | Terms Blogs | New in Visual Studio Docs | (Новые возможности в документации Visual Studio) |


Примечание.

Этот выпуск — не последняя версия Visual Studio. Чтобы скачать последний выпуск, посетите сайт Visual Studio .



Поддержка диапазона времени

Visual Studio 2019 версии 16.7 сейчас не поддерживается.

До конца апреля 2022 г. сохранялась поддержка пользователей Enterprise и Professional для Visual Studio 2019 версии 16.7, и они получили исправления уязвимостей системы безопасности. Этот период основан на том, что в марте 2021 г. среда Visual Studio 2019 версии 16.9 была определена как следующая базовая версия продукта Visual Studio 2019. Дополнительные сведения о базовых версиях Visual Studio см. в статье о политике поддержки Visual Studio 2019

Ознакомьтесь с последней версией заметок о выпуске или посетите сайт Visual Studio , чтобы скачать последнюю поддерживаемую версию Visual Studio 2019.

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

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

Блог Visual Studio

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


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

Дата выпуска: 19 апреля 2022 г.

В этом выпуске Visual Studio 2019 версии 16.7.28

  • Исправлена регрессия vctip.exe от 16.7.27

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

Дата выпуска: 12 апреля 2022 г.

В этом выпуске Visual Studio 2019 версии 16.7.27

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

Уязвимость к повышению прав CVE-2022-24765. В Git для Windows существует потенциальная уязвимость к повышению прав, связанная с возможностью выполнять операции Git вне репозитория при поиске каталога Git. Версия Git для Windows обновлена до 2.35.2.1.

Уязвимость загрузки DLL CVE-2022-24767. В установщике Git для Windows существует потенциальная уязвимость загрузки DLL при запуске средства удаления с учетной записью пользователя SYSTEM. Версия Git для Windows обновлена до 2.35.2.1.

Уязвимость к повышению прав CVE-2022-24513. Существует потенциальная уязвимость к повышению прав, когда служба обновления Microsoft Visual Studio неверно анализирует данные локальной конфигурации.


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

Выпущено 8 марта 2022 г.

В этом выпуске Visual Studio 2019 версии 16.7.26

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

Уязвимость CVE-2020-8927 — уязвимость удаленного выполнения кода в .NET 5.0 и .NET Core 3.1, где в версиях библиотеки Brotli, предшествующих версии 1.0.8, имеется ошибка, связанная с переполнением памяти.

Уязвимость CVE-2022-24464 — уязвимость типа "отказ в обслуживании" в .NET 6.0, .NET 5.0 и .NET CORE 3.1 при анализе определенных типов HTTP-запросов форм.

Уязвимость CVE-2022-24512 — уязвимость удаленного выполнения кода в .NET 6.0, .NET 5.0 и .NET Core 3.1 при переполнении буфера стека в подпрограмме двойного анализа .NET.

CVE-2021-3711: уязвимость переполнения буфера OpenSSL — потенциальная уязвимость переполнения буфера в OpenSSL, который используется Git для Windows. Git для Windows теперь обновлен до версии 2.35.1.2, в которой эта проблема устранена.


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

Дата выпуска: 8 февраля 2022 г.

В этом выпуске Visual Studio 2019 версии 16.7.25

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

CVE-2022-21871 Уязвимость несанкционированного повышения привилегий в среде выполнения стандартного сборщика Центра диагностики Уязвимость несанкционированного повышения привилегий возникает, когда стандартный сборщик Центра диагностики неправильно обрабатывает операции с данными.


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

Выпущено 11 января 2022 г.

В этом выпуске Visual Studio 2019 версии 16.7.24

  • Исправлена проблема с невозможностью многократной отладки приложений, когда Терминал Windows используется в качестве терминала по умолчанию.
  • Исправлен процесс установки для разблокировки клиентов в конфигурациях с ограниченным доступом.
  • Исправлена ошибка, из-за которой клиент не мог обновить более новую версию начального загрузчика. Если клиент использует начальный загрузчик и установщик, выпущенные в январе 2022 года или позже, все обновления, использующие последующие начальные загрузчики, должны работать в течение всего жизненного цикла продукта.

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


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

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

В этом выпуске Visual Studio 2019 версии 16.7.23

  • В рабочую нагрузку Python добавлена версия Python 3.9.7. Версия Python 3.7.8 удалена из-за уязвимости системы безопасности.

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

CVE-2021-43877 Уязвимость В модуле ASP.NET Core существует уязвимость несанкционированного повышения привилегий при размещении приложений .NET Core, .NET 5 и .NET 6 в IIS.


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

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

В этом выпуске Visual Studio 2019 версии 16.7.22

  • Теперь начальные загрузчики учитывают параметр --useLatestInstaller, который приводит к интеграции последнего установщика в макет. Этот последний установщик, который поставляется с Visual Studio 2022, обеспечивает сценарий, в котором предприятиям нужно перевести клиенты из одного расположения в другое. Дополнительные сведения см. в [руководстве администратора Visual Studio](*Теперь начальные загрузчики учитывают параметр --useLatestInstaller, который приводит к интеграции последнего установщика в макет. Этот последний установщик, который поставляется с Visual Studio 2022, обеспечивает сценарий, в котором предприятиям нужно перевести клиенты из одного расположения в другое. Дополнительные сведения см. в руководстве администратора Visual Studio.).

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

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

В этом выпуске Visual Studio 2019 версии 16.7.21

  • Исправлена ошибка, из-за которой ссылка на ярлык меню "Пуск" исчезает. Ошибка возникает только при обновлении нескольких экземпляров разных номеров SKU продукта на одном компьютере.

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

CVE-2021-42319 Уязвимость к повышению привилегий В поставщике WMI, включенном в установщик Visual Studio, есть уязвимость к повышению привилегий.

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


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

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

В этом выпуске Visual Studio 2019 версии 16.7.20

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

CVE-2021-41355 Уязвимость к раскрытию информации в .NET 5.0 В .NET есть уязвимость к раскрытию информации, которая вызвана тем, что System.DirectoryServices.Protocols.LdapConnection отправляет учетные данные в виде обычного текста в Linux.

CVE-2020-1971 Уязвимость типа "отказ в обслуживании" в OpenSSL В библиотеке OpenSSL существует потенциальная уязвимость отказа в обслуживании, используемая GIT.

CVE-2021-3449 Уязвимость типа "отказ в обслуживании" в OpenSSL В библиотеке OpenSSL существует потенциальная уязвимость отказа в обслуживании, используемая GIT.

CVE-2021-3450 Уязвимость типа "отказ в обслуживании" в OpenSSL Возможный обход флага существует в библиотеке OpenSSL, используемой GIT.


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

Выпущено 14 сентября 2021 г.

В этом выпуске Visual Studio 2019 версии 16.7.19

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

CVE-2021-26434 — уязвимость к повышению привилегий при неверном назначении разрешений в Visual Studio. В Visual Studio существует уязвимость при назначении разрешений после установки рабочей нагрузки "Разработка игр на языке C++" и выборе нагрузки "Установщик Unreal Engine". Система уязвима для LPE — во время установки она создает каталог с доступом на запись для всех пользователей.

CVE-2021-36952 — уязвимость к удаленному выполнению кода в Visual Studio. В Visual Studio существует уязвимость к удаленному выполнению кода, когда среда некорректно обрабатывает объекты в памяти. Злоумышленник, успешно использовавший уязвимость, может запускать произвольный код в контексте текущего пользователя.


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

Выпущено 10 августа 2021 г.

В этом выпуске Visual Studio 2019 версии 16.7.18

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

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

CVE-2021-26423 Уязвимость .NET Core, приводящая к отказу в обслуживании Существует приводящая к отказу в обслуживании уязвимость, из-за которой серверные приложения .NET (Core), предоставляющие конечные точки WebSocket, могут быть обманным путем втянуты в бесконечный цикл при попытке считать отдельный кадр WebSocket.

CVE-2021-34485 Уязвимость к раскрытию информации в .NET Core Существует связанная с раскрытием информации уязвимость, когда средство для сбора аварийных дампов и дампов по запросу создает дампы, имеющие глобальные разрешения на чтение в Linux и macOS.

CVE-2021-34532 Уязвимость к раскрытию информации в ASP.NET Core Существует связанная с раскрытием информации уязвимость, когда регистрируется маркер JWT, который не удается проанализировать.


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

Выпущено 13 июля 2021 г.

В этом выпуске Visual Studio 2019 версии 16.7.17

  • Пакет SDK для .NET 3.1.411, вставленный в Visual Studio 2019.

Release Notes IconVisual Studio 2019 версии 16.7.16

Дата выпуска: 8 июня 2021 г.

В этом выпуске Visual Studio 2019 версии 16.7.16

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

CVE-2021-31957 Уязвимость ASP.NET, приводящая к отказу в обслуживании В ASP.NET Core существует уязвимость, приводящая к отказу в обслуживании из-за неправильной обработки отключения клиента.


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

Выпущено 11 мая 2021 г.

В этом выпуске Visual Studio 2019 версии 16.7.15

  • Исправлена проблема, которая приводила к сбою обновлений при создании администратором нового макета Visual Studio для развертывания обновлений. Обновление клиентского компьютера завершалось сбоем, так как менялось расположение макета.

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

CVE-2021-27068 При внедрении python.exe во вложенную папку возможно удаленное выполнение кода Существует уязвимость, связанная с удаленным выполнением кода, при открытии рабочей области с кодом Python, которая содержит файл python.exe в подпапке scripts.

CVE-2021-31204 Уязвимость, связанная с повышением привилегий в .NET Core В .NET 5.0 и .NET Core 3.1 существует уязвимость, связанная с повышением уровня привилегий, когда пользователь запускает приложение с одним файлом в операционных системах на основе Linux или macOS.


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

Выпущено 13 апреля 2021 г.

В этом выпуске Visual Studio 2019 версии 16.7.14

  • Средство оптимизации ошибочно удаляет активный код
  • NuGet будет сообщать сведения об источнике пакета и предоставлять хэш содержимого пакета при восстановлении пакетов с нормальным уровнем детализации выходных данных.
  • NuGet будет сохранять источник пакета в относящемся к нему файле .nupkg.metadata в глобальной папке пакетов. Уже существующие пакеты в глобальной папке не будут получать эти дополнительные сведения. Чтобы получить сведения об источниках для всех пакетов, вы можете очистить глобальную папку.

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

CVE-2021-27064 Уязвимость к повышению прав в Visual Studio Installer Существует уязвимость к удаленному выполнению кода, при котором Visual Studio Installer запускает Feedback Client в состоянии с повышением прав.

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


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

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

В этом выпуске Visual Studio 2019, версия 16.7.13

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

CVE-2021-21300 Уязвимость к удаленному выполнению кода в GIT для Visual Studio Существует уязвимость удаленного выполнения кода, когда Visual Studio клонирует вредоносный репозиторий.

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


Release Notes IconVisual Studio 2019 версии 16.7.12

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

В этом выпуске Visual Studio 2019 версии 16.7.12


Release Notes IconVisual Studio 2019 версии 16.7.11

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

В этом выпуске Visual Studio 2019, версия 16.7.11

Ошибка в компиляторе оптимизации Visual Studio 2019 версии 16.7.6

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

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

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

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


Release Notes IconVisual Studio 2019 версии 16.7.10

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

В этом выпуске Visual Studio 2019, версия 16.7.10

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

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

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

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


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

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

В этом выпуске Visual Studio 2019, версия 16.7.9

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

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


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

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

В этом выпуске Visual Studio 2019, версия 16.7.8

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

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



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

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

В этом выпуске Visual Studio 2019, версия 16.7.7


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

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

В этом выпуске Visual Studio 2019, версия 16.7.6


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

Выпущено 29 сентября 2020 г.

В этом выпуске Visual Studio 2019, версия 16.7.5


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

Выпущено 21 сентября 2020 г.

В этом выпуске Visual Studio 2019, версия 16.7.4

  • Добавлена поддержка Xcode 12.0 GM.
  • Добавлена поддержка установки набора цветов в качестве акцентного цвета в редакторе Info.plist.

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

Выпущено 8 сентября 2020 г.

В этом выпуске Visual Studio 2019, версия 16.7.3

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

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

CVE-2020-1133 Уязвимость к повышению прав в стандартной службе сборщика Центра диагностики Уязвимость, которая может привести к несанкционированному повышению привилегий, возникает, когда стандартный сборщик центра диагностики неправильно обрабатывает операции с файлами. Злоумышленник, использующий эту уязвимость, может запускать процессы с повышенными привилегиями.

CVE-2020-16856 Уязвимость к удаленному выполнению кода в Visual Studio В Visual Studio существует уязвимость к удаленному выполнению кода, когда среда некорректно обрабатывает объекты в памяти. Злоумышленник, успешно использовавший уязвимость, может запускать произвольный код в контексте текущего пользователя.

CVE-2020-16874 Уязвимость к удаленному выполнению кода в Visual Studio В Visual Studio существует уязвимость к удаленному выполнению кода, когда среда некорректно обрабатывает объекты в памяти. Злоумышленник, успешно использовавший уязвимость, может запускать произвольный код в контексте текущего пользователя.

CVE-2020-1045 Уязвимость к обходу функций безопасности в Microsoft ASP.NET Core В связи с тем, как Microsoft ASP.NET Core анализирует закодированные имена файлов cookie, существует уязвимость к обходу функций безопасности. Средство синтаксического анализа файлов cookie ASP.NET Core декодирует все строки cookie, что может позволить злоумышленнику установить второй файл cookie с именем, закодированным в процентах.

Дополнительные ошибки, исправленные в этом выпуске

  • Исправлена проблема сбоя компилятора для операторов или выражений switch, использующих сопоставление шаблонов.
  • Восстановлен рабочий процесс "Остановка отладки (Shift+F5)" для модульного тестирования путем завершения тестового запуска.
  • Предотвращение сбоя VS при переключении конфигурации проекта, когда в конструкторе WinForms .NET Core есть несохраненные изменения.
  • Неподдерживаемые версии .NET Core больше не будут переустанавливаться во время восстановления или обновления, если они были удалены за пределами VS.
  • Исправлена проблема, при которой невозможно было найти все внешние зависимости с помощью функции "Найти в файлах".
  • Мы вернули кнопку "Commit..." в подменю Git в контекстном меню обозревателя решений.
  • Исправлена ошибка, из-за которой метка примечаний при возврате TFVC стала невидимой.
  • Устранен сбой при использовании конструктора WinForm в CSPROJ в стиле SDK с несколькими целевыми платформами.
  • Исправлена проблема, при которой <d:Style.DataContext> выдавал ошибку недопустимого исправления.

Основные проблемы, исправленные сообществом разработчиков в Visual Studio 2019 версии 16.7.3


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

Выпущено 18 августа 2020 г.

В этом выпуске Visual Studio 2019, версия 16.7.2

Основные проблемы, исправленные сообществом разработчиков в Visual Studio 2019 версии 16.7.2


Release Notes Icon Visual Studio 2019, версия 16.7.1

Выпущено 11 августа 2020 г.

В этом выпуске Visual Studio 2019, версия 16.7.1

Основные проблемы, исправленные сообществом разработчиков в Visual Studio 2019 версии 16.7.1


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

Выпущено 5 августа 2020 г.

В этом выпуске Visual Studio 2019, версия 16.7.0

C++

  • Теперь в рамках удаленной поддержки C++ поддерживается более широкий набор дистрибутивов и оболочек Linux, включая sh, csh, bash, tsch, ksh, zsh и dash. Можно переопределить возможность выбора оболочки для удаленного подключения, изменив свойство новой оболочки с помощью ConnectionManager.exe. Эта поддержка была протестирована в проектах Linux на основе MSBuild и проектах CMake, предназначенных для удаленной системы Linux или WSL.
  • Теперь вы можете использовать Ninja (систему сборки, которая очень быстро оценивает добавочные сборки) для оптимизации времени добавочной сборки для проектов Linux на основе MSBuild. Чтобы включить эту функцию, задайте параметру "Включить добавочную сборку" значение "С Ninja" на странице свойств "Общие". Система Ninja (ninja-build) должна быть установлена в удаленной системе Linux или WSL.
  • Реализованы новые функции стандартной библиотеки C++ 20. Подробный список см. в журнале изменений STL на GitHub.
  • Теперь можно изменять удаленные подключения SSH и задавать удаленные подключения SSH по умолчанию в диспетчере подключений. Это означает, что можно изменить существующее удаленное подключение (например, если изменился его IP-адрес) и задать используемые по умолчанию подключения в файлах CMakeSettings.json и launch.vs.json. Удаленные подключения SSH позволяют создавать и отлаживать проекты C++ в удаленной системе Linux непосредственно из Visual Studio.
Edit remote connections in the Connection Manager
Изменение удаленных подключений в диспетчере подключений
  • Улучшенная поддержка IntelliSense для Clang в Windows (clang-cl) в Visual Studio. Путь включения clang теперь содержит библиотеки clang, мы улучшили отображение волнистых линий в редакторе при использовании библиотеки std, а также добавили поддержку языка C++2a в режиме clang.
  • Теперь вы можете использовать функцию подчеркивания ошибок в коде и просматривать другие предлагаемые быстрые исправления в проектах C++. Включите эту функцию, выбрав "Средства" > "Параметры" > "Текстовый редактор" > C/ C++ > "Экспериментальное" > задайте для параметра "Disable Experimental Code Linter" (Отключить экспериментальный анализатор кода) значение False. Дополнительные сведения см. в Блоге группы разработчиков C++.
IntelliSense code linter
Анализатор кода IntelliSense
  • Мы добавили четыре новых правила анализа кода для включения дополнительных функций безопасности в C++: C26817, C26818, C26819 и C26820.
  • Мы добавили превосходную поддержку отладки проектов CMake в удаленных системах с помощью gdbserver.
  • Вы сможете легко находить ошибки повреждения памяти с помощью экспериментальной реализации AddressSanitizer для C++ в Visual Studio, которая теперь доступна для собственных проектов x64. Также поддерживаются среды выполнения отладки (/MTd, /MDd, /LDd).
  • Технология IntelliSense теперь обеспечивает базовую поддержку концепций, назначенных инициализаторов и некоторых других возможностей C++20.
  • Файлы с расширением IXX и CPPM теперь распознаются как файлы C++ и обрабатываются как таковые с использованием маркера синтаксиса и технологии IntelliSense.

Динамическое определение списков воспроизведения

Теперь списки воспроизведения можно определять динамически на основе проекта, класса или пространства имен. Это означает, что можно настроить список воспроизведения, включив все элементы в определенный проект, класс или пространство имен; любой новый тест, добавленный в эту группу, будет включен в список воспроизведения автоматически.

  • Создайте список воспроизведения, щелкнув правой кнопкой мыши группу для проекта, пространства имен или класса в Обозревателе тестов.
Test Explorer: Create a playlist
Тестирование Обозреватель. Создание списка воспроизведения
  • Измените группы, включенные в список воспроизведения, нажав кнопку "Изменить" на панели инструментов. Появятся флажки. Внесите необходимые изменения в группы.
Test Explorer: Edit a playlist
Проверка Обозреватель: изменение списка воспроизведения
  • Эти списки воспроизведения не являются статическими списками тестов и воспроизведения динамически обновляются на основе правил. Если вы хотите лучше понять, какие правила формируют динамический список воспроизведения, сохраните файл списка воспроизведения на диск с помощью кнопки "Сохранить" и просмотрите созданные правила в формате XML.
PlayList file dynamic rule set
Динамический набор правил для файла списка воспроизведения
  • Вы можете продолжить включать и исключать отдельные тесты, а список воспроизведения будет обновлять их динамические правила, или вернуться к отслеживанию тестов в виде статического списка. Также можно использовать признаки для определения динамической группы, изменив XML-файл списка воспроизведения напрямую.

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

Чтобы использовать эти возможности, включите предварительную версию функции "Новые возможности работы пользователей Git" в меню "Сервис | Параметры | Среда".

  • Создавайте новый репозиторий Git, начиная с любой папки или совершенно новой папки.
  • Сохранение и закрытие открытой папки или решения перед запуском новой операции клонирования
  • Отображение ошибок сообщения о фиксации или прятании в текстовом поле фиксации
  • Просматривайте ветви Git и управляйте ими в представлении в виде дерева в новом окне репозитория Git.
  • Переключение между хронологическими графиками каждой ветви и взаимодействие с ними в окне репозитория Git
  • Просмотр входящих и исходящих фиксаций в окне репозитория Git
  • Блог группы разработчиков, занимающихся производительностью Git, с более подробными сведениями о последних функциях
Manage branches and view history in a focused Git Repository window
Управление ветвями и просмотр журнала в специальном окне репозитория Git

Разрешение конфликтов слияния с использованием следующих элементов в редакторе слияния Git:

  • Информационная панель в файлах с конфликтами слияния, предлагающая открыть редактор слияния
  • Более информативные заголовки и подписи, а также более наглядное размещение элементов в редакторе слияния
  • Различия между конфликтами с выравниванием соответствующих строк, отображением различий на уровне слов и отображением видимых пробелов, если это единственное различие.
  • Двустороннее слияние для конфликтов добавления на уровне файлов
  • Возможность разрешения всех конфликтов к одной или другой стороне одним щелчком мыши
  • Переключатель для фокусировки только на конфликтах с игнорированием неконфликтующих различий
New Merge Editor Experience
Разрешение конфликтов слияния с помощью редактора слияния

JavaScript/TypeScript

  • Реализации разделов "Завершение" и "Краткие сведения" были обновлены для оптимизации поддержки сценариев LiveShare.

Локальный процесс с Kubernetes

Local Process with Kubernetes
Локальный процесс с Kubernetes

Локальный процесс с Kubernetes позволяет писать, тестировать и отлаживать код .NET на рабочей станции разработки, подключенной к кластеру Kubernetes, в котором находятся остальные приложения или службы. Подключив рабочую станцию разработки к кластеру, вы устраняете необходимость вручную запускать и настраивать зависимые службы на компьютере разработки. Переменные среды, строки подключения и тома из кластера доступны для кода микрослужбы, выполняемого локально. Дополнительные ресурсы, например, манифесты Dockerfile или Kubernetes, не требуются. Выполняйте, отлаживайте и тестируйте код .NET обычным образом.

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

Enable Preview Features
Включение функций предварительной версии

Для консольных приложений .NET требуется дополнительный шаг. Установите пакет NuGet "Microsoft.VisualStudio.Azure.Kubernetes.Tools.Targets".

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

Теперь, когда оператор подавления присутствует, но не работает, выводится предупреждение и применяется исправление кода. Доступно также второе исправление кода, предлагающее правильное выражение инвертирования. Наведите курсор на оператор подавления. Нажмите CTRL + ., чтобы открыть меню Быстрые действия и рефакторинг. Выберите один из следующих вариантов.

  • Чтобы полностью удалить оператор, выберите Remove operator (preserves semantics) (Удалить оператор (с сохранением семантики)):
Code fix to remove suppression operator
Исправление кода для удаления оператора подавления
  • Чтобы инвертировать выражение, выберите Negate expression (change semantics) (Инвертировать выражение (изменить семантику)).
Code fix to negate expression
Исправление кода для инвертирования выражения
  • Можно также инвертировать выражение с помощью нового шаблона not C# 9, если он доступен в проекте:
Code fix to negate expression using not
Исправление кода для инвертирования выражения с помощью not

Теперь можно создавать свойства при создании конструктора в типе. Поместите курсор на экземпляр. Нажмите CTRL + ., чтобы открыть меню Быстрые действия и рефакторинг. Выберите Создать конструктор в <QualifiedName> (со свойствами).

Generate properties when generating constructor
Создание свойств при создании конструктора
  • В разделе "Краткие сведения" теперь отображается идентификатор диагностики, а также ссылка на раздел справки, по которой вы сможете легко перейти в документацию и ознакомиться с дополнительными сведениями о предупреждениях и ошибках в коде.
Quick Info Diagnostic ID and Help Link
Идентификатор диагностики и ссылка на раздел справки в разделе "Краткие сведения"
  • Теперь можно быстро добавить в класс атрибут отображения отладчика. Это позволяет программно закреплять свойства в отладчике в вашем коде. Поместите курсор в имени класса. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг. Выберите Добавить атрибут "DebuggerDisplay". При этом будет добавлен атрибут отображения отладчика в верхнюю часть класса и создан автоматический метод, возвращающий ToString(), который можно изменить для возврата значения свойства, которое вы хотите закрепить в отладчике.
Add Debugger Display Attribute
Добавление атрибута отображения отладчика
  • Добавлено исправление кода для случайных назначений или сравнений с одной и той же переменной. Поместите курсор в предупреждение. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг. Для случайных назначений выберите Назначить для <QualifiedName>.value. Для случайных сравнений выберите Сравнить с <QualifiedName>.value.
Accidental Assignments Code Fix
Исправление кода для случайных назначений
Accidental Comparisons Code Fix
Исправление кода для случайных сравнений
  • Теперь можно создавать операторы сравнения для типов, реализующих интерфейс IComparable. Поместите курсор внутри класса или в IComparable. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг. Выберите Создать операторы сравнения. Для вас будет создан шаблон с операторами сравнения.
Generate Comparison Operators
Создание операторов сравнения
  • Теперь можно создавать операторы IEquatable при создании .Equals для структур. Мы уже выполнили рефакторинг на Generate Equals и GetHashCode для типов значений. Для структур мы автоматически добавляем IEquatable, а также операторы равенства и неравенства. Поместите курсор в структуру. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг. Выберите Создать Equals(object).
Generate IEquatable Operators
Создание операторов IEquatable
  • Теперь можно создавать и назначать свойства или поля для всех неиспользуемых параметров конструктора. Уже существовало быстрое действие, которое позволяло делать это для отдельного параметра. Однако теперь это можно сделать для всех неиспользуемых параметров одновременно. Поместите курсор на любой из оставшихся параметров. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг. Чтобы создать и инициализировать свойства, выберите Создать и назначить оставшиеся как свойства. Чтобы создать и инициализировать поля, выберите Создать и назначить оставшиеся как поля.
Create and Assign Remaining Fields
Создание и назначение оставшихся полей
Create and Assign Remaining Properties
Создание и назначение оставшихся свойств
  • Теперь можно выполнять завершение IntelliSense в строковых литералах DateTime и TimeSpan. Поместите курсор внутрь строкового литерала DateTime или TimeSpan и нажмите клавиши (Ctrl+ПРОБЕЛ). Вы увидите параметры завершения и пояснения к каждому символу. Будут указаны формат даты и времени, а также пример.
IntelliSense Completion in DateTime and TimeSpan
Завершение IntelliSense в строковых литералах DateTime и TimeSpan
  • Теперь можно добавить параметр в диалоговом окне Изменение сигнатуры. Поместите курсор в сигнатуру метода. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг. Выберите Изменение сигнатуры. Откроется следующее диалоговое окно, в котором теперь можно нажать кнопку Добавить, чтобы добавить параметр. После нажатия кнопки Добавить откроется новое диалоговое окно Добавление параметра. Диалоговое окно Добавление параметра позволяет добавить тип параметра и имя параметра. Можно указать, что параметр должен быть обязательным или необязательным со значением по умолчанию. Затем можно добавить значение в место вызова и выбрать именованный аргумент для этого значения или ввести переменную TODO. Переменная TODO помещает в код оператор TODO, чтобы вы могли переходить к каждой ошибке, проходить каждое место вызова по отдельности и выбирать передаваемое значение аргумента. В случае необязательных параметров можно полностью опустить место вызова.
Change Signature Dialog
Диалоговое окно "Изменение сигнатуры"
Add Parameter Dialog
Диалоговое окно "Добавление параметра"
  • Авторы анализаторов теперь могут использовать CompletionProviders для завершения IntelliSense при отправке анализаторов с пакетами NuGet. Ранее создателям библиотек пришлось бы создать отдельный файл VSIX, так как CompletionProviders были доступны только в VSIX. Теперь авторы библиотек могут реализовать завершение IntelliSense в пакете NuGet, в котором находятся анализаторы, и им не нужно делать это отдельно. Поставщики завершения, реализованные в пакетах NuGet, также предоставляют рекомендации для отдельных проектов и будут автоматически работать в каждой интегрированной среде разработки, поддерживающей эту функцию.

Razor

Попробуйте новый редактор Razor с поддержкой экспериментального протокола языкового сервера (Language Server Protocol, LSP) со всеми файлами Razor (.cshtml/.razor), выбрав предварительную версию функции Enable experimental Razor editor (Включить экспериментальный редактор Razor).

Обозреватель тестов

Добавлена функция Запуск/Отладка всех тестов в представлении в Обозревателе тестов. Эти команды теперь доступны там, где раньше были команды Запуск всех тестов и Отладка всех тестов. Данное изменение призвано уточнить, что эти команды учитывают фильтры Обозревателя тестов и будут выполнять только тесты, отображаемые в окне. Это касается и фильтров столбцов, и фильтров полей поиска.

Test Explorer Run/Debug All Tests in View commands
Команды для запуска и отладки всех тестов в представлении Обозревателя тестов

Команды Глобальный запуск/Отладить все теперь отображаются только в меню тестирования верхнего уровня. Они больше не входят в панель инструментов Обозревателя тестов или в контекстное меню любого представления окна тестов. При запуске из Обозревателя тестов Анализ покрытия кода для всех тестов теперь применяется также к представлениям окна тестов.

Сочетания клавиш:

  • CTRL R, A — Запуск всех тестов. Глобальная команда, которая всегда запускает все тесты.
  • CTRL R, V — Запуск всех тестов в представлении. Команда, действующая только в активных окнах тестирования (Обозреватель тестов, Список воспроизведения, Live Unit Testing).
  • CTRL R, CTRL A — Отладка всех тестов. Глобальная команда, которая всегда запускает отладку всех тестов.
  • CTRL R, V — Отладка всех тестов в представлении. Команда, действующая только в активных окнах тестирования (Обозреватель тестов, Список воспроизведения, Live Unit Testing).

Отладчик

Просмотр управляемых COM-объектов с помощью собственных указателей

Эта функция автоматически декодирует управляемые COM-объекты, на которые ссылаются собственные указатели, что позволяет выполнять полную проверку значений в окне "Локальные". Дополнительные сведения см. в блоге по Visual Studio.

Profiler

Новое средство счетчиков производительности .NET

.NET Performance Counters Tool
Средство счетчиков производительности .NET

Визуализируйте счетчики dotnet непосредственно в профилировщике Visual Studio с помощью средства счетчиков производительности .NET. Чтобы попробовать это средство, перейдите в меню Отладка -> Профилировщик производительности -> Флажок "Средство счетчиков производительности .NET".

Xamarin

  • Введены исправления кода для наиболее распространенных типов проблем, с которыми сталкиваются пользователи при работе с файлами макета Android.
  • Интерфейс выбора шаблона Xamarin.Forms стал более удобным и наглядным, а всплывающие элементы и шаблоны с вкладками теперь используют оболочку. Дополнительные сведения об оболочке см. здесь. Если по каким-либо причинам вы не хотите использовать оболочку, выберите пустой шаблон.
New Xamarin.Forms template selection experience
Выбор шаблона Xamarin.Forms

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

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

  • Улучшения панели инструментов в приложении. Мы дополнительно улучшили интерфейс панели инструментов в приложении, который входит в рабочий процесс инструментов XAML Горячая перезагрузка для WPF и UWP. В число изменений входят укороченная панель инструментов, которая больше не перекрывает выполняющееся приложение, а также модифицированный механизм свертывания, который при первом щелчке будет сворачивать текст "Горячая перезагрузка XAML", а при втором — всю панель инструментов.

Конструктор XAML.

  • Расширенная поддержка данных во время разработки для WPF и UWP. В этом выпуске мы представляем новую функцию обработки данных во время разработки для разработчиков WPF .NET Core и UWP. Эта новая возможность расширяет текущий список доступных во время разработки свойств за счет использования префикса "d:". Эта функция будет знакома разработчикам Xamarin.Forms, так как она позволяет использовать префикс "d:" для указания свойства, которое должно отображаться только во время разработки и никогда не компилируется в работающее приложение, что делает его очень безопасным для использования при проверке пользовательского интерфейса во время разработки. В этом выпуске будут поддерживаться все готовые элементы управления для WPF и UWP. Поддержка сторонних и пользовательских элементов управления планируется в будущих выпусках.
  • Кнопка обновления конструктора XAML. Мы добавили кнопку обновления в конструктор XAML, этот новый значок можно найти в области значка в левой нижней части экрана рядом с индикатором уровня масштабирования. Это действие обновления эквивалентно закрытию представления конструктора и его повторному открытию в тех редких случаях, когда это необходимо для решения проблемы с отрисовкой. Эта функция доступна разработчикам WPF .NET Core и UWP.

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

  • Визуализатор цветов: мы дополнительно усовершенствовали наш новый визуализатор цветов в редакторе кода XAML для WPF .NET Core, WPF платформа .NET Framework и Xamarin.Froms проектов. В этом выпуске добавлена поддержка для визуализации цветов из ресурсов, которые не поддерживались в последней предварительной версии.
Inline Color Previews in XAML Code Editor
Встроенный предварительный просмотр с цветовым выделением в редакторе кода XAML

Отображение элементов панели элементов из пакета NuGet без ссылки на пакет

Многие авторы библиотек элементов управления хотят, чтобы их элементы управления были видны на панели элементов, даже если текущий проект еще не ссылался на библиотеку, так как это делает эти элементы управления более наглядными. В пакете SDK для .NET Framework WPF это было реализовано с помощью записей реестра, но в .NET Core это не поддерживается. Для .NET Core WPF панель элементов теперь можно заполнить элементами управления из файлов VisualStudioToolsManifest.xml, находящихся в пакетах NuGet .NET Core WPF в папках резервных файлов NuGet. Дополнительные сведения см. в документации по репозиторию GitHub расширяемости конструктора XAML.

Windows Forms

Конструктор Windows Forms для .NET Core

Появился конструктор Windows Forms для проектов .NET Core. Чтобы включить конструктор, последовательно выберите "Сервис" > "Параметры" > "Среда" > "Функции предварительной версии", а затем выберите параметр Use the preview Windows Forms designer for .NET Core apps (Использовать конструктор Windows Forms предварительной версии для приложений .NET Core).

В этом выпуске внесен ряд улучшений, а также поддерживаются следующие элементы управления:

  • UserControl и инфраструктура пользовательских элементов управления
  • TableLayoutPanel
  • Основные принципы поддержки элементов управления сторонних производителей
  • Основные принципы поддержки привязки данных
  • Улучшения взаимодействия конструктора с TableLayoutPanel

Исправления ошибок

Основные проблемы, исправленные в Visual Studio 2019 версии 16.7.0

  • Исправлена ошибка, вызывавшая сбой установки компонента поставщика WMI.
  • Устранена проблема, из-за которой пользователи не могли видеть ход выполнения тестового запуска при нажатии левой кнопки в нижней части панели.
  • Улучшена работа обнаружения доступных планов выставления счетов Visual Studio Codespace.
  • При создании Visual Studio Codespace время приостановки по умолчанию увеличено с 30 минут до 3 часов.
  • Исправлена ошибка, из-за которой окно изменений Git сообщает пользователю о наличии входящих и исходящих фиксаций, когда на самом деле они отсутствуют.
  • Улучшена стабильность Средств диагностики и Профилировщика производительности.
  • Исправлена проблема, при которой расширение Azure Sphere для Visual Studio не обновляется автоматически из-за несоответствия дополнительного номера версии. За счет данного исправления Azure Sphere сможет автоматически обновляться при запуске средства автоматического обновления VSIX.

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


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

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

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

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


Блоги

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


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

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


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