Заметки о выпуске 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
- 20 июля 2021 г. — Visual Studio 2019 версии 16.10.4
- 29 июня 2021 г. — Visual Studio 2019 версии 16.10.3
- 15 июня 2021 г. — Visual Studio 2019 версии 16.10.2
- 8 июня 2021 г. — Visual Studio 2019 версии 16.10.1
- 25 мая 2021 г. — Visual Studio 2019 версии 16.10.0
Помещенные в архив заметки о выпуске Visual Studio 2019
- Заметки о выпуске Visual Studio 2019 версии 16.9
- Заметки о выпуске Visual Studio 2019 версии 16.8
- Заметки о выпуске Visual Studio 2019, версия 16.7
- Заметки о выпуске Visual Studio 2019, версия 16.6
- Заметки о выпуске Visual Studio 2019 версии 16.5
- Заметки о выпуске Visual Studio 2019 версии 16.4
- Заметки о выпуске Visual Studio 2019 версии 16.3
- Заметки о выпуске Visual Studio 2019 версии 16.2
- Заметки о выпуске Visual Studio 2019 версии 16.1
- Заметки о выпуске Visual Studio 2019 версии 16.0
Блог Visual Studio 2019
Блог Visual Studio 2019 является официальным источником сведений о продукте от группы разработчиков Visual Studio. Более подробные сведения о выпусках Visual Studio 2019 версии 15.9 можно найти в следующих записях:
- Выпуски Visual Studio 2019 версий 16.10 и 16.11 (предварительная версия 1) доступны уже сегодня!
- Улучшение работы с Git в Visual Studio
- Уже доступно! Visual Studio 2019, версия 16.9 и 16.10, предварительная версия 1
- Visual Studio 2019 версии 16.9, предварительная версия 3, доступна уже сегодня!
- Выпуск Visual Studio 2019 версии 16.9 (предварительная версия 2) доступен вместе с новогодними пожеланиями!
- Выпуск Visual Studio 2019 версии 16.8 и 16.9 (предварительная версия) доступен уже сегодня!
- Новые возможности Visual Studio 2019 версии 16.8, предварительная версия 3.1
- Сегодня выходит Visual Studio 2019 версии 16.8, предварительная версия 2 с новыми возможностями!
- Сегодня выходит Visual Studio 2019 версий 16.7 и 16.8, предварительная версия 1!
- Visual Studio 2019 версии 16.7, предварительная версия 2, доступна уже сегодня!
- Новые интересные обновления для пользовательского интерфейса Git в Visual Studio
- Выпуск сегодня! Visual Studio 2019, версия 16.6 и 16.7, предварительная версия 1
- Visual Studio 2019 версии 16.6, предварительная версия 2 — новые возможности
- Visual Studio 2019 версии 16.5 теперь доступна!
- Время выпуска Visual Studio 2019 версии 16.4
- Visual Studio 2019 версии 16.4, предварительная версия 2, Fall Sports и Pumpkin Spice
- Поддержка .NET Core и другие возможности в Visual Studio 2019 версии 16.3 — выполните обновление сейчас!
- Выпущены Visual Studio 2019 версии 16.3, предварительная версия 2, и Visual Studio 2019 для Mac версии 8.3, предварительная версия 2!
- Visual Studio 2019 версии 16.2 и 16.3, предварительная версия 1, теперь доступна
- Visual Studio 2019 версии 16.2, предварительная версия 2
- Visual Studio 2019 версии 16.1 и 16.2, предварительная версия
- Visual Studio 2019. Пишите код быстрее. Автоматизируйте работу. Создавайте будущее.
Visual Studio 2019 версии 16.10.5
Сводка новых возможностей этого выпуска 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, который не удается проанализировать.
Visual Studio 2019 версии 16.10.4
Сводка новых возможностей этого выпуска 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).
От сообщества разработчиков
- Ошибки компиляции для внешних заголовков
- Неправильные предупреждения блокировки от анализатора C26110
- Внутренняя ошибка компилятора возникает после обновления до версии 16.10 Visual Studio при объявлении сборки в атрибуте InternalsVisibleTo
- Vcredist_x64.exe (14.29.30038.0), поставляемый с Visual Studio 16.10.2, некорректно удаляет msvcp140.dll после второй установки с помощью параметра /passive
- Проблема создания кода в VS 16.10.1 (только для x86)
- Санитайзер адресов должен разрешать активацию аварийных дампов без использования переменной среды
- Анализатор графики переставал работать, если щелкнуть треугольник после шейдера вершин, чтобы запустить отладку шейдера
- Vsftest: тестирование NMI
- Проблема публикации Project Reunion
- Средство в LKG12 WAVE2 требует обновления до поставки
- Не удавалось упаковать приложение WinUI 3 в MSIX
- Отладчик графики — отладка шейдера выдает сбой после обновления до выпуска 16.10.3
- Не удается упаковать приложение WinUI 3 с Project Reunion 0.8
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, из-за которой выполнялась сборка этих проектов (вместо их пропуска), даже когда проекты были обновлены и не требовали изменений, что увеличивало время добавочной сборки в интегрированной среде разработки.
От сообщества разработчиков
[C++, IntelliSense, 16.7.7]
Неверный размер указателя на функцию-член в подсказке- Среда Visual Studio версии 16.9.2 перестает отвечать на запросы при работе над проектами SQL Server
- C++ 20 IntelliSense выдает неправильные ошибки с range-v3 версии 0.10.0
- Проблема IntelliSense с модулями
- Исключение DirectoryNotFoundException в SkiaSharp в Xamarin Forms для iOS
- Проблема с редактором выпусков в версии 16.10.0 — невозможно перемещаться по коду с помощью поля со списком элементов
- Модули C++ 20: при выборе команды "Перейти к объявлению" курсор переходит в неправильное положение
- Параметр "Включить поток кода устройства при добавлении учетной записи" отсутствует в версии 16.10
- Ошибка PackageInspectionFailed в VS 2019 версии 16.10.0: не удалось загрузить файл Info.plist из пакета, файл или каталог отсутствует
- Пакет в App Store содержит 32-разрядные файлы
- Среда Visual Studio версии 16.10.2 не подключается к Mac
- vsftest: тестирование NMI
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
От сообщества разработчиков
- На сайте сообщества разработчиков Visual Studio доступен полный список элементов, поставляемых в этом выпуске.
- ClickOnce не публикует проект.
- Публикация ClickOnce для .NET 5.0 завершается сбоем, если параметр SelfContained имеет значение "true" и проект ссылается на другой проект.
- ClickOnce снова не работает.
- Публикация ClickOnce: не удалось найти файл метаданных (используется неправильный каталог), публикация в интерфейсе командной строки работает
- ClickOnce пытается получить библиотеки из неверной папки при публикации! (.NET 5)
- После обновления Visual Studio 2019 до версии сборки 16.10.0 ClickOnce не работает.
- Регрессия сборок в версии 16.10.0 с EWDK
- При публикации возникла ошибка.
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 существует уязвимость, приводящая к отказу в обслуживании из-за неправильной обработки отключения клиента.
От сообщества разработчиков
- На сайте сообщества разработчиков Visual Studio доступен полный список элементов, поставляемых в этом выпуске.
- Регрессия сборок в версии 16.10.0 с EWDK
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 к веб-страницам по прямым ссылкам для создания запросов на вытягивание и их просмотра в 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 (Действие).
- Завершение аргументов в вызовах методов
- Пользовательский интерфейс 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 IntelliSense и Горячая перезагрузка XAML для клиентов Xamarin.Forms улучшены
- Добавлены примеры данных XAML для выбора элементов управления в WPF
- Добавлена новая лампочка для быстрого доступа к часто изменяемым свойствам
- Добавлена новая лампочка в редакторе XAML, которая поможет создать модель представления
- Общие сведения о файле StartupServices.xml в приложениях Service Fabric
Сведения о новых возможностях Visual Studio 2019 версии 16.10
Средства Docker
Окно инструментов "Контейнеры"
В этом выпуске мы внесли дополнения в окно инструментов "Контейнеры", чтобы упростить просмотр контейнеров и взаимодействие с ними. Чтобы опробовать новые функции, просто выберите Вид > Другие окна > Контейнеры.
- Теперь контейнеры группируются по проекту Compose. Вы можете легко определять, какие контейнеры представляют ваше приложение. Также мы добавили вкладку "Метки" в раздел Контейнеры, чтобы можно было видеть, какие метки используются во время разработки.
- Мы также добавили вкладку "Метки" для изображений.
- На новой вкладке "Тома" можно просматривать тома работающего контейнера и даже открывать файлы в Visual Studio.
- Теперь поддерживается возможность добавления тегов к изображению из окна инструментов "Контейнеры". В разделе Изображения щелкните правой кнопкой мыши изображение и выберите Добавить тег.
Создание
- Средства Docker Compose в Visual Studio теперь позволяют запускать любое сочетание служб, определенных в файлах Compose. Откройте раскрывающийся список "Отладка" или щелкните правой кнопкой мыши проект docker-compose и выберите пункт "Управление параметрами запуска Docker Compose", чтобы приступить к работе.
Производительность Git
- Чтобы упростить создание запросов на вытягивание в Visual Studio, мы добавили элементы меню, которые являются прямыми ссылками на веб-страницы. Они позволяют создать запрос на вытягивание или просмотреть список таких запросов для репозитория. Меню является динамическим и учитывает, где находится репозиторий: в GitHub или Azure DevOps.
- Средство выбора ветви в строке состояния и окне "Изменения Git" теперь извлекает локальную или удаленную ветвь, когда вы выбираете ее в меню с одиночным выбором. В контекстном меню доступны дополнительные действия.
- Новое средство выбора репозитория в строке состояния имеет контекстное меню, вызываемое щелчком правой кнопкой мыши. Меню позволяет удалить элементы из списка.
При открытии репозитория с помощью средства выбора репозитория или списка локальных репозиториев в меню Git решение больше не загружается автоматически. Вместо этого вы увидите список папок и решений, которые можно выбрать. Это поведение можно изменить с помощью флажка в разделе "Git > Параметры".
Вы можете извлекать ветви из окна репозитория Git, дважды щелкнув ее имя. Если вы хотите изменить это поведение, снимите флажок в разделе "Git > Параметры".
- В окне изменений Git теперь доступно больше действий. Значки панели инструментов можно настраивать и выбирать отображаемые действия. В дополнительном меню можно выполнять синхронизацию с несколькими удаленными репозиториями, а также открывать их веб-страницы в браузере.
- Выполняйте поиск в локальных и удаленных ветвях, а также выполняйте общие действия с ветвями из средства выбора ветви в строке состояния.
- Выполняйте поиск локальных репозиториев Git и переключайтесь между ними с помощью средства выбора репозитория в строке состояния.
- Устранена проблема, из-за которой список локальных репозиториев в меню Git не загружался при запуске Visual Studio.
- Мы добавили два новых параметра в раздел "Git" > "Параметры" для управления открытием и переключением репозиториев. Теперь при переключении на другой репозиторий можно открыть текущее решение.
- Можно также выбрать параметр, позволяющий не загружать корневую папку при открытии репозитория.
- Синхронизируйте (получите, а затем отправьте) ветвь с удаленным репозиторием с помощью кнопки неотправленных фиксаций в строке состояния и с помощью команды синхронизации в меню Git.
- Выполняйте извлечение и вытягивание из области журнала окна репозитория Git даже при отсутствии входящих фиксаций. Доступ к этим разделам можно получить из строки состояния или с помощью сочетания клавиш CTRL+0+Y.
- Выберите фиксацию в окне репозитория Git, чтобы просмотреть сведения о ней и сравнить изменения в файлах без необходимости перехода к другим окнам. Выберите две фиксации и щелкните правой кнопкой мыши, чтобы сравнить их в одном окне. Изучите сведения в отдельном окне, чтобы более подробно ознакомиться с изменениями в полноэкранном режиме.
- Просмотрите число удалений и вставок в файле и изменение макета сравнения.
- Выполняйте автоматическое повторное подключение или запрос на установку начального подключения Azure DevOps при открытии репозитория Azure DevOps Git. Это обеспечивает доступ к рабочим элементам и сборкам для открытого репозитория.
">
- При разрешении конфликтов преобразования или слияния в редакторе слияния и в контекстном меню отображаются имена для текущей и входящей ветвей. Это позволяет избежать использования запутанной терминологии для исходного и целевого объектов.
Производительность .NET
- Мы добавили команду Remove Unused References (Удаление неиспользуемых ссылок) для очистки ссылок на проекты и пакетов NuGet, которые не используются. Эта возможность по умолчанию отключена, и ее нужно включить в разделе Сервис>Параметры>Текстовый редактор>C#>Дополнительно, установив флажок Show "remove Unused References" command in Solution Explorer (experimental) (Показать команду удаления неиспользуемых ссылок в обозревателе решений — экспериментальная возможность). После включения параметра команда "Удалить неиспользуемые ссылки" появится в меню правой кнопкой мыши узла проекта или узла зависимостей в Обозреватель решений:
При выборе "Удалить неиспользуемые ссылки" откроется диалоговое окно, в котором можно просмотреть все ссылки, которые будут удалены с параметром сохранения тех, которые вы хотите сохранить:
- Мы добавили новую команду Smart Break Line (Интеллектуальный перенос строки), которая автоматически добавляет набор скобок и помещает курсор внутри этих скобок при нажатии клавиш Shift+ВВОД в качестве символа фиксации. Интеллектуальный перенос строки применяется для всех объявлений типов, которые требуют наличия скобок, а также в выражениях создания свойств, событий, полей и объектов. В примере ниже демонстрируется применение интеллектуального переноса строки для класса и поля. Если в конце поля нет символа двоеточия, нажатие Shift+ВВОД преобразует это поле в свойство (к полю добавляется набор скобок). Чтобы отменить фиксацию, можно снова нажать клавиши SHIFT+ВВОД, которая также автоматически добавит точку с запятой в конце поля:
- Теперь для упрощения выражений LINQ применяется рефакторинг, который удаляет ненужный вызов Enumerable для метода .Where(), чтобы повысить производительность и удобочитаемость кода. Поместите курсор в выражение LINQ. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг. Выберите команду Упростить выражение LINQ.
- Теперь для значений Enum применяется завершение IntelliSense, если известен их тип, даже если не введено имя Enum.
- Мы добавили новый параметр режима завершения IntelliSense, который позволяет настроить параметры заполнения по умолчанию. Этот новый параметр доступен в разделе Сервис>Параметры>Текстовый редактор>Дополнительно>Default IntelliSense completion mode (Режим завершения IntelliSence по умолчанию), и для него предоставляются следующие варианты значений: Last used (Последний использованный), который сохраняет режим, выбранный для клавиш Ctrl+Alt+ПРОБЕЛ, Tab-only (Только табуляция), который применяет завершение только по нажатию клавиши табуляции, и Automatic (Автоматически, в настоящее время используется по умолчанию), при котором заполнение применяется при вводе знаков пунктуации и специальных символов.
- Мы добавили предпочтения по переносу строк для стиля кода Вы можете настроить эти предпочтения в файле EditorConfig или через меню Сервис>Параметры>Текстовый редактор>C#>Стиль кода>New line preferences (experimental) (Предпочтения по новой строке — экспериментальная возможность).
Например, можно задать предпочтения стиля кода для отчета о диагностике и предложить исправление кода, чтобы удалить дополнительные пустые строки:
Добавлена поддержка возможности "Найти все ссылки" для генераторов исходного кода, которая позволяет найти ссылки в автоматически созданном документе.
Доступен параметр завершения, который автоматически вставляет аргументы при записи вызова метода. Эта возможность отключена по умолчанию. Чтобы включить ее, последовательно выберите "Сервис" > "Параметры" > "Текстовый редактор" > "C#" > "IntelliSense" и дважды нажмите клавишу TAB, чтобы вставить аргументы (экспериментальная функция). Начните писать вызов метода и дважды нажмите клавишу TAB (TAB+TAB). Обратите внимание, что вызов метода содержит аргументы, основанные на значениях по умолчанию для метода. Затем можно использовать сведения о параметрах для перебора списка аргументов, которые необходимо вставить, нажимая клавиши СТРЕЛКА ВВЕРХ и СТРЕЛКА ВНИЗ. Можно также начать вводить аргумент, чтобы вывести список завершения IntelliSense, и ввести точку с запятой, которая зафиксирует аргумент и добавит точку с запятой в конец вызова метода.
- Мы создали пользовательский интерфейс для EditorConfig. Откройте любой файл EditorConfig C# или Visual Basic в решении. Обратите внимание, что в новом пользовательском интерфейсе откроется параметр конфигурации стиля кода и качества кода для C# и Visual Basic.
- Теперь существует визуальное представление для перемещения по цепочке наследования и ее исследования. Этот параметр отключен по умолчанию. Чтобы его включить, последовательно выберите "Сервис" > "Параметры" > "Текстовый редактор" > "C#" > "Дополнительно" и выберите "Показать поле наследования". При включении поля наследования к полям будут добавлены новые значки, представляющие реализации и переопределения кода. Если щелкнуть значок поля наследования, появятся параметры наследования, к которым можно перейти.
- Теперь доступно завершение 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):
- Валери (Valery) (@m08pvv): расширенное условие инварианта цикла PR #52168
- Мартин Стрекер (Martin Strecker) (@MaStr11): поддержка встраивания других интерполированных строк PR #49229, IntelliSense для приведений, индексаторов и операторов PR #47511
- Бернд Бауманнс (Bernd Baumanns) (@bernd5): устранена проблема с потерей информации, вызванная использованием значений по умолчанию в методах SyntaxNode-Update PR #52036, устранена проблема с интерполяцией строк NormalizeWhitespace помощью выражений-инициализаторов PR #51213
- C-xC-c (@C-xC-c): параметры равенства записи переименованы на "левый" и "правый" PR #51973
- Кай Джеллингхаус (Kai Jellinghaus) (@HurricanKai): изменение Compilation.CommonSyntaxTrees для использования ImmutableArray PR #51905
- Хуо Яоюань (Huo Yaoyuan) (@huoyaoyuan): пропуск внешних методов в стиле именования PR #51728, устранены проблемы NRT, возникающие при нацеливании на .NET 5.0 PR #50895
- Алиреза Хабиби (Alireza Habibi) (@alrz): устранена проблема с анализом шаблона в круглых скобках PR #49621
- Пол М Коэн (Paul M Cohen) (@paul1956): добавление поддержки очистки кода для Visual Basic PR #48092
- Петр Ондерка (Petr Onderka) (@svick): обеспечение функционирования DocumentationCommentCompiler после NormalizeWhitespace PR #47360
- Юсеф Виктор (Youssef Victor) (@Youssef1313): обновление IDEDiagnosticIDConfigurationTests так, чтобы они были эксклюзивными, а не инклюзивными PR #52078, устаревший ImportingConstructor PR #52073, согласованное поведение ContainsSyntaxTree в VB и C# PR #52050, гарантированное получение имени аргумента nameof PR #52016, исправление заметки NULL для SyntaxFactory.UsingStatement PR #51984, упрощение CSharpRequiredLanguageVersion PR #51881, отображение действующей языковой версии для версии #error PR #51880, обновление документации по SymbolEqualityComparer.IncludeNullability PR #51724, включение генераторов исходного кода в TryGetMethodDescriptorAsync PR #51686, поддержка привязки для шаблонов переменных PR #51620, использование полей в SyntaxToken.Value PR #51546, исправление отображения указателя на функцию RefKind PR #51223, обработка шаблонов в выражениях switch PR # 50984, добавление ImplementationAttributes в IMethodSymbol PR #50560
- Бенджамин Шублин (@bschaeublin):
- Исправлен лишний текст к заметке к перегрузке MetadataReference PR № 51242
- Мартин Стрикер (@MaStr11):
- Ложноположительное сообщение об избыточном приведении для IntPtr, nint и int PR № 51230 и PR № 51209
- Исправлены значки CI в файле README PR № 51085
- piotrstenke (@piotrstenke):
- Обновлены свойства, указывающие сами на себя, в теге
<see>
в файле GeneratorContexts.cs PR № 50896
- Обновлены свойства, указывающие сами на себя, в теге
- Huo Yaoyuan (@huoyaoyuan):
- Обновлено средство рекомендаций по ключевым словам, и теперь оно распознает члены структур с доступом только для чтения PR № 50820
- Иер Халберстад (@YairHalberstadt):
- Поддержка смешанных объявлений и присвоений в деконструировании PR № 44476
- Youssef Виктор (@Youssef1313):
- Добавлено #nullable enable в файле PublicAPI.(Un)shipped.txt PR № 50793
- Поддержка записей в CSharpGenerateDefaultConstructorsService PR № 50524
- Добавлены новые возможности форматирования строк для записей PR № 50274
Редактор предварительного просмотра Razor (ASP.NET Core)
Новый редактор предварительного просмотра Razor теперь поддерживает следующие функции редактирования Razor:
- Завершение IntelliSense теперь фильтрует для компонентов HTML, элементов TagHelper и атрибутов C#:
- Завершение 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 в случае получения большого объема выходных данных после выполнений тестов. Тесты с большим объемом выходных данных больше не будут блокировать поток пользовательского интерфейса.
- Теперь в выходных данных теста могут сохраняться теги, поэтому по гиперссылкам и ссылкам трассировки стека можно переходить даже из файлов журнала. Для перехода по этим ссылкам теперь можно использовать сочетания клавиш, вводимые с клавиатуры.
- Файлы журнала создаются для одного результата теста, если выходные данные содержат более 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.
Веб-инструменты
Динамическая конфигурация позволяет автоматически обновлять ресурсы конфигурации с помощью ПО промежуточного слоя. Конфигурация приложений в режиме подключенной службы теперь умеет автоматически интегрировать в приложение динамическую конфигурацию. Чтобы использовать эту подключенную службу, щелкните "Подключенные службы" и добавьте Конфигурацию приложений Azure в качестве зависимости службы.
Дерево зависимостей в Проекте упаковки приложений Windows
- В дополнение к включению ссылок на пакет NuGet в Проект упаковки приложений Windows (WAP), которое состоялось в прошлом году, мы обновили пользовательский интерфейс Обозревателя решений для WAP. В старой версии интерфейса эти ссылки на пакет отсутствовали. В ней также было невозможно добавить пакеты NuGet.
- С помощью CPS и системы проектов .NET в новом интерфейсе мы добавили "Дерево зависимостей". В его поддереве "Приложения" все так же отображаются ссылки на проекты, а в поддереве "Пакеты" можно управлять пакетами NuGet.
Улучшения инструментов 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}'
.
Быстрые действия в Конструкторе 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.
Инструменты 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, не удавалось запустить тесты на удаленных устройствах.
От сообщества разработчиков
Вот лишь некоторые из проблем с наибольшим числом голосов, устраненные в выпуске 16.10:
- .sqlproj не обновляется при изменениях
- Доступ к массивам в инициализаторах составных литералов возвращает неверные смещения
- Проблемы и комментарии по модулям стандартной библиотеки C++ для Visual Studio 2019 предварительной версии 2
- Visual Studio 2019 по-прежнему очищает каталог CMakeBuild при каждом изменении CMakeFiles.txt или CMakeSettings.json
- MSVC не соблюдает constexpr в лямбда-выражениях
- Конструктор Noexcept по умолчанию
- #Pragma warning(push, )) не отключает все предупреждения для своей области действия, если задано /Wall
- Constexpr-if и неиспользуемый параметр
- Невозможно объявить constexpr initializer_list.
- C++latest путает соглашение о вызовах в параметре шаблона
- Не удалось проверить наличие обновлений для Visual Studio 2019.
- В окне сравнения Git показано, что файл полностью изменен, при том что флажок "Игнорировать обрезку пробелов" снят.
- Вместо табуляции вставляются пробелы.
- Визуализаторы отладчика Visual Studio и BinaryFormatter в ASP.NET Core 5.
- VS для Linux: после обновления до версии 16.9 выходные файлы сборки на удаленном компьютере сохраняются не в ту папку.
- Некоторые открытые закрепленные вкладки открепляются при перезапуске Visual Studio.
- После обновления Visual Studio 2019 до версии 16.9.4 возникает ошибка компиляции или компоновки.
- Сборщик мусора собирает данные во время вызова метода для класса ссылки C++/CLI.
- Логическая ошибка с использованием EncodePointer/DecodePointer в файле Trace.cpp библиотеки CRT.
- Недопустимое значение параметра EnableAllWarnings у элемента.
- Возникает ошибка E0144 при запуске правильного кода. (ошибка IntelliSense).
- После обновления до Visual Studio версии 16.9.0 возникает ошибка "Недопустимый аргумент шаблона, требуется константное выражение времени компиляции".
- Visual Studio 2019 по-прежнему очищает каталог CMakeBuild при каждом изменении CMakeFiles.txt или CMakeSettings.json. (https://developercommunity.visualstudio.com/t/sizeof-array-to-pointer-VC-weirdness/1396250)* [Странное значение размера массива в указателе VC]
- Недопустимое символьное исключение в Xamarin.Android после обновления Visual Studio Community 2019 до версии 16.9.0.
- Microsoft.VisualStudio.TestStorage.TestStoreIndexingException: не удалось добавить результат для теста
- VS для Linux: после обновления до версии 16.9 выходные файлы сборки на удаленном компьютере сохраняются не в ту папку
- Некоторые открытые закрепленные вкладки открепляются при перезапуске VS
- Регрессия 16.9.0: действие, выполняемое при нажатии клавиши F7 ("Просмотр кода"), не работает для XAML-файлов Xamarin
- cl.exe использует более 5 ГБ оперативной памяти для компиляции небольшого фрагмента кода.
- Значения перечисления не отображаются в предложенных действиях, если атрибут TypeConverter применяется к пользовательскому типу перечисления
- Обозреватель тестов не выполняет тесты в netcore3.1 и net5.0, но работает с net461
- Неправильное создание кода при указании параметра /O2
- Просмотр кода в контекстном меню не работает
- Неустранимая ошибка C1001: Внутренняя ошибка компилятора (файл компилятора "D:\a01_work\4\s\src\vctools\Compiler\Utc\src\p2\main.c", строка 213)
- Сбой при попытке удаления динамической общей папки из диалогового окна расширения VS в установщике
- MSVC принимает недопустимое сравнение между указателем и целым числом в функции шаблона
- Visual Studio перестает отвечать на запросы при просмотре IntelliSense.
- IntelliSense не работает из-за сбоя vcpkgsrv
- Список процессов vcpkgsrv.exe продолжает расти.
- При слиянии ветвей Visual Studio отображается неправильное имя ветви.
- Часто возникающая ошибка Visual Studio 2019: "приложение вызвало интерфейс, который был маршалирован для другого потока".
- При запуске тестов из файла кода (например, с помощью сочетания клавиш CTRL+R, T) предпринимается попытка загрузки компонентов LiveShare, даже если они не установлены.
- Публикация ClickOnce для .NET Core 3.1 и .NET 5.0 может завершиться ошибкой, если проект ссылается на проект библиотеки классов с другой целевой средой выполнения.
- Исправлена ошибка E1504: внутренняя ошибка при использовании модулей C++ 20.
- IntelliSense в C++ не распознает использование перечисления.
- Visual Studio 2019 Enterprise RTM — проекты на основе пакета SDK для .NET (TargetFrameworkMoniker .NET 4.7.2).
- Исправлена ошибка анализа выходных данных конфигурации.
- Если компоненты LiveShare не установлены, отображается сообщение "Ошибка при загрузке пакета VslsFileSystemProviderVSCorePackage" .
- Сборка проекта привязки Xamarin iOS больше не работает в Visual Studio версии 16.9.
- Регрессивный VCXPROJ-файл набора инструментов 16.9, создающий статические библиотеки: PDB больше не копируется в выходные данные.
- При подключении к удаленному компьютеру Linux используется неверный конечный путь.
- Устранена проблема инициализации копированием, приводящая к разрешению перегрузки.
- Неправильная подчеркивание IntelliSense при использовании библиотеки Range v3.
- Строка приглашения, отображаемая после исключения в DiagnosticDataSerializer.ReadDiagnosticDataArray.
Известные проблемы
Просмотрите все открытые проблемы и доступные решения в Visual Studio 2019, перейдя по ссылке ниже.
Отзывы и предложения
Мы будем рады узнать ваше мнение! Вы можете сообщить о проблемах, щелкнув пункт Сообщить о проблеме в правом верхнем углу установщика или самой IDE-среды Visual Studio. Значок находится в правом верхнем углу. Вы можете предлагать для продукта новые функции, задавать вопросы, находить ответы и отслеживать решение своих проблем в сообществе разработчиков Visual Studio. Кроме того, вам доступна бесплатная поддержка в чате по вопросам с установкой.
Блоги
Воспользуйтесь аналитикой и рекомендациями с сайта Developer Tools Blogs. Там вы найдете актуальные сведения обо всех новых выпусках и сможете читать публикации с подробным анализом самых разных функций.
Журнал заметок о выпуске Visual Studio 2019
Дополнительные сведения о предыдущих версиях Visual Studio 2019 см. на странице Журнал заметок о выпуске Visual Studio 2019.