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



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


Примечание.

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



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

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

Эта версия теперь не поддерживается. Дополнительные сведения о поддержке Visual Studio см. в политике поддержки Visual Studio 2019.

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

Выпуски 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 на сайте сообщества разработчиков

Значок заметок о выпуске Visual Studio 2019 версии 16.8.7

Выпущено 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 есть уязвимость удаленного выполнения кода. Она обусловлена методами обработки кодировки текста.


Значок заметок о выпуске Visual Studio 2019 версии 16.8.6

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

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


Значок заметок о выпуске 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.

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


Значок заметок о выпуске 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 теперь поддерживает запуск из любого текущего каталога. Оно также возвращает ненулевое значение при сбое развертывания и выводит сообщения об ошибках в стандартный поток ошибок.

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



Значок заметок о выпуске 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.

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



Значок заметок о выпуске 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.
  • Исправлена проблема, при которой поиск в диалоговом окне новых проектов мог не возвращать результаты.

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



Значок заметок о выпуске Visual Studio 2019 версии 16.8.1

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

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

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

Значок заметок о выпуске 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.
  • Добавлен новый параметр ссылки для legacy_stdio_float_rounding.obj включения устаревшего поведения печати значений с плавающей запятой, который был изменен в Dev16.2 для правильного округления точно представленных чисел с плавающей запятой. Дополнительные сведения см. в разделе printf, _printf_l, wprintf, _wprintf_l.

Отладчик:

  • Поддержка отладки дампа ядра 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.
  • Исправлена ошибка, вызывавшая сбой или зависание Visual Studio 2019 при закрытии или выходе из решений ASP.NET Core.
  • Устранена проблема, из которой не удавалось загрузить систему проектов C++ после удаления и переустановки Visual Studio 2019.

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

C++

  • Теперь поддерживаются сопрограммы C++20 при использовании /std:c++latest и заголовка <coroutine>. Поддержка устаревшего поведения Visual Studio доступна при указании <experimental/coroutine> и параметра /await.
  • IntelliSense теперь обеспечивает поддержку заголовков <concepts> и <ranges> C++20, а также позволяет переименовывать и просматривать определения концепций. Существует известная проблема, которую мы планируем устранить в предварительной версии 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 > "Анализатор кода и исправления".
Как вы вводите оповещение об использовании битовой и вместо логических &> в логических типах
Анализатор кода «по мере ввода»

Отладчик

Поддержка отладки дампа ядра 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. В PropertyGroup CSPROJ-файла добавлено <FakesUseV2Generation>False</FakesUseV2Generation>.
  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.
Указания по имени встроенных параметров с помощью GitHub
Добавление учетных записей GitHub в Visual Studio
  • Поставщик публикации ClickOnce теперь доступен для классических приложений Windows для .NET Core 3.1 и .NET 5.0. Чтобы начать работу, щелкните проект правой кнопкой мыши в Обозревателе решений и выберите "Опубликовать" или откройте меню "Сборка" > "Опубликовать <AppName>". ClickOnce можно найти в категории "Папка".
Указания по имени встроенного параметра с изображением GitHub
Поставщик публикации ClickOnce в Visual Studio

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

  • Создание ветви из рабочего элемента Azure DevOps
Создание ветви из рабочего элемента Azure DevOps
Создание новой ветви из рабочего элемента
  • Откройте репозиторий Git из списка локальных репозиториев в меню Git
Список локальных репозиториев
Список локальных репозиториев в меню Git
  • Теперь поставщиком системы управления версиями по умолчанию является Git, а не TFVC. Эту настройку можно изменить в меню «Сервис» - «Параметры» - «Система управления версиями»

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

  • Просмотр и выбор из списка решений в репозитории в Обозреватель решений после открытия репозитория

Ротация функций (предварительная версия) для отображения списка представлений при открытии репозитория.
Ротация функций (предварительная версия) для отображения списка представлений при открытии репозитория.
Список представлений в Обозревателе решений
Список представлений в Обозревателе решений

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

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

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

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

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

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

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

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

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

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

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

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

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

Преобразование GetType в NameOf
Преобразование GetType в NameOf
  • У функцииОчистка кода появились новые параметры конфигурации, которые могут применять параметры форматирования и заголовков файлов, заданные в файле EditorConfig, к отдельному файлу или ко всему решению.
Поддержка параметров форматирования и заголовков файлов функцией
Поддержка параметров форматирования и заголовков файлов функцией "Очистка кода"
  • Теперь доступно исправление кода, позволяющее удалить ключевое слово in, где аргумент не должен передаваться по ссылке. Поместите курсор на ошибку. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг. Выберите Удалить ключевое слово "in".
Удаление в исправлении кода ключевого слова
Исправление кода для удаления ключевого слова "в"
  • Теперь доступен рефакторинг, представляющий новые методы объединения шаблонов C#9. Помимо предложений сопоставления шаблонов, например преобразования == для использования is по мере возможности, это исправление кода также предлагает методы объединения шаблонов and, or и not при сопоставлении нескольких различных шаблонов и отрицании. Поместите курсор внутрь оператора. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг. Выберите Использовать сопоставление шаблонов.
Введение в методы объединения шаблонов C#9
Введение в методы объединения шаблонов C#9
  • Теперь доступно исправление кода, позволяющее сделать класс абстрактным, когда вы пытаетесь написать абстрактный метод в неабстрактном классе. Поместите курсор на ошибку метода. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг. Выберите Make class "abstract" (Сделать класс абстрактным).
Превращение класса в абстрактный
Превращение класса в абстрактный
  • В выпуске 16.7, предварительная версия 1 доступно завершение IntelliSense в строковых литералах DateTime и TimeSpan. В данном выпуске этот список завершения автоматически отображается при вводе первой кавычки. В прошлом для просмотра этого списка завершения требовалось нажать клавиши CTRL+ПРОБЕЛ. Поместите курсор внутрь строкового литерала DateTime или TimeSpan и введите первую двойную кавычку. Вы увидите параметры завершения и пояснения к каждому символу. Будут указаны формат даты и времени, а также пример.
Завершение IntelliSense в строковых литералах DateTime и TimeSpan
Завершение IntelliSense в строковых литералах DateTime и TimeSpan
Это улучшение также работает для интерполированных строк при вводе двоеточия
Это улучшение также работает для интерполированных строк при вводе двоеточия
  • Теперь доступно исправление кода для удаления ненужных подавлений прагмы и ненужных SuppressMessageAttributes. Наведите курсор на предупреждение прагмы или SuppressMessageAttribute. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг. Выберите Remove unnecessary suppression (Удалить ненужные подавления).
Удаление ненужных прагм
Удаление ненужных прагм
Удаление ненужных SuppressMessageAttribute
Удаление ненужных SuppressMessageAttribute
  • Функции Переименовать и Найти все ссылки теперь распознают ссылки на символы в целевой строке глобальных подавлений SuppressMessageAttribute.
Переименование SuppressMessageAttribute
Переименование SuppressMessageAttribute
Поиск всех ссылок для SuppressMessageAttribute
Поиск всех ссылок для SuppressMessageAttribute
  • Visual Basic предлагал несколько способов передачи параметров — ByVal и ByRef, и в течение длительного времени ByVal быть необязательным. Теперь мы делаем ByVal полупрозрачным, чтобы указать, что это необязательный вариант, а также выпускаем исправление кода, чтобы удалить ненужные ByVal. Поместите курсор на ключевое слово ByVal. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг. Выберите "ByVal" keyword is unnecessary and can be removed (Ключевое слово "ByVal" является необязательным и может быть удалено).
Рефакторинг удаления ByVal в Visual Basic
Рефакторинг удаления ByVal в Visual Basic
  • Теперь доступна поддержка Интерактивного окна для нескольких сред выполнения, таких как .NET Framework и .NET Core.
Поддержка Интерактивного окна в .NET Core
Поддержка Интерактивного окна в .NET Core
  • Доступен новый API RegisterAdditionalFileAction, позволяющий авторам анализаторов создать анализатор для дополнительных файлов.

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

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

Обертывание сведений о тесте из меню
Меню параметров тестирования
Перенос текста в подробностях тестирования из контекстного меню
Перенос текста в подробностях тестирования из контекстного меню

Средства 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.
Значок сбоя привязки (панель инструментов в приложении)
Значок сбоя привязки (панель инструментов в приложении)
  • Окно сбоев привязки XAML. Новое окно "Сбои привязки XAML" теперь доступно для проектов WPF, UWP, WinUI и Xamarin.Forms. В этом новом специальном интерфейсе содержатся подробные сведения о сбоях привязки, которые ранее были доступными только в окне вывода. Улучшения включают возможность просмотра сбоев в виде столбцов с поддержкой поиска, которые можно сортировать и настраивать. Мы также сгруппировали аналогичные ошибки, минимизируя шум, который может возникнуть при использовании определенных сочетаний сбоев шаблонов привязки данных. При этом все исходные необработанные сведения об ошибках остаются доступными и их можно копировать с помощью контекстного меню. (Примечание. Требуется Xamarin версии 4.5.0.266-pre3 или более поздней.)
  • Перейдите к источнику для сбоев привязки. В партнерстве с командой WPF мы включили возможность перехода к источнику сбоев привязки для тех клиентов, которые нацелены на WPF в .NET 5 (RC2 или более поздней версии).
Окно
Окно "Сбои привязки XAML" и значок LVT

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

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

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

  • Поддержка IntelliSense WinUI 3.0. В этом выпуске мы включили улучшенную поддержку 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 для MVVM d:DataContext
XAML IntelliSense для MVVM d:DataContext

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

  • Заполнение элементов из пакетов NuGet без ссылок. В этом выпуске мы добавили поддержку конкретных файлов TargetFrameworkMoniker VisualStudioToolsManifest.xml при заполнении панели элементов элементами управления из пакетов NuGet без ссылок. Например, пакет может предоставлять различные наборы элементов управления для проектов .NET Core 3.1 и .NET 5.0.

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



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

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

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

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


Блоги

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


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

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


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