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


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


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

Community Download Button Professional Download Button Enterprise Download Button


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

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

Visual Studio 2019 версии 16.7 является третьей базовой версией Visual Studio 2019. Клиентам Enterprise и Professional, которым нужно применить долгосрочную стабильную и безопасную среду разработки, мы рекомендуем основывать свои стандарты именно на этой версии. Как более подробно описано в нашей политике жизненного цикла и поддержки, версия 16.7 будет дополняться исправлениями и обновлениями для системы безопасности до конца апреля 2022 года. Апрель 2022 г. — это конец срока в один год после выпуска Visual Studio 2019 версии 16.9, которая была объявлена четвертой базовая версией.

Кроме того, с момента выпуска версии 16.7 в течение 12 месяцев будет поддерживаться версия 16.4, которая была предыдущей базовой версией, и ее поддержка прекратится в октябре 2021 года. Обратите внимание, что версии 16.5 и 16.6 также уже не поддерживаются. Эти промежуточные выпуски получают исправления только до выпуска следующего дополнительного обновления.

Последнюю наиболее защищенную версию Visual Studio 2019 версии 16.7 можно скачать в разделе загрузок на сайте my.visualstudio.com или в каталоге Майкрософт.   Дополнительные сведения о базовых версиях Visual Studio см. в статье о политике поддержки Visual Studio 2019.

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

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

Блог Visual Studio 2019

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


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

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

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

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

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

CVE-2021-26434 Visual Studio уязвимость повышения привилегий назначения разрешений

в Visual Studio после установки разработки игр на C++ существует уязвимость назначения разрешений, а затем выбирается рабочая нагрузка «нереалный установщик». Система уязвима для ЛПЕ во время установки. она создает каталог с доступом на запись для всех пользователей.

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 Icon Visual 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 Icon Visual Studio 2019 версии 16.7.12

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

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


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

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

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

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

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 Icon Visual 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 ядро анализирует закодированные имена файлов 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.

профилировщик

Новое средство счетчиков производительности .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.


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