Поделиться через


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



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


Примечание.

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



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

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

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

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

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

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

Блог Visual Studio 2019

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


16.10.5 Visual Studio 2019 версии 16.10.5

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

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

Эта версия Visual Studio 2019 доступна только в службе Windows Software Update Service (WSUS).

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

  • Удаленный симулятор iOS теперь будет корректно работать со связанными устройствами Mac с установленным Xcode 12.4 или 12.5. Следующие функции симулятора Xcode недоступны при связывании с устройствами Mac с Xcode 12.4 или более поздней версией:
    • Имитация предупреждения памяти
    • Имитация расположений

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

CVE-2021-26423 — уязвимость .NET Core к отказу в обслуживании

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

CVE-2021-34485 — уязвимость к раскрытию информации в .NET Core

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

CVE-2021-34532 — уязвимость к раскрытию информации в ASP.NET Core

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

16.10.4 Visual Studio 2019 версии 16.10.4

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

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

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

  • Удалено использование запрещенных регистров в memset.
  • Исправлена ошибка Codegen, включающая сложные вложенные выражения с оператором побитового not.
  • Исправлена отладка шейдеров для анализатора графики VS.
  • Исправлена ошибка IntelliSense, возникавшая при обработке статических членов данных в специализациях шаблонов в классе.
  • X64 VC Redist больше не удаляет файлы среды выполнения при запуске с параметрами /installer /passive.
  • Исправлена ошибка, при которой порядок поиска include мог нарушаться при добавлении перед "Include Directories".
  • Исправлена проблема с производительностью и ложноположительные результаты, вызываемые одним из выражений средства проверки, которое обнаруживало ошибки при неправильном использовании VARIANT.
  • Исправлена проблема с производительностью, вызываемая одним из выражений средства проверки, которое обнаруживало ошибки при неправильном использовании значений перечисления в качестве индекса.
  • Исправлены языковые службы Live Share, чтобы восстановить основные функции редактирования кода для участников сеанса совместной работы (завершение кода, выделение синтаксиса, ошибки и т. д.).
  • Анализатор параллелизма больше не должен выдавать ложные предупреждения C26110 (не удалось получить блокировку) с шаблонами автоматической блокировки.
  • Устранена ошибка, при которой в компиляторах C# и Visual Basic возникал сбой, включающий конфликт InternalsVisibleTo с другими атрибутами уровня сборки.
  • Исправлена проблема, которая возникала у клиентов, упаковывающих свои проекты с Проектами упаковки приложений Windows, например приложения WPF NetCore и Project Reunion:

Ошибка: Файл ресурсов ...\obj\wappublish\win10-x86\project.assets.json не найден. Запустите восстановление пакета NuGet, чтобы создать этот файл. App4 (пакет) C:\Program Files\dotnet\sdk\5.0.302\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets 242

Проблема возникала потому, что Проект упаковки искал файл project.assets.json не в том каталоге, win10-$(configuration), а файл находился в каталоге win-$(configuration).

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


16.10.3 Visual Studio 2019 версии 16.10.3

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

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

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

  • Устранение проблемы, из-за которой при выборе команды "Перейти к определению" на символах, импортированных из модулей, иногда осуществлялся переход в начало файла модуля, а не к определению символа.
  • Устранена проблема, из-за которой разработчики с ослабленным зрением сталкивались с трудностями при определении фокуса на экране, так как отношение яркости цвета границы к яркости текстового поля было меньше 3:1.
  • Исправление в проекте базы данных: при перетаскивании файла из обозревателя решений в открытый файл происходит удаление файла из файловой системы.
  • Устранена проблема, из-за которой использование инструкции слияния в проектах баз данных приводило к ошибкам сборки.
  • При создании отчетов об установленных расширениях пути больше не отправляются на диск.
  • Устранена проблема, из-за которой попытка закрыть окно быстрого запуска может привести к сбою Visual Studio.
  • Устранена проблема, из-за которой открытие окна инструментов иногда приводило к сбою VS.
  • Исправлена ошибка в работе функции "Изменить и продолжить" C++ в пользовательском коде, из-за которой в приложение загружались несвязанные созданные символы G++/GCC.
  • Устранены ошибки в использовании частных селекторов с платформы iAd.
  • Устранена ошибка со сбоем в VS, который возникает из-за ошибок в Конструкторе XAML
  • Устранена проблема с проектами упаковки приложений Windows, которые ссылаются на проекты .netcoreapp, создающие файлы .msixbundle.
  • Устранена ошибка с отсутствием быстрой проверки обновления для проектов WAP, из-за которой выполнялась сборка этих проектов (вместо их пропуска), даже когда проекты были обновлены и не требовали изменений, что увеличивало время добавочной сборки в интегрированной среде разработки.

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


16.10.2 Visual Studio 2019 версии 16.10.2

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

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

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

  • Проверка параллелизма в анализе кода стала более интеллектуальной. Они реже дают неверные результаты для сложных потоков управления.
  • Это исправление восстанавливает поведение внешних заголовков, пропуская анализ внешних заголовков и подавляя предупреждения от внешних заголовков.
  • Исправлена ошибка в файлах .aspx/ascx, из-за которой завершения IntelliSense могли отображаться не полностью или производительность IntelliSense могла быть снижена.
  • Устранены проблемы масштабируемости с поставщиком Unity CodeLens при работе с большими проектами.
  • Восстановлены переведенные строки на странице параметров проверки подлинности службы Azure.
  • Устранены периодические проблемы с отображением визуального кода при использовании расширения Resharper.
  • Устранена проблема, из-за которой определенные окна инструментов, редакторы и конструкторы отображались слишком мелкими, чтобы в них можно было поместить какое-либо содержимое.
  • Устранены проблемы с отсутствующими значками приложения Xamarin в iOS при запуске приложения или при попытке опубликовать его в App Store.
  • Сборка проектов с помощью AOT+LLVM больше не завершается ошибкой XA3001.
  • После обновления до Visual Studio 2019 версии 16.10 при определенных обстоятельствах публикация приложений UWP может завершиться сообщением об ошибке "Указанное имя ресурса не найдено в файле образа". Теперь эта проблема устранена.
  • Устранена проблема, из-за которой Visual Studio 2019 перестает отвечать на запросы при изменении конфигурации устройства.
  • Устранены три проблемы в MSBuild:
    • Пропуск ошибок MSB4017 при сборке в Azure DevOps.
    • $([MSBuild]::MakeRelative()) снова сохраняет завершающие косые черты во входных данных.
    • Исключение стандартных масок с завершающим шаблоном "**" в файлах исключения без символов "." characters

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


16.10.1 Visual Studio 2019 версии 16.10.1

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

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

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

  • Устранена проблема, которая приводила к сбою компилятора IntelliSense.
  • Устранена проблема, из-за которой не удается закрыть экземпляры Visual Studio 2019, если в решении открыт Обозреватель тестов.
  • Устранена ошибка, из-за которой разработчикам приходилось создавать частичные решения из командной строки.
  • Исправлена ошибка при публикации ClickOnce для приложений .NET Core.
  • Устранена ошибка, из-за которой окно стека вызовов могло приводить к аварийному завершению работы Visual Studio 2019.
  • Устранена ошибка "Не удалось найти файл метаданных '***\bin\Debug\NativeLibrary.dll'" при сборке проектов привязки iOS.

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

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

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

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


16.10.0 Visual Studio 2019 версии 16.10.0

Дата выпуска: 25 мая 2021 г.

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

C++

  • В параметре /std:c++latest теперь доступны все функции C++20. Хотя реализация стандартов C++20 (текущих опубликованных ISO) в MSVC является полной с точки зрения функций, некоторые ключевые библиотечные функции C++20 должны быть изменены в соответствии с предстоящими отчетами о дефектах (исправления ошибок С++20 ISO). Эти изменения могут привести к несовместимости этих функций с ABI. Дополнительные сведения см. в разделе Проблема Майкрософт/STL 1814.
    • В версии 16.10 добавлена поддержка немедленных функций и constinit C++20.
    • Заключительные части <chrono>: новые часы, корректировочные секунды, часовые пояса и анализ.
    • Реализация <format> для форматирования текста.
  • /openmp:llvm теперь доступен на процессорах x86 и ARM64 в дополнение к x64.
  • Каталоги включения теперь можно назначить внешними каталогами с настраиваемыми уровнями предупреждений компиляции и параметрами анализа кода.
  • Добавлен параметр /await:strict для включения сопрограмм в стиле C++20 в более ранних языковых режимах.
  • Теперь визуализация отладчика std::coroutine_handle<T> отображает имя и подпись исходной функции сопрограммы, а также текущую точку приостановки.
  • Добавлена поддержка для CMakePresets.
  • Теперь при добавлении нового удаленного подключения в Visual Studio вам потребуется принять или отклонить отпечаток ключа узла, представленный сервером.
  • Добавлен параметр /external в MSVC для указания заголовков, которые в целях вывода предупреждений должны обрабатываться как внешние.

Усовершенствования средств Docker

  • Возможность создания профиля запуска, который настраивает службы для запуска в файле Compose.
  • Возможность добавления тега к изображению.
  • Добавлена вкладка "Тома" для контейнеров.
  • Добавлена вкладка "Метки" для контейнеров.
  • Добавлена вкладка "Метки" для изображений.
  • Теперь контейнеры группируются по проекту Compose.

Редактор

  • Пользователи, которые хотят упростить свою работу, могут изменить междустрочный интервал, выполнив поиск по условию "междустрочный интервал" в Поиске в Visual Studio Search (CTRL+Q). Параметр находится в разделе "Текстовый редактор" > "Общие".
  • В функциях "Найти в файлах" есть элемент управления для сохранения результатов. Приняв во внимание отзывы участников нашего сообщества, мы добавили параметр для включения параметра "Сохранить результаты" по умолчанию. Этот параметр можно найти, выполнив поиск по условию "сохранить результаты по умолчанию" в Поиске в Visual Studio (CTRL+Q). Параметр находится в разделе "Среда" > "Поиск и замена". Обратите внимание, что сейчас для пользователей действует ограничение в 5 результатов для поиска в файлах и 5 результатов для поиска всех ссылок.
  • Новый параметр в разделе "Поиск в файлах" позволяет пользователям выполнять дополнительные операции поиска и добавлять результаты в предыдущий поиск.

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

  • Изменилась работа кода, управляющего IntraTextAdornmentTags. Теперь, как и в случае с любым другим интерфейсом ITagger, необходимо вызвать событие изменения тегов при изменении базовых тегов. В противном случае теги не будут обновляться.

Отладка и диагностика

  • Диагностический анализ дампов памяти теперь распространяется и на дампы управляемого ядра Linux.

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

  • Переход из меню Git к веб-страницам по прямым ссылкам для создания запросов на вытягивание и их просмотра в GitHub или Azure DevOps.
  • Извлечение локальных и удаленных ветвей с помощью одиночного выбора в меню средства выбора ветви.
  • Удаление элементов из средства выбора репозитория с помощью контекстного меню.
  • Включение автоматической загрузки решений при открытии репозитория Git с помощью меню Git > "Параметры".
  • Переключение между действиями, выполняемыми по двойному щелчку (например, для извлечения ветви в окне репозитория Git), с помощью меню Git > "Параметры".
  • Синхронизация (извлечение и отправка) ветви с несколькими удаленными репозиториями в дополнительном меню окна "Изменения Git".
  • Настройка действий, отображаемых на панели инструментов (принесение, вытягивание, отправка, синхронизация) в дополнительном меню окна "Изменения Git".
  • Открытие репозитория в браузере в дополнительном меню окна "Изменения Git".
  • Поиск и извлечение локальных и удаленных ветвей из строки состояния.
  • Поиск локальных репозиториев Git и переключение между ними из строки состояния.
  • Исправлена проблема, из-за которой список локальных репозиториев в меню Git не загружался при запуске Visual Studio.
  • Добавляйте вложенные репозитории проекта в список локальных репозиториев при открытии репозитория.
  • Не закрывайте решение при переключении репозиториев с помощью "Git" > "Параметры".
  • Отключайте открытую папку при открытии репозиториев с помощью "Git" > "Параметры".
  • Синхронизируйте ветвь с удаленным репозиторием с помощью кнопки неотправленных фиксаций в строке состояния и с помощью команды синхронизации в меню Git.
  • Выполняйте извлечение и вытягивание из области журнала окна репозитория Git даже при отсутствии входящих фиксаций.
  • Просматривайте сведения о фиксации и сравнивайте изменения файлов в окне репозитория Git.
  • Выполняйте автоматическое повторное подключение или запрос на установку начального подключения Azure DevOps при открытии репозитория Azure DevOps Git.
  • Объединяйте и преобразуйте видимые имена ветвей, заменяя запутанную терминологию исходного и целевого объектов.
  • Улучшена производительность и надежность глифов исходного кода в Обозревателе решений.
  • Разделы входящих и исходящих сообщений в окне репозитория Git сохраняются даже при отсутствии содержимого.
  • Раскрывающиеся списки получения, извлечения и отправки для нескольких удаленных объектов в окне изменений Git объединены в общее меню Action (Действие).

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

  • Завершение аргументов в вызовах методов
  • Пользовательский интерфейс EditorConfig
  • Визуальная проверка и навигация по цепочке наследования
  • Завершение IntelliSense для приведения, индексаторов и операторов
  • Поддержка отладчика для генераторов исходного кода
  • Поддержка очистки кода для Visual Basic
  • Обновления функции "Изменение и продолжение" (EnC)
  • Удаление неиспользуемых ссылок.
  • Интеллектуальный перенос строки.
  • Упрощение рефакторинга выражений LINQ.
  • Завершение IntelliSense для значений Enum.
  • Параметр режима завершения IntelliSense.
  • Предпочтения стиля кода для переноса строк.
  • Поддержка возможности "Найти все ссылки" для генераторов исходного кода.

Редактор предварительного просмотра Razor (ASP.NET Core)

  • Обновления режима завершения IntelliSense
  • Поддержка функции "Перейти к определению" для универсальных компонентов
  • Новая конфигурация стиля кода для вкладок и пробелов
  • Текстовый редактор Razor в разделе "Сервис" > "Параметры" теперь называется Razor (ASP.NET Core)

Улучшения специальных возможностей тестирования

  • Теперь Console.Writeline отображается в Обозревателе тестов.
  • Теперь в выходных данных теста могут сохраняться теги, поэтому по гиперссылкам и ссылкам трассировки стека можно переходить даже из файлов журнала.
  • Файлы журнала создаются для одного результата теста, если выходные данные содержат более 300 символов, или если к результату теста присоединено более 10 файлов.
  • Теперь файлы журнала также можно открывать в режиме предварительного просмотра, чтобы упростить управление вкладками.
  • Файлы журнала и Обозреватель тестов поддерживают сочетание клавиш CTRL+Page Up/Page Down для навигации курсора и SHIFT+CTRL+Page Up/Page Down для выбора.
  • Теперь редактор файлов журнала использует интерфейс IVsTextView, что означает, что он может открывать очень большие текстовые файлы. Это избавит пользователей от необходимости открывать усеченные журналы Copy All в отдельном редакторе, например в Блокноте. Для MSTest теперь также добавлен единый файл журнала, в котором объединяются все выходные данные. Он заменяет отдельные файлы журнала для каждой строки данных.
  • Теперь вы можете получить объем протестированного кроссплатформенного кода в командной строке в Ubuntu и Alpine с помощью dotnet cli. Пользователи, которым необходимо получить объем протестированного кода на компьютерах, предназначенных для этих платформ, теперь могут добавить те же команды сбора данных об объеме протестированного кода, которые обычно используются в Windows. См. дополнительную документацию по dotnet test.
  • Теперь рядом с кнопкой "Свернуть все" в Обозревателе тестов появилась кнопка "Развернуть все". Эта команда была доступна с помощью сочетаний клавиш (CTRL+A, CTRL+СТРЕЛКА ВПРАВО), но благодаря дополнительным отзывам мы решили добавить кнопку в пользовательский интерфейс. Как всегда, благодарим вас за отзывы, отправленные с помощью https://developercommunity.visualstudio.com/.
  • Также внесены некоторые незначительные изменения в отображение "устаревших" результатов в Обозревателе тестов."Устаревшие", или "затененные" результаты — это результаты, выделенные серым цветом и не относящиеся к последнему тестовому запуску. Если результат не относится к последнему тестовому запуску, он будет отображаться как устаревший. Ранее обнаружения для новых тестов (или даже старые результаты тестов, которые обнаруживались повторно) также отображались со сплошными значками. Это привело к путанице, когда некоторые тесты, не предназначенные для запуска, были затенены, а другие — нет. Это изменение упростит отображение устаревших тестов.
  • Благодаря функции сохранения результатов тестов (добавлена в версии 16.2) вы сможете просмотреть результаты тестирования для последнего тестового запуска даже после закрытия и повторного открытия Visual Studio. Это помогает пользователям вспомнить, где они остановились, и предоставляет дополнительный контекст без необходимости запускать тест еще раз. Мы также изменили поведение сохраненных результатов, так чтобы они всегда отображались как устаревшие. Это позволяет более наглядно указать, что эти тесты не относятся к тестовому запуску для текущего сеанса Visual Studio.

Веб-инструменты:

  • Переход на версию 2 интерфейса API для подготовки в Azure AD.
  • Конфигурация приложений Azure в формате подключенной службы теперь поддерживает динамическую конфигурацию.

Дерево зависимостей в Проекте упаковки приложений Windows

  • "Дерево зависимостей" добавлено в проект WAP.

Улучшение инструментов XAML

  • XAML IntelliSense и Горячая перезагрузка XAML для клиентов Xamarin.Forms улучшены
  • Добавлены примеры данных XAML для выбора элементов управления в WPF
  • Добавлена новая лампочка для быстрого доступа к часто изменяемым свойствам
  • Добавлена новая лампочка в редакторе XAML, которая поможет создать модель представления

Средства Service Fabric

  • Общие сведения о файле StartupServices.xml в приложениях Service Fabric

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

Средства Docker

Окно инструментов "Контейнеры"

В этом выпуске мы внесли дополнения в окно инструментов "Контейнеры", чтобы упростить просмотр контейнеров и взаимодействие с ними. Чтобы опробовать новые функции, просто выберите Вид > Другие окна > Контейнеры.

  • Теперь контейнеры группируются по проекту Compose. Вы можете легко определять, какие контейнеры представляют ваше приложение. Также мы добавили вкладку "Метки" в раздел Контейнеры, чтобы можно было видеть, какие метки используются во время разработки.

Параметр группировки Compose и вкладка

  • Мы также добавили вкладку "Метки" для изображений.

Вкладка

  • На новой вкладке "Тома" можно просматривать тома работающего контейнера и даже открывать файлы в Visual Studio.

Вкладка

  • Теперь поддерживается возможность добавления тегов к изображению из окна инструментов "Контейнеры". В разделе Изображения щелкните правой кнопкой мыши изображение и выберите Добавить тег.

Добавление тега к изображению

Создание
  • Средства Docker Compose в Visual Studio теперь позволяют запускать любое сочетание служб, определенных в файлах Compose. Откройте раскрывающийся список "Отладка" или щелкните правой кнопкой мыши проект docker-compose и выберите пункт "Управление параметрами запуска Docker Compose", чтобы приступить к работе.

Управление параметрами запуска Docker Compose

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

  • Чтобы упростить создание запросов на вытягивание в Visual Studio, мы добавили элементы меню, которые являются прямыми ссылками на веб-страницы. Они позволяют создать запрос на вытягивание или просмотреть список таких запросов для репозитория. Меню является динамическим и учитывает, где находится репозиторий: в GitHub или Azure DevOps.

Создание запросов на вытягивание и просмотр их списка в Интернете из меню Git

  • Средство выбора ветви в строке состояния и окне "Изменения Git" теперь извлекает локальную или удаленную ветвь, когда вы выбираете ее в меню с одиночным выбором. В контекстном меню доступны дополнительные действия.

Щелчок левой кнопкой мыши позволяет извлечь ветвь, а правой — выбрать дополнительные действия

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

Удаление элементов из списка выбора репозитория с помощью контекстного меню

  • При открытии репозитория с помощью средства выбора репозитория или списка локальных репозиториев в меню Git решение больше не загружается автоматически. Вместо этого вы увидите список папок и решений, которые можно выбрать. Это поведение можно изменить с помощью флажка в разделе "Git > Параметры".

  • Вы можете извлекать ветви из окна репозитория Git, дважды щелкнув ее имя. Если вы хотите изменить это поведение, снимите флажок в разделе "Git > Параметры".

Параметры для включения автоматической загрузки решения и извлечения ветви.

  • В окне изменений Git теперь доступно больше действий. Значки панели инструментов можно настраивать и выбирать отображаемые действия. В дополнительном меню можно выполнять синхронизацию с несколькими удаленными репозиториями, а также открывать их веб-страницы в браузере.

Меню переполнения изменений Git с выносками для синхронизации, открытия в браузере и действий на панели инструментов.

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

Средство выбора ветви в строке состояния.

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

Средство выбора репозитория в строке состояния.

  • Устранена проблема, из-за которой список локальных репозиториев в меню Git не загружался при запуске Visual Studio.
  • Мы добавили два новых параметра в раздел "Git" > "Параметры" для управления открытием и переключением репозиториев. Теперь при переключении на другой репозиторий можно открыть текущее решение.

Параметр, позволяющий не закрывать текущее решение.

  • Можно также выбрать параметр, позволяющий не загружать корневую папку при открытии репозитория.

Параметр для открытия папки

  • Синхронизируйте (получите, а затем отправьте) ветвь с удаленным репозиторием с помощью кнопки неотправленных фиксаций в строке состояния и с помощью команды синхронизации в меню Git.

Кнопка синхронизации в строке состояния.

  • Выполняйте извлечение и вытягивание из области журнала окна репозитория Git даже при отсутствии входящих фиксаций. Доступ к этим разделам можно получить из строки состояния или с помощью сочетания клавиш CTRL+0+Y.

Раздел входящих фиксаций в окне репозитория Git с выноской для кнопок извлечения и вытягивания.

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

Сведения о фиксации и сравнение файлов в окне репозитория Git.

  • Просмотрите число удалений и вставок в файле и изменение макета сравнения.

Открытое окно фиксации с выносками для кнопок количества изменений в файле и кнопок режима макета на панели инструментов

  • Выполняйте автоматическое повторное подключение или запрос на установку начального подключения Azure DevOps при открытии репозитория Azure DevOps Git. Это обеспечивает доступ к рабочим элементам и сборкам для открытого репозитория.

Информационная строка в окне изменений Git с предложением подключиться к Azure DevOps для текущего репозитория.">

Контекстное меню при разрешении конфликтов отображает имена ветвей.

В редакторе преобразования и слияния отображаются имена ветвей в заголовке.

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

  • Мы добавили команду Remove Unused References (Удаление неиспользуемых ссылок) для очистки ссылок на проекты и пакетов NuGet, которые не используются. Эта возможность по умолчанию отключена, и ее нужно включить в разделе Сервис>Параметры>Текстовый редактор>C#>Дополнительно, установив флажок Show "remove Unused References" command in Solution Explorer (experimental) (Показать команду удаления неиспользуемых ссылок в обозревателе решений — экспериментальная возможность). После включения параметра команда "Удалить неиспользуемые ссылки" появится в меню правой кнопкой мыши узла проекта или узла зависимостей в Обозреватель решений:

Команда Remove Unused References (Удалить неиспользуемые ссылки)

При выборе "Удалить неиспользуемые ссылки" откроется диалоговое окно, в котором можно просмотреть все ссылки, которые будут удалены с параметром сохранения тех, которые вы хотите сохранить:

Диалог Remove Unused References (Удаление неиспользуемых ссылок)

  • Мы добавили новую команду Smart Break Line (Интеллектуальный перенос строки), которая автоматически добавляет набор скобок и помещает курсор внутри этих скобок при нажатии клавиш Shift+ВВОД в качестве символа фиксации. Интеллектуальный перенос строки применяется для всех объявлений типов, которые требуют наличия скобок, а также в выражениях создания свойств, событий, полей и объектов. В примере ниже демонстрируется применение интеллектуального переноса строки для класса и поля. Если в конце поля нет символа двоеточия, нажатие Shift+ВВОД преобразует это поле в свойство (к полю добавляется набор скобок). Чтобы отменить фиксацию, можно снова нажать клавиши SHIFT+ВВОД, которая также автоматически добавит точку с запятой в конце поля:

Интеллектуальный перенос строки.

  • Теперь для упрощения выражений LINQ применяется рефакторинг, который удаляет ненужный вызов Enumerable для метода .Where(), чтобы повысить производительность и удобочитаемость кода. Поместите курсор в выражение LINQ. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг. Выберите команду Упростить выражение LINQ.

Упрощение выражения LINQ

  • Теперь для значений Enum применяется завершение IntelliSense, если известен их тип, даже если не введено имя Enum.

Завершение IntelliSense для значений Enum.

  • Мы добавили новый параметр режима завершения IntelliSense, который позволяет настроить параметры заполнения по умолчанию. Этот новый параметр доступен в разделе Сервис>Параметры>Текстовый редактор>Дополнительно>Default IntelliSense completion mode (Режим завершения IntelliSence по умолчанию), и для него предоставляются следующие варианты значений: Last used (Последний использованный), который сохраняет режим, выбранный для клавиш Ctrl+Alt+ПРОБЕЛ, Tab-only (Только табуляция), который применяет завершение только по нажатию клавиши табуляции, и Automatic (Автоматически, в настоящее время используется по умолчанию), при котором заполнение применяется при вводе знаков пунктуации и специальных символов.

Параметр режима завершения IntelliSense.

  • Мы добавили предпочтения по переносу строк для стиля кода Вы можете настроить эти предпочтения в файле EditorConfig или через меню Сервис>Параметры>Текстовый редактор>C#>Стиль кода>New line preferences (experimental) (Предпочтения по новой строке — экспериментальная возможность).

Параметры стиля кода для новой строки

Например, можно задать предпочтения стиля кода для отчета о диагностике и предложить исправление кода, чтобы удалить дополнительные пустые строки:

Исправление кода для удаления лишних пустых строк

  • Добавлена поддержка возможности "Найти все ссылки" для генераторов исходного кода, которая позволяет найти ссылки в автоматически созданном документе.

  • Доступен параметр завершения, который автоматически вставляет аргументы при записи вызова метода. Эта возможность отключена по умолчанию. Чтобы включить ее, последовательно выберите "Сервис" > "Параметры" > "Текстовый редактор" > "C#" > "IntelliSense" и дважды нажмите клавишу TAB, чтобы вставить аргументы (экспериментальная функция). Начните писать вызов метода и дважды нажмите клавишу TAB (TAB+TAB). Обратите внимание, что вызов метода содержит аргументы, основанные на значениях по умолчанию для метода. Затем можно использовать сведения о параметрах для перебора списка аргументов, которые необходимо вставить, нажимая клавиши СТРЕЛКА ВВЕРХ и СТРЕЛКА ВНИЗ. Можно также начать вводить аргумент, чтобы вывести список завершения IntelliSense, и ввести точку с запятой, которая зафиксирует аргумент и добавит точку с запятой в конец вызова метода.

Завершение аргумента в вызове метода

  • Мы создали пользовательский интерфейс для EditorConfig. Откройте любой файл EditorConfig C# или Visual Basic в решении. Обратите внимание, что в новом пользовательском интерфейсе откроется параметр конфигурации стиля кода и качества кода для C# и Visual Basic.

Пользовательский интерфейс EditorConfig

  • Теперь существует визуальное представление для перемещения по цепочке наследования и ее исследования. Этот параметр отключен по умолчанию. Чтобы его включить, последовательно выберите "Сервис" > "Параметры" > "Текстовый редактор" > "C#" > "Дополнительно" и выберите "Показать поле наследования". При включении поля наследования к полям будут добавлены новые значки, представляющие реализации и переопределения кода. Если щелкнуть значок поля наследования, появятся параметры наследования, к которым можно перейти.

Значки полей наследования

  • Теперь доступно завершение IntelliSense для приведения, индексаторов и операторов.

Завершение IntelliSense для приведения, индексаторов и операторов

  • Добавлена поддержка отладчика для генераторов исходного кода. Сначала необходимо установить компонент Пакет SDK для .NET Compiler Platform из Visual Studio Installer. Затем необходимо добавить в файл проекта свойство <IsRoslynComponent>true</IsRoslynComponent>. После этого нужно включить параметр отладчика "Компонент Roslyn" на странице "Отладка свойств проекта" и выбрать соответствующий целевой проект. Затем следует нажать клавишу F5 в проекте генератора, после чего запустится файл CSC.exe или VBC.exe, который выполняет сборку целевого проекта, позволяя выполнять отладку кода генератора.

Отладчик генератора исходного кода

Целевой проект отладчика генератора исходного кода

В этом выпуске мы также добавили следующие улучшения в процесс отладки Изменение и продолжение (ENC) в Visual Studio.

  • Теперь можно применять изменения в коде, который находится внутри разделяемого класса.
  • Теперь можно применять изменения в сформированном исходном файле.
  • Теперь можно добавлять и (или) изменять директиву using.
  • Улучшения надежности и снижение объема потребляемой памяти.

Все три изменения доступны там, где сейчас поддерживается функция "Изменение и продолжение", и работают с исходными файлами C# и Visual Basic.

Отладчик и диагностика

  • Мы разработали несколько анализаторов для отлова типичных ошибок в дампах управляемой памяти. Этот анализ теперь можно применять к дампам управляемого ядра Linix.

Автоматический анализ дампов памяти

Спасибо

И, наконец, большая благодарность людям, которые в этом месяце трудились над производительностью .NET (Roslyn):

Редактор предварительного просмотра Razor (ASP.NET Core)

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

  • Завершение IntelliSense теперь фильтрует для компонентов HTML, элементов TagHelper и атрибутов C#:

Фильтры IntelliSense Razor

  • Завершение IntelliSense для переопределений C#.
  • Поддержка функции "Перейти к определению" для универсальных компонентов.
  • Новые параметры конфигурации стиля кода для вкладок и пробелов. Эти стили кода будут соблюдаться при вводе, форматировании и создании файла Razor. Чтобы перейти к настройке вкладок и пробелов, последовательно выберите "Сервис" > "Параметры" > "Текстовый редактор" > "Razor (ASP.NET Core)" > "Вкладки".
  • Текстовый редактор Razor в разделе "Сервис" > "Параметры" был переименован из Служб языка Razor в ASP.NET Core в Razor (ASP.NET Core).

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

Улучшения специальных возможностей тестирования

  • Теперь Console.Writeline отображается в Обозревателе тестов. Длинные выходные данные отображаются в виде свертываемого раздела на панели сводки сведений о тесте. В выходных данных определенной длины отображаются первые несколько строк, а затем данные усекаются с возможностью открытия журнала тестирования в отдельном окне. Трассировка стека усекается, если число кадров превышает 20, и будет отображать только первые и последние 10 кадров. Важная часть процесса усечения касалась сокращения числа зависаний в VS в случае получения большого объема выходных данных после выполнений тестов. Тесты с большим объемом выходных данных больше не будут блокировать поток пользовательского интерфейса.

Выходные данные теста содержат Console.Writeline

  • Теперь в выходных данных теста могут сохраняться теги, поэтому по гиперссылкам и ссылкам трассировки стека можно переходить даже из файлов журнала. Для перехода по этим ссылкам теперь можно использовать сочетания клавиш, вводимые с клавиатуры.

В выходных данных теста сохраняются гиперссылки и ссылки трассировок стеков

Гиперссылки и ссылки трассировок стеков также сохраняются в журналах тестов

  • Файлы журнала создаются для одного результата теста, если выходные данные содержат более 300 символов, или если к результату теста присоединено более 10 файлов. Теперь файлы журнала также можно открывать в режиме предварительного просмотра, чтобы упростить управление вкладками. Файлы журнала и Обозреватель тестов поддерживают сочетание клавиш CTRL+Page Up/Page Down для навигации курсора и SHIFT+CTRL+Page Up/Page Down для выбора.

Упрощен выбор журналов тестов с помощью сочетаний клавиш

  • Теперь редактор файлов журнала использует интерфейс IVsTextView, что означает, что он может открывать очень большие текстовые файлы. Это избавит пользователей от необходимости открывать усеченные журналы Copy All в отдельном редакторе, например в Блокноте. Для MSTest теперь также добавлен единый файл журнала, в котором объединяются все выходные данные. Он заменяет отдельные файлы журнала для каждой строки данных.

Инструменты тестирования

  • Теперь вы можете получить объем протестированного кроссплатформенного кода в командной строке в Ubuntu и Alpine с помощью dotnet cli. Пользователи, которым необходимо получить объем протестированного кода на компьютерах, предназначенных для этих платформ, теперь могут добавить те же команды сбора данных об объеме протестированного кода, которые обычно используются в Windows. См. дополнительную документацию по dotnet test.
  • Теперь рядом с кнопкой "Свернуть все" в Обозревателе тестов появилась кнопка "Развернуть все". Эта команда была доступна с помощью сочетаний клавиш (CTRL+A, CTRL+СТРЕЛКА ВПРАВО), но благодаря дополнительным отзывам мы решили добавить кнопку в пользовательский интерфейс. Как всегда, благодарим вас за отзывы, отправленные с помощью https://developercommunity.visualstudio.com/.
  • Также внесены некоторые незначительные изменения в отображение "устаревших" результатов в Обозревателе тестов."Устаревшие", или "затененные" результаты — это результаты, выделенные серым цветом и не относящиеся к последнему тестовому запуску. Если результат не относится к последнему тестовому запуску, он будет отображаться как устаревший. Ранее обнаружения для новых тестов (или даже старые результаты тестов, которые обнаруживались повторно) также отображались со сплошными значками. Это привело к путанице, когда некоторые тесты, не предназначенные для запуска, были затенены, а другие — нет. Это изменение упростит отображение устаревших тестов.
  • Благодаря функции сохранения результатов тестов (добавлена в версии 16.2) вы сможете просмотреть результаты тестирования для последнего тестового запуска даже после закрытия и повторного открытия Visual Studio. Это помогает пользователям вспомнить, где они остановились, и предоставляет дополнительный контекст без необходимости запускать тест еще раз. Мы также изменили поведение сохраненных результатов, так чтобы они всегда отображались как устаревшие. Это позволяет более наглядно указать, что эти тесты не относятся к тестовому запуску для текущего сеанса Visual Studio.

Сохраненные результаты теста для последнего сеанса Visual Studio отображаются затененными

Веб-инструменты

Динамическая конфигурация позволяет автоматически обновлять ресурсы конфигурации с помощью ПО промежуточного слоя. Конфигурация приложений в режиме подключенной службы теперь умеет автоматически интегрировать в приложение динамическую конфигурацию. Чтобы использовать эту подключенную службу, щелкните "Подключенные службы" и добавьте Конфигурацию приложений Azure в качестве зависимости службы.

Дерево зависимостей в Проекте упаковки приложений Windows

  • В дополнение к включению ссылок на пакет NuGet в Проект упаковки приложений Windows (WAP), которое состоялось в прошлом году, мы обновили пользовательский интерфейс Обозревателя решений для WAP. В старой версии интерфейса эти ссылки на пакет отсутствовали. В ней также было невозможно добавить пакеты NuGet.

Старый пользовательский интерфейс Проекта упаковки приложений Windows.

  • С помощью CPS и системы проектов .NET в новом интерфейсе мы добавили "Дерево зависимостей". В его поддереве "Приложения" все так же отображаются ссылки на проекты, а в поддереве "Пакеты" можно управлять пакетами NuGet.

Новый пользовательский интерфейс Проекта упаковки приложений Windows.

Улучшения инструментов XAML (WPF и Xamarin.Forms)

Xamarin.Forms

В этом выпуске мы предлагаем клиентам Xamarin.Forms два небольших улучшения в IntelliSense для XAML и Горячей перезагрузке XAML. Горячая перезагрузка "только изменение" больше не будет выводить ложные сообщения для:

  • методов задания в VisualStateManager, ссылающихся на свойства без указания типа, например <Setter Property="BackgroundColor" Value="Red">.
  • объединенных ResourceDictionaries, не заключенных в элемент <ResourceDictionary.MergedDictionaries>.

Пример:

    <Application>
    <Application.Resources>
        <ResourceDictionary Source='Colors.xaml'/>
        <Style TargetType='Label'> ... <Style>
    </Application.Resources>
    </Application>

Пример данных XAML

В этом выпуске мы еще больше улучшили возможности работы с данными во время разработки в Конструкторе XAML, представив новый способ добавления универсальных демонстрационных данных в элементы ItemsControl. Эта функция работает только для ListBox, ListView и DataGrid в WPF.

  • Образец данных можно включить с помощью параметра d:ItemSource='{d:SampleData}' для ListBox, ListView или DataGrid.
  • Элемент управления в конструкторе будет заполнен набором только из пяти элементов, которые соответствуют шаблонам данных и путям привязки.
  • Количество создаваемых элементов можно изменить с помощью свойства ItemCount, например: d:ItemSource='{d:SampleData ItemCount=3}'.

Элемент ListBox с образцом данных.

Быстрые действия в Конструкторе XAML

  • В Конструкторе XAML в углу выбранного элемента управления появился значок лампочки для быстрого доступа к часто изменяемым свойствам этого элемента.

  • Эта функция поддерживается в следующих элементах управления:

    • Для UWP: Border, Button, Canvas, CheckBox, ComboBox, Grid, HyperlinkButton, Image, ListBox, ListView, NavigationView, RadioButton, Slider, StackPanel, TextBlock, TextBox
    • Для WPF: Border, Button, Canvas, CheckBox, ComboBox, Grid, Image, Label, ListBox, ListView, StackPanel, TextBlock, TextBox
  • Эта функция доступна для UWP, WPF .NET Core и WPF .NET Framework (с включенной предварительной версией функции "Новый Конструктор XAML в WPF для .NET Framework" в диалоговом окне параметров).

  • Быстрые действия в Конструкторе XAML также получили модель расширяемости. Дополнительные сведения о создании собственных действий см. на странице GitHub, посвященной расширяемости Конструктора XAML.

Быстрые действия для элемента Button в Конструкторе XAML

Инструменты MVVM для XAML

В этом выпуске мы добавили в редактор XAML лампочку для создания модели представления. Эта лампочка отображается в корневом элементе документа XAML при обнаружении того, что в проекте используется платформа MVVM. В диалоговом окне можно настроить пространство имен созданного представления модели, папку и наследуемое базовое представление модели.

Создание представления модели с помощью лампочки

Лампочка также устанавливает созданную модель представления как x:DataType (для Xamarin.Forms) или d:DataContext (для всех остальных платформ) для документа XAML, позволяя пользователю создавать связанные свойства и команды в моделях представлений с помощью лампочек в редакторе XAML.

Средства Service Fabric

Эта функция представляет файл StartupServices.xml в макете приложения Service Fabric. В этом файле размещается раздел DefaultServices ApplicationManifest.xml. В этой реализации DefaultServices и параметры, связанные с определением сервиса, перемещаются из существующего файла ApplicationManifest.xml в новый файл с именем StartupServices.xml. Этот файл используется в каждой функции (Собрать/Перестроить/F5/Ctrl+F5/Опубликовать) в Visual Studio.

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

  • Устранена ошибка, из-за которой вызов команды Edit.SmartBreakline разработчиками C# приводил к удалению всего содержимого метода доступа к свойству.
  • Устранена проблема, из-за которой при обновлении параметра для стиля кода разработчиками изменение применялось ко всем экземплярам Visual Studio, а не только к необходимой папке.
  • Значок "Применить изменения кода" отображался независимо от того, был ли открыт собственный или объединенный проект. Теперь он будет становиться доступным только после запуска отладки.
  • Исправление ошибки, связанной с критическим изменением в AudioUnitPropertyIDType
  • Устранена проблема, из-за которой разработчикам, использующим платформу модульного тестирования UWP, не удавалось запустить тесты на удаленных устройствах.

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

На сайте сообщества разработчиков Visual Studio доступен полный список элементов, поставляемых в этом выпуске.

Вот лишь некоторые из проблем с наибольшим числом голосов, устраненные в выпуске 16.10:


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

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

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

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


Блоги

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


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

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


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