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



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


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

Community Download Button Professional Download Button Enterprise Download Button


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

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

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

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

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

Блог Visual Studio 2019

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


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

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

Проблемы, исправленные в версии 16.0.22

Уведомления о безопасности для версии 16.0.22

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

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

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

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


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

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

Проблема, устраненная в версии 16.0.21

Уведомления о безопасности для версии 16.0.21

CVE-2020-17156 Уязвимость при удаленном выполнении кода в Visual Studio

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


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

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

Проблема, устраненная в версии 16.0.20

Уведомления о безопасности для версии 16.0.20

CVE-2020-17100 Уязвимость, связанная с незаконным изменением, в Visual Studio

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


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

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

В этом выпуске 16.0.19

  • Пакет SDK для .NET Code 2.1.616 добавлен в Visual Studio 2019.

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

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

Проблемы, исправленные в версии 16.0.18

  • Неподдерживаемые версии .NET Core больше не будут переустанавливаться во время восстановления или обновления, если они были удалены за пределами VS.

Уведомления о безопасности для версии 16.0.18

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

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

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

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

CVE-2020-16856 Уязвимость при удаленном выполнении кода в Visual Studio

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

CVE-2020-16874 Уязвимость при удаленном выполнении кода в Visual Studio

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

CVE-2020-1045 Уязвимость обхода функции безопасности в Microsoft ASP.NET Core

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


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

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

Проблема, устраненная в версии 16.0.17

Уведомления о безопасности для версии 16.0.17

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

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


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

Выпущено 14 июля 2020 г.

Проблемы, исправленные в версии 16.0.16

  • Устранена регрессия компилятора CodeGen при вызове виртуальной функции в версии 15.9.
  • Исправлена ошибка, связанная с отсутствующими импортами в компоновщике C++ при использовании библиотек umbrella с различным регистром в суффиксе имени библиотеки DLL.
  • Исправлена ошибка в компиляторе С++ ARM64, из-за которой могли восстанавливаться неправильные значения после setjmp.

Уведомление о безопасности для версии 16.0.16

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

Уязвимость, которая может привести к несанкционированному повышению привилегий, возникает, когда стандартной службе сборщика в Центре диагностики Windows не удается должным образом очистить входные данные, что приводит к небезопасным действиям при загрузке библиотеки.

CVE-2020-1416. Уязвимость к повышению привилегий в Visual Studio

Уязвимость, связанная с повышением привилегий, возникает в Visual Studio при загрузке зависимостей программного обеспечения.

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

В роли удаленного пользователя, не прошедшего проверку подлинности, злоумышленник может направлять созданные особым образом запросы приложению ASP.NET Core или другому приложению, которое анализирует определенные типы XML. Обновление для системы безопасности устраняет уязвимость путем ограничения типов, которые могут находиться в полезных данных XML.


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

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

Проблемы, исправленные в версии 16.0.15

Советы по обеспечению безопасности для версии 16.0.15

CVE-2020-1108 / CVE-2020-1108 Уязвимость .NET Core, приводящая к отказу в обслуживании

Для комплексного устранения уязвимости CVE-2020-1108 корпорация Майкрософт выпустила обновления для .NET Core 2.1 и .NET Core 3.1. Клиенты, использующие любую из этих версий .NET Core, должны установить последнюю версию .NET Core. Последние номера версий и инструкции по обновлению .NET Core см. в заметках о выпуске.

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

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

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

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


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

Выпущено 12 мая 2020 г.

Проблемы, исправленные в версии 16.0.14

  • Добавлено изменение, которое позволяет ИТ-администраторам предприятия и инженерам по развертыванию настраивать такие средства, как клиент Центра обновления Майкрософт и SCCM, чтобы определить применимость обновлений VS2019 16.0, размещенных в каталоге Центра обновления Майкрософт и WSUS.

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

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

В роли удаленного пользователя, не прошедшего проверку подлинности, злоумышленник может направлять приложению .NET Core созданные особым образом запросы. Это обновление для безопасности устраняет эту уязвимость, исправляя методы, которыми веб-приложение .NET Core обрабатывает веб-запросы.


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

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

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

CVE-2020-0899 Уязвимость, связанная с повышением привилегий в Microsoft Visual Studio

Когда служба обновления Microsoft Visual Studio неправильно обрабатывает разрешения на доступ к файлам, существует уязвимость, связанная с повышением привилегий. Злоумышленник, успешно воспользовавшийся этой уязвимостью, может перезаписать содержимое произвольного файла в контексте безопасности локальной системы.

CVE-2020-0900 Уязвимость, связанная с повышением привилегий в службе установщика расширений Visual Studio

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

CVE-2020-5260 Уязвимость, связанная с утечкой учетных данных Git для Visual Studio из-за недостаточной проверки URL-адресов

При анализе специально созданных URL-адресов и их отправке во вспомогательные приложения учетных данных существует уязвимость, связанная с утечкой учетных данных. Это может привести к тому, что учетные данные будут отправлены на неправильный узел.


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

Дата выпуска: 10 марта 2020 г.

Проблемы, исправленные в версии 16.0.12

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

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

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

CVE-2020-0884. Уязвимость спуфинга при создании веб-надстройки Outlook

Уязвимость спуфинга существует при создании веб-надстройки Outlook, если включена многофакторная проверка подлинности

CVE-2020-0789. Уязвимость отказа в обслуживании службы установщика расширений Visual Studio

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


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

Выпущено 14 января 2020 г.

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

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

В роли удаленного пользователя, не прошедшего проверку подлинности, злоумышленник может направлять приложению ASP.NET Core созданные особым образом запросы. Это обновление для безопасности устраняет эту уязвимость, исправляя методы, которыми веб-приложение ASP.NET Core обрабатывает веб-запросы.

CVE-2020-0603 Уязвимость удаленного выполнения кода в ASP.NET Core

В роли удаленного пользователя, не прошедшего проверку подлинности, злоумышленник может направлять приложению ASP.NET Core созданные особым образом запросы. Это обновление для безопасности устраняет эту уязвимость, исправляя методы, которыми веб-приложение ASP.NET Core обрабатывает выполнение в памяти.


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

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

Проблемы, исправленные в версии 16.0.10

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

CVE-2019-1349 Уязвимость удаленного выполнения в Git для Visual Studio из-за слишком слабых ограничений в именах подмодулей

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

CVE-2019-1350 Уязвимость удаленного выполнения в Git для Visual Studio из-за неправильного заключения в кавычки аргументов командной строки

Уязвимость удаленного выполнения кода существует, когда Git интерпретирует аргументы командной строки с определенными кавычками во время рекурсивного клонирования в сочетании с URL-адресами SSH. Злоумышленник, использующий эту уязвимость, может удаленно выполнить код на целевом компьютере. Обновление для системы безопасности устраняет уязвимость, принимая новую версию Git для Windows, где эта проблема исправлена.

CVE-2019-1351 Уязвимость перезаписи произвольных файлов в Git для Visual Studio из-за использования небуквенных имен дисков во время клонирования

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

CVE-2019-1352 Уязвимость удаленного выполнения в Git для Visual Studio из-за неосведомленности об альтернативных потоках данных NTFS

В Git существует уязвимость удаленного выполнения кода при клонировании и записи в .git/directory через альтернативные потоки данных NTFS. Злоумышленник, использующий эту уязвимость, может удаленно выполнить код на целевом компьютере. Обновление для системы безопасности устраняет уязвимость, принимая новую версию Git для Windows, где учитываются альтернативные потоки данных NTFS.

CVE-2019-1354 Уязвимость перезаписи произвольных файлов в Git для Visual Studio из-за отсутствия отказа записывать отслеженные файлы с обратными косыми чертами

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

CVE-2019-1387 Уязвимость удаленного выполнения в Git для Visual Studio из-за слишком слабой проверки имен подмодулей в рекурсивных клонах

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

CVE-2019-1486 Уязвимость перенаправления URL-адресов для расширений Live Share

В расширении Visual Studio Live Share обнаружена уязвимость спуфинга, когда гостевой пользователь, подключенный к сеансу Live Share, был перенаправлен на произвольный URL-адрес, указанный узлом сеанса. Злоумышленник мог бы воспользоваться этой уязвимостью и заставить компьютер гостевого пользователя открыть браузер и перейти по вредоносному URL-адресу без явного согласия. Это было частью функции "Общий сервер" в Live Share, где допускалась автоматическая переадресация портов во время активного сеанса Live Share. Последнее обновление устраняет эту уязвимость, поскольку теперь у гостевого пользователя Live Share запрашивается согласие перед переходом по URL-адресу, указанному узлом.


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

Выпущено 15 октября 2019 г.

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

CVE-2019-1425 NPM Package Elevation of Privilege Vulnerability (опубликовано 12 ноября 2019 г.)

Уязвимость повышения привилегий возникает, когда Visual Studio не может правильно проверить жесткие связи при извлечении архивных файлов. Уязвимости появились в пакетах NPM, используемых в Visual Studio, как описано в следующих двух рекомендациях по NPM: npmjs.com/advisories/803 и npmjs.com/advisories/886. Обновленные версии этих пакетов NPM были добавлены в эту версию Visual Studio.


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

Выпущено 10 сентября 2019 г.

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

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

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

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


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

Выпущено 13 августа 2019 г.

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

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

CVE-2019-1211 Уязвимость для повышения привилегий в Git для Visual Studio

В Git для Visual Studio обнаружена уязвимость для повышения привилегий при неправильном анализе файлов конфигурации. Злоумышленник, успешно использовавший уязвимость, может запускать код в контексте другого локального пользователя. Чтобы воспользоваться этой уязвимостью, после прохождения проверки подлинности злоумышленнику необходимо изменить файлы конфигурации Git в системе до того, как будет выполнена полная установка приложения. После этого злоумышленнику будет необходимо убедить другого пользователя системы выполнить определенные команды Git. Эта проблема решена в обновлении путем изменения разрешений, необходимых для редактирования файлов конфигурации.

** CVE-2019-1301: Уязвимость .NET Core, приводящая к отказу в обслуживании

В .NET Core существует уязвимость, приводящая к отказу в обслуживании из-за неправильной обработки веб-запросов. Воспользовавшись этой уязвимостью, злоумышленник может вызвать отказ в обслуживании для веб-приложения .NET Core. Этой уязвимостью можно воспользоваться удаленно без аутентификации.

Это обновление устраняет эту уязвимость, исправляя методы, которыми веб-приложение .NET Core обрабатывает веб-запросы.


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

Выпущено 9 июля 2019 г.

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

  • В системах под управлением Windows 10 версии 1903 или если установлен .NET 4.8, поддерживается фиксированный экранный диктор.

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

CVE-2019-1075 Уязвимость спуфинга в ASP.NET Core

Обновления .NET Core были выпущены сегодня и включены в это обновление Visual Studio. Выпуск исправляет проблемы безопасности и другие важные ошибки. Сведения см. в заметках о выпуске .NET Core.

CVE-2019-1077 Уязвимость автоматического обновления расширения Visual Studio

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

CVE-2019-1113 Десериализация XOML в WorkflowDesigner допускает выполнение кода

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

Дополнительные сведения см. в статье https://support.microsoft.com/help/4512190/remote-code-execution-vulnerability-if-types-are-specified-in-xoml.


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

Выпущено 11 июня 2019 г.

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


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

Выпущено 14 мая 2019 г.

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

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

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

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


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

Выпущена 30 апреля 2019 г.

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

  • Средства Visual Studio для Kubernetes теперь поддерживают последнюю версию Azure Dev Spaces.

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


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

Выпущена 18 апреля 2019 г.

Проблемы, исправленные в Visual Studio 2019, версия 16.0.2


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

выпущена 9 апреля 2019 г.

Проблемы, исправленные в Visual Studio 2019, версия 16.0.1


Release Notes Icon Visual Studio 2019

Выпущено 2 апреля 2019 г.

Сводка новых возможностей Visual Studio 2019

Установка

IDE

  • Совместная работа с другими пользователями с помощью среды Visual Studio Live Share, устанавливаемой по умолчанию. Поддержка дополнительных языков для C++, VB.NET и Razor предоставляет гостям доступ к представлению решения и обмену несовпадениями в системе управления версиями.
  • Открытие кода, с которым вы недавно работали, или начало работы с часто используемыми потоками операций, такими как клонирование, открытие или создание проекта, в новом начальном окне.
  • Создание проектов с улучшенными функциями поиска и фильтрации с использованием нового списка шаблонов, отсортированных по популярности.
  • Увеличенное вертикальное пространство для кода, переработанный и осовремененный интерфейс, основанный на наборе новых визуальных изменений в оболочке.
  • Улучшенное отображение интегрированной среды разработки, не зависящее от конфигурации отображения и масштабирования; мы улучшили поддержку для разнообразных мониторов.
  • Повышение точности поиска Visual Studio для меню, команд, параметров и устанавливаемых компонентов.
  • Возможность быстро оценить "работоспособность" файла исходного кода с помощью индикатора документа. Запуск и настройка очистки кода одним щелчком из индикатора.
  • Простое управление функциями предварительной версии, на которые вы согласились, с помощью новой страницы "Функции предварительной версии" диалогового окна "Параметры".
  • Создавайте новые проекты с улучшенным поиском на основе тегов и доступным списком "Последние шаблоны проектов".
  • Создавайте новые элементы непосредственно из поиска в Visual Studio и находите результаты быстрее с помощью улучшенного соответствия.
  • Будьте в курсе важной информации, таких как запросы Visual Studio Live Share, с новым интерфейсом уведомлений.
  • Сохраняйте коллекцию исправлений очистки кода как профиль, чтобы удобно выбирать исправления, которые нужно выполнить во время очистки кода.
  • Запускайте новые рефакторинг .NET и исправления кода.
  • Выполняйте более простую настройку проектов .NET Core благодаря файлам проекта первого класса.
  • Просматривайте состояние расширений с тегами предварительной, платной и пробной версии в диалоговом окне "Расширения и обновления".
  • Проверяйте и настраивайте предварительные версии функций, которые должны быть активными после сброса настроек по умолчанию в этой предварительной версии.
  • Поддерживайте актуальность расширений, исключив определенные API тестовых окон, которые были помечены как устаревшие в этом выпуске.
  • Окно запуска теперь позволяет выполнять вход, просматривать и одним щелчком клонировать размещенные репозитории из Azure DevOps, а также подключаться к этим репозиториям.
  • Вы можете устанавливать расширения для других систем управления версиями, чтобы просматривать принадлежащие вам и вашей организации репозитории.
  • На основе отзывов была обновлена синяя тема: теперь она имеет меньшую яркость, улучшенную общую контрастность и включает ряд других усовершенствований.
  • Глобальный инструмент dotnet format позволяет задавать предпочитаемый стиль кода из командной строки.
  • MSBuild и Visual Studio теперь по умолчанию создают код для .NET Framework 4.7.2.
  • Мы удалили функции, относящиеся к службе приложений Azure, из обозревателя серверов. Аналогичные функции теперь доступны в Cloud Explorer.

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

Общие сведения об отладке и диагностике

  • Поиск ключевых слов в окнах контрольных значений, "Видимые" и "Локальные" во время отладки позволяет расширить функциональность поиска значений или объектов.
  • Представление раскрывающего списка спецификаторов формата в окнах контрольных значений, "Видимые" и "Локальные" при проверке данных.
  • Используйте настраиваемый визуализатор, который теперь совместим с .NET Core.
  • Отладка очень больших приложений с большим количеством модулей и PDB-файлов.
  • Запускайте Google Chrome с пользовательскими аргументами и отлаживайте приложения JavaScript в интегрированной среде разработки Visual Studio.
  • Используйте выделение горячего пути для средств выделения ЦП и объектов DotNet в профилировщике производительности.
  • Для приложений .NET Core 3.0 и более поздних версий теперь доступны точки останова в данных, которые позволяют прерывать работу при изменении значения свойства у конкретных объектов. В прошлом эта функция была доступна только для C++.
  • Начиная с предварительной версии 1, упрощен пользовательский интерфейс для поиска в окнах "Видимые", "Локальные" и "Контрольные значения". Функция поиска на уровень глубже была изменена на раскрывающийся список, позволяющий быстро выбирать уровень глубины начальной и последующих операций поиска.

Система управления версиями и Team Explorer

  • Временно сохраняйте изменения, чтобы работать над другими задачами, благодаря поддержке временного хранилища Git средствами Git в Team Explorer.
  • Ознакомьтесь с дополнительным расширением в Visual Studio Marketplace: это Запросы на вытягивание для Visual Studio, которые интегрируют проверку запросов на вытягивание в Visual Studio.
  • Используйте новый интерфейс рабочих элементов Azure DevOps, ориентированный на рабочие процессы разработчиков, включая специализированные пользовательские представления элементов, создание ветви из рабочего элемента, поиск рабочих элементов с помощью #упоминаний и встроенную правку.

Расширение среды

  • Доступен единый пакет SDK для Visual Studio в пакете NuGet Microsoft.VisualStudio.SDK.
  • Проект VSIX обновлен и теперь содержит AsyncPackage.
  • Приглашаем вас поэкспериментировать с добавленным нами шаблоном Пустой проект VSIX.
  • Теперь сведения о расширении ("Бесплатное", "Платное" или "Пробная версия") отображаются в диалоговом окне Расширения и обновления.

Языки программирования

C#

Предварительные версии возможностей языка C# 8.0, поддерживаемые компилятором C#, включая следующие:

  • Ссылочные типы, допускающие значение NULL. Если эта возможность включена (например, с помощью #nullable enable или на уровне проекта с помощью <NullableContextOptions>enable</NullableContextOptions>), ссылочные типы обрабатываются как допускающие значение NULL при наличии аннотации ? и как не допускающие в противном случае. Затем компилятор анализирует, где появляются значения NULL, и предупреждает о потенциально небезопасных случаях использования.
  • Выражения switch. Обеспечивают семантику, аналогичную switch, в контексте выражений.
  • Рекурсивное сопоставление шаблонов. Новые шаблоны допускают тестирование полей и свойств, а также позиционных элементов (из кортежей или деконструкций).
  • Поддержка типов Range и Index, используемых в CoreFX для создания срезов, включая литеральный синтаксис диапазонов x..y.
  • Асинхронные потоки, представленные IAsyncEnumerable<T>, могут перечисляться асинхронно с помощью await foreach и выводиться с помощью методов итератора async IAsyncEnumerable<T>.
  • Объявления using. Ликвидация в конце текущего блока без повышения уровня вложенности. Структуры ref могут ликвидироваться путем реализации открытого метода Dispose().
  • Локальные функции static. Локальные функции, помеченные как static, не могут ссылаться на this или переменные во включающих функциях.
  • Локальные функции и лямбда-выражения теперь могут объявлять параметры и локальные переменные, скрывающие имена переменных включающих функций.
  • Назначения объединения со значением NULL: x ??= y; назначает y для x, только если x имел значение null.

Дополнительные сведения см. в обзоре C# 8.0 от Мэдса.

Более подробные сведения см. в описании состояния функций языка C# и критических изменений.

Кроме того, можно использовать более современные возможности языка C# в Visual Studio по умолчанию.

C++
  • Экономьте время при создании кода на C++ и XAML с помощью Visual Studio IntelliCode; это дополнительное расширение, которое позволяет получать рекомендации по коду от ИИ.
  • Получайте предупреждения при анализе кода в редакторе. Анализ кода выполняется автоматически в фоновом режиме, а предупреждения отображаются в виде зеленой волнистой линии.
  • Воспользуйтесь новой строкой шаблона, которая использует пользовательский интерфейс окна просмотра и поддерживает вложенные шаблоны.
  • Запустите новую измененную реализацию проверки профиля времени существования на C++.
  • Настраивайте проекты CMake с помощью нового редактора параметров CMake, который представляет собой альтернативу CMakeSettings.json.
  • Опробуйте ряд улучшений серверной части, в том числе векторизацию OpenMP SIMD, ускорение времени компоновки и более агрессивное встраивание.
  • Появилась возможность открывать существующие кэши CMake, созданные внешними средствами, например CMakeGUI, или настраиваемыми системами метасборки.
  • Доступен параметр /Qspectre для более эффективного анализа и устранения рисков, связанных с уязвимостью Spectre 1-го варианта (CVE-2017-5753). Дополнительные сведения см. в записи блога команды разработчиков Visual C++.
  • Быстро переходите к аргументам предыдущего примера — теперь в строке шаблона IntelliSense есть раскрывающийся список последних использовавшихся элементов.
F#
  • Выпущена версия F# 4.6, а также различные усовершенствования компилятора.
  • Улучшена производительность крупных решений и исправлены различные ошибки в F# и инструментах F#.
  • Узнайте о некоторых удобнейших функциях от разработчиков открытого исходного кода для языка и инструментария F#.
JavaScript/TypeScript
Python
  • С легкостью добавляйте виртуальные среды и среды conda для Python с помощью диалогового окна добавления среды Python.
  • Работайте эффективнее со средами Python, включая улучшенную поддержку рабочих областей открытия папок с помощью новой панели инструментов выбора сред Python.
  • Создание сеансов Visual Studio Live Share и совместная работа над кодом Python с другими пользователями Visual Studio.

Веб-технологии

Инструменты для контейнера

Разработка мобильных приложений с Xamarin

Универсальная платформа Windows (UWP)

  • Сохраняйте комментарии, интервалы, пространства имен и любые другие изменения текста при внесении изменений в конструкторе. Конструктор манифестов пакетов теперь поддерживает строгое соответствие изменениям в xml в файле Package.appxmanifest.
  • Используйте проект Пакет приложений Windows для проектов .NET Core для создания пакетов MSIX.
  • Используйте мастер создания пакетов для прямой отправки в Microsoft Store.
  • Развертывание на устройствах с Windows Mobile больше не поддерживается в Visual Studio 2019. Попытки выполнить развертывание на устройстве с Windows 10 Mobile приведут к ошибке: "Развертывание на устройствах с Windows Mobile не поддерживается в Visual Studio 2019". Чтобы продолжить работу над приложением для таких устройств, продолжайте использовать Visual Studio 2017.

Средства отладки XAML.

  • Функция "Изменить и продолжить" в XAML теперь поддерживает x:bind (UWP). Функция "Изменить и продолжить" в XAML теперь поддерживает изменение привязок данных, созданных с помощью x:bind, для путей, содержащих открытые свойства, имя элемента, пути индексируемых свойств (коллекции), присоединенные свойства и свойства приведения. Другие изменения не поддерживаются. Это улучшение доступно для любого приложения, в котором минимальная и максимальная версии ориентированы на Windows 10 SDK версии 1809 (сборка 10.0.17763) или более поздней. (Примечание: функция "Изменить и продолжить" в XAML теперь называется горячей перезагрузкой XAML, начиная с обновления 2 (и более поздних версий) для Visual Studio 2019.

SQL Server Data Tools

  • Оцените обновленные SSDT и DacFX, которые теперь включают поддержку параметров сортировки UTF-8.

Подробное описание новых возможностей Visual Studio 2019

Установка

  • Теперь можно выбрать способ установки обновлений Visual Studio. Режим по умолчанию — "Скачать все и установить", который позволяет продолжить использование Visual Studio при загрузке обновлений. Примечание. При выборе режима "Скачать все и установить" потребуется открыть Visual Studio Installer и выбрать Продолжить.
  • Теперь обновления Visual Studio загружаются в фоновом режиме. Загрузка выполняется, только когда компьютер бездействует. После завершения скачивания вы получите уведомление в Visual Studio, что все готово к установке.
  • Теперь вы можете контролировать режим установки обновлений и указывать, нужно ли загружать обновления через меню Сервис > Параметры, изменив параметры на странице обновлений продуктов.
Product Update Options
*Варианты обновления продукта*

Начальное окно

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

  • Просмотреть последние проекты и папки и открыть их можно одним щелчком. Можно также закреплять и удалять элементы списка в контекстном меню.
  • Доступно клонирование и извлечение кода с любого общедоступного или частного URL-адреса git; папка при этом автоматически откроется в интегрированной среде разработки.
  • Вы можете выполнять вход, поиск, клонирование одним щелчком или подключение к размещенным репозиториям из Azure DevOps и устанавливать расширения для других узлов управления исходным кодом для просмотра репозиториев, принадлежащих вам и вашей организации.
  • Ищите проекты, решения и все папки, содержащие код, на локальном диске или сетевом ресурсе и открывайте их в интегрированной среде разработки.
  • Выберите шаблон проекта, который обеспечивает формирование шаблонов кода, помогая быстрее приступить к работе с новым проектом или решением.
  • Ищите шаблоны проектов по названию, описанию и тегам и применяйте фильтры по доступным языкам, платформам и типам проектов. В списке по умолчанию отображаются все доступные шаблоны, а список из 10 недавно использованных шаблонов проектов отображается на левой панели для быстрого доступа. Двухстраничный мастер позволяет принимать одно решение за раз.
Start window
*Новый интерфейс начального окна*

Оболочка и платформа

  • Новый улучшенный значок продукта помогает быстро определить, какую версию Visual Studio вы открываете и используете. Новый значок также более заметен поверх различных фоновых рисунков.
  • Интерфейс из Visual Studio осовременен; новая синяя тема упрощает пользовательский интерфейс, однако полностью соответствует нашим стандартам специальных возможностей.
  • В освобожденной вертикальной области в интегрированной среде разработки видно больше кода. Мы объединили строку заголовка и строку меню, сохранив при этом существующие функциональные возможности.
  • Новый экспериментальный параметр позволяет включить в Visual Studio поддержку различных мониторов. При включении он оптимизирует отображение таких частей Visual Studio, как оболочка и редактор, вне зависимости от конфигурации отображения или масштабирования.
  • Улучшен интерфейс расширенного поиска по меню, командам, параметрам и устанавливаемым компонентам. Теперь наш новый поиск динамически отображает результаты, учитывает орфографические ошибки и предоставляет соответствующие сведения (например, сочетания клавиш) в результатах поиска.
Visual Studio Search with results
*Расширенный поиск в Visual Studio*
  • Вы можете видеть сведения о работоспособности, связанные с открытым файлом, благодаря индикатору работоспособности документа.
Document Health Indicator with issues
*Индикатор работоспособности документа — проблема в документе*
Document Health Indicator with no issues
*Индикатор работоспособности документа — проблемы отсутствуют*
  • Если вы пишете код на C#, можно быстро скрыть некоторые из наиболее распространенных предложений, используя очистку кода.
  • Выберите набор исправлений, которые вы бы хотели выполнить, чтобы настроить очистку кода.
Code Cleanup configuration dialog
*Настройка очистки кода*
  • Просматривайте журнал содержимого в буфере обмена через контекстное меню, которое расширяет возможности буфера обмена (CTRL+SHIFT+V) .
Clipboard Ring context menu
*Контекстное меню кольцевого буфера обмена*
  • Мы улучшили поиск следующим образом:
    • Добавление фильтров для меню, компонентов и шаблонов.
    • Включение выбранных параметров поиска для отображения наиболее подходящих результатов.
    • Возможность создания и добавления проектов и элементов в решение напрямую из поиска Visual Studio.
  • Улучшенный интерфейс поддержки различных мониторов (PMA) теперь включен по умолчанию для пользователей, которые выполняют минимальный набор требований (предварительная версия .NET 4.8 и обновления Windows 10 от апреля 2018 г. или более поздней версии). Окна инструментов, например панель инструментов, "Точки останова", "Контрольные значения", "Локальные", "Видимые" и "Стек вызовов", были преобразованы в PMA и отрисовываются с высокой четкостью независимо от конфигурации дисплея и масштабирования.
  • Новые возможности уведомлений:
    • Новый значок и счетчик в строке состояния.
    • Новый механизм всплывающих уведомлений.
    • Уведомления о обновлении Visual Studio и истечении срока действия лицензии Visual Studio.
  • Обновленная на основе отзывов синяя тема: теперь она имеет меньшую яркость, улучшенную контрастность и включает ряд других усовершенствований.
  • Улучшенные возможности перетаскивания окон за счет использования свободного места в области панели инструментов как области для перетаскивания.
  • Сохраняйте коллекцию исправлений очистки кода как профиль, чтобы быстро выбирать исправления, которые нужно выполнить во время очистки кода.
Visual Studio Code Cleanup Profiles
*Профили очистки кода Visual Studio*
  • Мы добавили теги в диалоговом окне "Расширения и обновления", чтобы вы быстрее распознавали версию расширения — предварительная, платная или пробная.
Extensions and Updates dialogs with tags
*Диалоговое окно "Расширения и обновления" с тегами*
  • Чтобы реализовать всплывающие подсказки данных в Visual Studio 2019 и более поздних версиях, теперь рекомендуется использовать IAsyncQuickInfoSourceProvider. Традиционные API быстрой справки редактора IVsTextTipData и TextTipData считаются устаревшими, начиная с Visual Studio 2019 Preview 1.
  • Вместо смарт-тегов редактора (семейство интерфейсов ISmartTag * в пространстве имен Microsoft.VisualStudio.Language.Intellisense) рекомендуется использовать LightBulb API; начиная с Visual Studio 2019 Preview 1, смарт-теги больше не поддерживаются.
  • Параметры решения Показывать дополнительные конфигурации построения, Всегда показывать решение и Сохранять новые проекты при создании были удалены в связи с неактуальностью. Эти значения теперь по умолчанию заданы как True.
  • Согласиться использовать определенные функции предварительной версии можно с помощью новой страницы "Функции предварительной версии" в разделе Сервис > Параметры > Среда > Функции предварительной версии.

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

  • Мы добавили новый ярлык для выбора сборки для папок и решений: CTRL + B.
  • Быстрое открытие больших решений путем загрузки решения без загрузки проектов. Не загружать проекты.
  • Выбирайте, какие проекты следует загрузить при открытии решения, с помощью фильтрации файлов решения.
    • Вы можете создать файл фильтра решения, тем самым отменив загрузку проектов, которые не требуется открывать автоматически. Для этого щелкните решение правой кнопкой мыши и выберите команду "Сохранить как фильтр решения". Затем файл фильтра можно использовать для открытия решения в дальнейшем. Фильтры решений
  • Мы добавили команду "Собрать все" для файлов CMake: CTRL + SHIFT + B.
  • Мы улучшили производительность IntelliSense в файлах C++ в проектах CMake.
  • Мы добавили команду для загрузки зависимостей выгруженного проекта в контекстные меню проекта и решения.
  • Уведомления для повышения производительности Visual Studio теперь сохраняются в центре производительности, доступном в разделе Справка > Управление производительностью Visual Studio.
  • Теперь вы видите ход загрузки решения в центре состояния задач, а также оповещения после загрузки решения.
  • Выбирайте, какие проекты следует загрузить при открытии решения, с помощью фильтрации файлов решения.
    • Вы можете создать файл фильтра решения, тем самым отменив загрузку проектов, которые не требуется открывать автоматически, щелкнув решение правой кнопкой мыши и выбрав команду Сохранить как фильтр решения. Затем файл фильтра можно использовать для открытия решения в дальнейшем.
  • Улучшены обнаружение ресурсов сборки и поиск файлов по нажатию CTRL+T в ситуациях открытия папки.
  • Заметное повышение производительности, достигаемое благодаря тому, что редактор Visual Studio ограничивает влияние вспомогательных компонентов на качество набора текста. В частности, он будет автоматически отменять любые операции, выполняющиеся длительное время и не являющиеся необходимыми при вводе.
  • Вы можете настроить поведение ограничения вспомогательных компонентов Visual Studio с помощью меню Сервис > Параметры > Текстовый редактор > Дополнительно:
Visual Studio Typing Latency Options
*Параметры задержки ввода Visual Studio*
  • Теперь вы можете отключить восстановление состояния иерархии проекта из предыдущего сеанса в окне инструментов обозревателя решений. Мы реализовали это изменение, так как восстановление иерархии проекта из предыдущего сеанса в решении может замедлять загрузку решения.
    • Этот параметр находится в меню Сервис > Параметры > Проекты > Решения > Общие.
Solution load restore settings
*Параметры восстановления при загрузке решения*
* Теперь вы можете отключить восстановление состояния окна инструментов из предыдущего сеанса и вместо этого всегда загружать обозреватель решений и Team Explorer при запуске. Это изменение добавлено, так как восстановление окон инструментов из предыдущих сеансов могло вызвать замедлять загрузку решения при запуске. * Переключите этот параметр в меню **Сервис > Параметры > Среда > Запуск**.

Общие аспекты отладки и диагностики

Общая отладка
  • Выделение, поиск и навигация с помощью ключевых слов благодаря новой функции поиска, которую мы интегрировали в окнах контрольных значений, "Видимые" и "Локальные".
Searching for keywords in Watch
Поиск в окне "Контрольные значения"
  • Используйте раскрывающийся список спецификаторов и параметров для форматирования данных в окнах контрольных значений, "Видимые" и "Локальные", добавив запятую к элементу списка.
Format Specifier Dropdown List in Watch
Раскрывающийся список описателей формата в окне контрольных значений
  • Теперь можно использовать настраиваемые визуализаторы и визуализаторы наборов данных для .NET Core.
DataSet Visualizer for .NET Core
Визуализатор наборов данных для приложений .NET Core
  • Для приложений на C++, работающих в Windows, PDB теперь загружаются в отдельном 64-разрядном процессе. Это изменение позволяет устранить ряд сбоев из-за нехватки памяти при отладке приложений, которые содержат большое количество модулей и PDB-файлов.
Управляемые точки останова в данных

Для приложений .NET Core (3.0 и более поздних версий) теперь доступны точки останова в данных, позволяющие прерывать работу при изменении значения свойства у конкретных объектов. В прошлом эта функция была доступна только для C++. Это отличная альтернатива обычным точкам останова в методе задания свойства, так как точка останова в данных может работать для свойства конкретного объекта, даже находящегося вне текущей области, тогда как в другом случае возможны постоянные ненужные прерывания, когда функцию вызывают сотни разных объектов.

Data breakpoints for .NET Core
Точки останова в данных в приложении .NET Core
Обновление интерфейса поиска в окне контрольных значений

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

Применение параметров стиля кода
  • Теперь предпочитаемый стиль кода можно задавать из командной строки с помощью глобального инструмента dotnet format. Для его установки потребуется пакет SDK для .NET Core 2.1 или более поздней версии. В удобном вам терминале выполните следующую команду: dotnet tool install -g dotnet-format --version 3.0.0-beta4-19105-10
dotnet format video
Выполните dotnet-format в командной строке.

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

  • В Visual Studio 2019 вы больше не сможете установить расширения, созданные в формате vsixmanifest V1. Версия V1 появилась в Visual Studio 2010 и была объявлена устаревшей в Visual Studio 2017, так как ее использование могло привести к проблемам надежности с Visual Studio. В Visual Studio 2019 поддержка этой версии была полностью удалена. Расширения, предназначенные для Visual Studio 2019, должно быть перестроены для версии 2 или 3 формата vsixmanifest.
  • Теперь, когда расширения автоматически загружаются синхронно, вы получите уведомление. Обратите внимание, что в этом выпуске модуль будет загружаться и работать в обычном режиме, но существует опасность, что он не будет работать в следующем обновлении Visual Studio 2019. Дополнительные сведения см. в нашей записи блога Повышение оперативности критических сценариев за счет обновления режима автозагрузки для расширений.
Единый пакет SDK в NuGet

В прошлом авторам расширений приходилось создавать множество отдельных ссылок на конкретные пакеты NuGet из пакета SDK для Visual Studio, необходимого для использования в расширениях. Версии различных пакетов могли быть несогласованными, что часто приводило к конфликтам зависимостей во время компиляции, а также к проблемам во время выполнения.

Чтобы устранить эти проблемы, используйте новый пакет Microsoft.VisualStudio.SDK, содержащий зависимости всех пакетов, входящих в состав SDK для Visual Studio. Он решает проблему несоответствия версий и позволяет легко узнать, какую версию нужно использовать. Чтобы получить доступ ко всему пакету SDK, просто используйте версию пакета, которая соответствует самой ранней версии Visual Studio, поддерживаемой вашим расширением.

На данный момент существует только версия пакета SDK 15.9, но в ближайшие месяцы будут выпущены другие версии вплоть до 14.0.

Новые и обновленные шаблоны проектов

Шаблон Проект VSIX претерпел целый ряд изменений и стал более простым и эффективным. Теперь он:

  • использует новый единый пакет SDK в NuGet;
  • содержит класс AsyncPackage;
  • больше не требует RESX-файл для компиляции пакета;
  • используется на платформе. NET Framework 4.7.2.

Был создан новый шаблон Пустой проект VSIX, аналогичный шаблону проекта VSIX, но без класса AsyncPackage. Он также ссылается на единый пакет SDK в NuGet и является хорошей отправной точкой для расширений MEF и других типов расширений без пакетов.

"Бесплатное", "Платное" или "Пробная версия"

Раньше определить вид расширения было сложно. Теперь ситуация изменилась: в диалоговом окне Расширения и обновления можно увидеть расширения с четкими метками "Платное" или "Пробная версия". А расширения без таких меток являются бесплатными.

Средства тестирования

Дополнительные API в окне "Тест", которые ранее были не документированы, но помечены как общедоступные, добавлены в список нерекомендуемых.

Система управления версиями

  • Временно сохраняйте изменения, чтобы работать над другими задачами, благодаря поддержке временного хранилища Git средствами Git в Team Explorer.
  • Просматривайте, запускайте и отлаживайте запросы на вытягивание в репозитории Azure, не покидая интегрированной среды разработки, с помощью совершенно нового интерфейса запросов на вытягивание в Visual Studio 2019. Чтобы приступить к работе, можно скачать расширение Запросы на вытягивание для Visual Studio из Visual Studio Marketplace.
New Pull Request Experience
Новые запросы на вытягивание

MSBuild

  • Версия набора инструментов MSBuild была изменена с 15.0 для Current. MSBuild.exe теперь имеет версию %VSINSTALLDIR%\MSBuild\Current\Bin\MSBuild.exe.
  • MSBuild и Visual Studio теперь по умолчанию создают код для .NET Framework 4.7.2. Если вы хотите использовать новые функции API MSBuild, необходимо также обновить сборку, но существующий код будет продолжать работать.

C#

Для каждого выпуска до Visual Studio 2019 языковая версия C# по умолчанию всегда была эквивалентна последней основной. В эпоху Visual Studio 2017 были выпущены три дополнительные номера версии C#: 7.1, 7.2 и 7.3. Тем не менее для новых проектов по умолчанию по-прежнему использовалась версия C# 7.0. Это оказалось неудобным для разработчиков C#, которые хотели использовать новые функции и для этого им приходилось вручную изменять версию языка для каждого создаваемого проекта.

Чтобы решить эту проблему, языковая версия C# по умолчанию определяется ее целевой платформой:

  • если вы создаете проект для предварительной версии .NET Core 3.0, версией языка C# будет предварительная версия C# 8.0;
  • если вы создаете проект для .NET Framework или любой непредварительной версии .NET Core, версией языка C# будет версия C# 7.3.

Это позволяет использовать последние стабильные возможности языка C# по умолчанию, а при использовании предварительных версий .NET Core использовать возможности предварительной версии C# 8.0, которые соответствуют предварительной версии .NET Core 3.0.

Если указать версию языка через LangVersion в файле проекта или свойств, эта версия языка переопределяет значение по умолчанию, которое описано выше.

C++

  • Совместная работа в режиме реального времени стала возможна благодаря тому, что Visual Studio Live Share теперь поддерживает C++.
  • Экономьте время с помощью IntelliCode; это дополнительное расширение, которое использует обучение и контекст кода для вывода тех вариантов, которые вы чаще всего используете, в верхней части списка завершения. В C++ IntelliCode наиболее эффективно работает при использовании популярных библиотек, таких как STL.
  • Мы изменили несколько имен и описаний шаблонов проектов в соответствии с обновленным диалоговым окном создания проекта.
  • Мы удалили экспериментальный компонент Clang/C2. Для обеспечения полного соответствия стандартам C++ используйте набор инструментов MSVC с параметрами /permissive- и std:c++17 или же цепочку инструментов Clang/LLVM для Windows. Дополнительные сведения см. в блоге команды разработчиков Visual C++.
  • Параметр компилятора C++ /Gm теперь считается устаревшим. Рекомендуется отключить параметр /Gm в скриптах сборки, если он задан явно. Можно просто проигнорировать предупреждение об устаревании /Gm, так как оно не считается ошибкой при использовании режима "Обрабатывать предупреждения как ошибки" (/WX).
  • C++ для Android теперь по умолчанию равняется на Android SDK 25 и пакет NDK для Android 16b.
Производительность
  • Анализ кода теперь выполняется автоматически в фоновом режиме. Предупреждения отображаются зелеными волнистыми линиями в редакторе при вводе.
  • В строке шаблона теперь используется пользовательский интерфейс "Окно просмотра", а не модальное окно, поддерживаются вложенные шаблоны и автоматически заполняются аргументы по умолчанию в "Окне просмотра".
  • Автоматическое исправление для предупреждения анализа кода NULL->nullptr (C26477 USE_NULLPTR_NOT_CONSTANT) доступно в меню лампочки в соответствующих строках и включено по умолчанию в наборе правил типа C++ Core Check. Дополнительные быстрые исправления в интегрированной среде разработки включают добавление отсутствующих директив #include, добавление отсутствующей точки с запятой и исправление неправильного использования * и &.
  • Предкомпилированные заголовки больше не создаются по умолчанию для консоли C++ и настольных приложений.
  • Переход к определению теперь работает с директивами #include, открывая соответствующий файл. Сюда входит использование клавиши F12 для простого перемещения по коду.
  • При наведении на закрывающую фигурную скобку блока кода предоставляется полезная информация о контексте этого блока.
  • Мы добавили поддержку в ConcurrencyChecker для хорошо известных типов STL из заголовка <мьютекс>.
  • Доступна обновленная частичная реализация инструмента проверки профиля времени существования для обнаружения висячих указателей и ссылок.
  • Мы добавили первоначальную поддержку в компиляторе для оператора C ++ 20 <=> ("космический корабль") для трехстороннего сравнения.
CMake
  • Мы улучшили производительность IntelliSense для файлов C++ в проектах CMake.
  • Visual Studio помогает начать разработку на C++ с помощью CMake в Linux, определяя наличие совместимой версии CMake на компьютере Linux. Если она отсутствует, предлагается ее установить.
  • Редактор параметров CMake предоставляет альтернативу CMakeSettings.json и частичное равенство с CMakeGUI.
  • Меню CMake удалено и реорганизовано для более точного соответствия проектам и решениям.
  • Несовместимые параметры в CMakeSettings, например несоответствие архитектур или несовместимые параметры генератора CMake, выделены волнистыми линиями в редакторе JSON и отображаются в списке ошибок.
  • Цепочка инструментов vcpkg автоматически обнаруживается и включается для проектов CMake, которые открыты в интегрированной среде разработки, после запуска vcpkg integrate install. Это поведение можно отключить, указав пустой файл цепочки инструментов в CMakeSettings.
  • Проекты CMake теперь включают отладку "Только мой код" по умолчанию.
  • Предупреждения статического анализа теперь могут обрабатываться в фоновом режиме и отображаться в редакторе для проектов CMake.
  • Мы добавили более понятные сообщения о конце и начале сборки и конфигурации для проектов CMake и поддержку пользовательского интерфейса хода сборки Visual Studio. Кроме того, теперь есть параметр детализации CMake в разделе Сервис > Параметры для настройки уровня детализации сообщений о сборке и конфигурации CMake в окне вывода.
  • Параметр cmakeToolchain теперь поддерживается в CMakeSettings для указания цепочек инструментов без изменения командной строки CMake вручную.
Серверная часть
  • Мы реализовали усовершенствования пропускной способности сборки, включая обработку компоновщиком ввода-вывода файлов и время компоновки при объединении и создании типа PDB.
  • Мы добавили базовую поддержку векторизации OpenMP SIMD. Ее можно включить с помощью нового параметра командной строки -openmp:experimental. Это позволяет при необходимости векторизовать циклы, аннотированные с #pragma omp simd. Векторизация не гарантируется, и циклы с аннотацией, но без векторизации, будут выдавать предупреждение. Если предложения SIMD не поддерживаются, они просто игнорируются, и выводится предупреждение.
  • Мы добавили новый параметр встраивания командной строки -Ob3, который представляет собой более активную версию -Ob2. -O2 (оптимизация двоичного кода для скорости) по-прежнему подразумевает -Ob2 по умолчанию. Если компилятор не встраивается, используйте -O2 -Ob3.
  • Для поддержки векторизации циклов вручную с вызовами функций математической библиотеки и некоторыми другими операциями, такими как целочисленное деление, мы добавили поддержку встроенных функций Short Vector Math Library (SVML), которые вычисляют 128-разрядные, 256-разрядные или 512-разрядные векторные эквиваленты. См. раздел Руководство по встроенным функциям Intel с определениями поддерживаемых функций.
  • Новые и улучшенные оптимизации:
    • Свертывание констант и арифметические упрощения для выражений с помощью встроенных функций SIMD (вектор) для чисел с плавающей запятой и целых чисел.
    • Более эффективный анализ для извлечения данных из потока управления (инструкции if/else/switch) для удаления ветвей, которые всегда имеют значение true или false.
    • Улучшенное развертывание memset для использования векторных инструкций SSE2.
    • Улучшенное удаление бесполезных копий структур или классов, особенно для программ C++, которые передают по значению.
    • Улучшенная оптимизация кода с помощью memmove, например std::copy или std::vector и std::string.
Нерекомендуемые элементы
  • Шаблон управляемого тестового проекта C++ больше не доступен. Вы можете продолжить использование платформы управляемых тестов C++ в существующих проектах, но для новых модульных тестов мы рекомендуем использовать собственные тестовые платформы, для которых Visual Studio предоставляет шаблоны (MSTest, Google Test), или шаблон управляемого тестового проекта C#.
  • Пакет SDK Windows 8.1 больше не доступен в установщике Visual Studio. Обновите проекты C++ до последней версии пакета SDK для Windows 10. Если у вас есть жесткая зависимость от версии 8.1, ее можно скачать из архива Windows SDK.
  • Windows XP больше нельзя выбрать в качестве целевой платформы для последнего набора инструментов C++. XP для библиотек и компилятора MSVC уровня VS 2017 по-прежнему поддерживается и может устанавливаться через раздел "Отдельные компоненты".
  • В нашей документации настоятельно не рекомендуется использовать модули слияния для развертывания среды выполнения Visual C++. В этом выпуске мы принимаем дополнительные меры, чтобы отметить MSM как нерекомендуемые. Возможно, следует перенести центральное развертывание VCRuntime из MSM в распространяемый пакет.
  • Следующие мастера C++, ATL и MFC больше не доступны: мастер компонентов ATL COM + 1.0, мастер компонентов страниц ATL Active Server, мастер поставщика ATL OLE DB, мастер страниц свойств ATL, мастер потребителя ATL OLE DB, потребитель ODBC MFC, класс MFC из элемента управления ActiveX и класс MFC из библиотеки типов. Архив с примерами кода для этих технологий доступен в GitHub-репозитории VCSamples.

F#

Улучшения F# в Visual Studio 2019 касаются трех основных областей.

  • F# 4.6
  • Существенное повышение производительности для средних и крупных решений
  • Множество разработок с открытым исходным кодом от нашего сообщества открытой разработки
F# 4.6

Этот выпуск содержит версию языка F# 4.6:

Усовершенствования компилятора F# и FSharp.Core

В компилятор F# и FSharp.Core внесено множество улучшений, особенно от разработчиков открытого исходного кода:

  • Файлы fsi.exe и fsc.exe теперь по умолчанию используют .NET Framework 4.7.2, что позволяет загружать компоненты, предназначенные для этой и предыдущих версий платформы (#4946).
  • Мы оптимизировали выполнение методов структур и записей структур наравне с методами классов и записей на основе классов (#3057).
  • Мы оптимизировали порождаемый код на IL для объединенной булевой логики в коде на F# (#635).
  • Мы оптимизировали использование + со строками в F# для вызова минимально возможного объема вызовов String.Concat (#5560).
  • Исправлена проблема с включением в пакет FSharp.Core лишних каталогов с тестовыми ресурсами. Исправление должно быть включено в FSharp.Core 4.5.5 и 4.6.1 (#5814).
  • Если определяемый пользователем атрибут не является производным от класса Attribute, вы будете получать предупреждение (разработано Василием Кириченко).
  • Параметр AssemblyInformationVersionAttribute в файле проекта теперь допускает произвольные значения для поддержки таких сценариев, как SourceLink (#4822).
  • Исправлена ошибка, при которой недопустимый синтаксис активных шаблонов приводит к внутренней ошибке компилятора; автор исправления — Стеффен Форкманн (Steffen Forkmann) (#5745).
  • Исправлена ошибка, при которой Moduleсуффикс ошибочно добавлялся к модулю в рекурсивном модуле в соответствии с типом, где единственное различие состояло в универсальном параметре; автор исправления — BooksBaum (#5794).
  • Улучшено сообщение об ошибке, когда параметры типа не являются смежными в имени типа; автор исправления — Алан Болл (Alan Ball) (#4183).
  • Литеральный суффикс uint16 правильно указывается в сообщениях об ошибках с недопустимыми числовыми литералами; автор исправления — Тео Цирпанис (Tsirpanis Тео) (#5712).
  • Сообщения об ошибках для вычислительных выражений больше не содержат async; теперь они используют термин "вычислительные выражения"; автор исправления — Джон Уостенберг (John Wostenberg) (#5343).
  • Исправлено сообщение об ошибке при неправильной ссылке на .dll в интерактивном режиме F#; автор исправления — Бартош Шипитковский (Bartoz Sypytkowski) (#5416).
  • Ошибка, при которой статически разрешаемые параметры типов не могли обрабатывать вызов члена, который скрывает унаследованный член, исправлена Виктором Петером Роувеном Мюллером (Victor Peter Rouven Müller) (#5531).
  • В компилятор были добавлены различные небольшие улучшения производительности; авторы — Стеффен Форкманн (Steffen Forkmann) и Роберт Йеппсен (Robert Jeppesen).
Улучшения производительности F#

Еще одним основным направлением работы по F# в Visual Studio 2019 стала производительность для средних и крупных решений. Мы исправили ряд очень давних проблем, некоторые из которых относятся к самому первому выпуску инструментария F# для Visual Studio. Мы также получили помощь от сообщества разработчиков открытого кода по F#.

  • Мы модернизировали инициализацию языковой службы F# с помощью Roslyn. Раскраска типов для больших решений обычно появляется быстрее.
  • Мы изменили представление исходного кода, чтобы предотвратить выделение большого объема ресурсов с течением времени, особенно для файлов большого размера (#5935, #5936, #5937, #4881).
  • Изменены кэши сборок, чтобы небольшие изменения файлов использовали значительно меньший объем памяти (#6028).
  • Мы внесли изменения в функцию компилятора, которая предлагает имена при вводе нераспознанных маркеров. Теперь эти предложения выдаются только по запросу, что позволило существенно сократить потребление ресурсов ЦП и памяти при медленном вводе в крупных решениях (#6044).
  • Мы изменили IntelliSense таким образом, чтобы символы из неоткрытых пространств имен больше не отображались по умолчанию. Это значительно повышает производительность IntelliSense в проектах со многими ссылками. Эту функцию можно снова включить в параметрах в меню Инструменты > Параметры > Текстовый редактор > F# > IntelliSense.
  • Мы улучшили использование памяти при использовании поставщиков типов для создания очень больших объемов предоставляемых типов в списке завершения (#5599).
  • Сокращение загрузки ЦП и памяти для внутреннего алгоритма сравнения строк для предложения нераспознанных имен было реализовано Эйви Авни (Avi Avni) (#6050).
  • Важный источник крупных выделений строк, особенно для инструментов интегрированной среды разработки, исправлено Avi Avni (#5922).
  • Важный источник выделений кучи больших объектов, поступающих от вычислений IntelliSense, был исправлен Четом Хаском (Chet Husk) (#6084)
Усовершенствования в инструментах F#

В дополнение к улучшениям производительности в инструментарий F# для Visual Studio 2019 был внесен ряд других улучшений:

  • Исправление кода при добавлении инструкции open теперь по умолчанию будет добавлять инструкцию open в верхней части файла.
  • Мы исправили ошибку, когда match! в пользовательском коде делает недействительными направляющие структур и узлы структурирования кода для последующих областей (#5456).
  • Теперь редактор правильно задает цвет значений byref, outref, и ref как полей записи с изменяемыми значениями (#5579).
  • Мы исправили ошибку, когда рефакторинг с переименованием не распознавал знак ' в именах символов (#5604).
  • Мы исправили давнюю ошибку, при которой переименование файлов сценария F# приводило к потере данных о выделении цветом (#1944).
  • Мы очистили IntelliSense, чтобы эта функция не выводила неактуальные элементы в списке при нажатии клавиши BACKSPACE.
  • При включении "интеллектуальных" отступов при вставке код F# в редакторе теперь форматируется в соответствии с областью в зависимости от текущей позиции курсора; автор реализации — Сол Реннисон (Saul Rennison) (#4702).
  • Ошибка, при которой параметры редактора F# не синхронизировались, исправлена пользователем Jakob Majocha (#5997, #5998).
  • Ошибка, когда IntelliSense в конструкторе с предложением inherit не показывала первичный конструктор, исправлена Евгением Аудучиноком (#3699)
  • Различные небольшие усовершенствования для языковой службы F# были реализованы Евгением Аудучиноком.
Инфраструктура открытого кода F#

Мы полностью завершили перенос базы кода F# и инструментария F# в пакет SDK для .NET. Это значительно упрощает процесс публикации для разработчиков, особенно если они не используют Windows. Кроме того, Джейкоб Маджоча (Jakob Majocha) помог в очистке документов для новых участников в свете изменений в базе кода.

Python

На основе отзывов пользователей в Visual Studio 2019 был переработан интерфейс управления средами Python:

  • Мы добавили новое диалоговое окно добавления среды, которое упрощает создание и добавление виртуальной среды и среды conda в проекте.
  • Установщик Visual Studio больше не устанавливает полные версии Anaconda, чтобы уменьшить размер установки Visual Studio и избежать ошибок во время обновления.
  • Miniconda входит в состав рабочей нагрузки Python как дополнительный компонент, что позволяет создавать окружения conda без необходимости устанавливать Miniconda/Anaconda.
  • Теперь вам будет автоматически предложено добавить среду, если в корневом каталоге проекта присутствует файл requirements.txt (виртуальная среда) или environment.yml (среда conda).
  • Новая панель инструментов среды Python доступна при редактировании файлов Python. Новая панель инструментов позволяет переключаться между различными интерпретаторами Python при работе с проектами, рабочими областями открытия папки или свободными файлами Python в других проектах.
  • Улучшения качества автозавершения IntelliSense в Python, в том числе улучшенное обнаружение относительного импорта и импорта пространств имен.
  • Шаблоны проектов Django были обновлены для поддержки Django 2.x.
  • Возвращаемые значения функции теперь отображаются в отладчике Python.
  • Теперь вы можете создавать сеансы Visual Studio Live Share и совместно работать над кодом Python с другими пользователями Visual Studio. Ранее Python поддерживался только при объединении сеансов, созданных в Visual Studio Code.

JavaScript и TypeScript

  • Мы добавили поддержку включения отладки JavaScript в модульных тестах в проектах Node.js. Клиенты Node.js давно просили об этом.
  • Языковая служба JavaScript/TypeScript теперь автоматически загружается в проектах, которые имеют пакет NuGet для TypeScript или пакет npm (TypeScript 3.2 и более поздних версий поддерживается пакетом NuGet, а TypeScript 2.1 и более поздних версий поддерживается пакетом npm).
  • Мы реализовали улучшения производительности в языковой службе в результате увеличения ограничения памяти для языковой службы, чтобы обрабатывать крупные проекты.
  • Мы больше не показываем диагностику для закрытых файлов JavaScript/TypeScript в списке ошибок по умолчанию.
  • Устаревшая языковая служба JavaScript более не доступна. Ранее пользователи имели возможность восстановить устаревшую языковую службу JavaScript. Теперь пользователи сразу получают новую языковую службу JavaScript. Новая языковая служба основана на языковой службе TypeScript, которая базируется на статическом анализе. Это позволяет оптимизировать инструментарий, поэтому ваш код на JavaScript может использовать преимущества расширенной поддержки IntelliSense на основе определений типов. Новая служба имеет небольшой размер и использует меньше памяти, чем устаревшие службы, обеспечивая более высокую производительность пользовательского кода по мере его масштабирования.

Team Explorer и Azure DevOps

Мы внесли улучшения в рабочие элементы Git с DevOps в Azure.

  • Назначайте рабочие элементы себе или другим пользователям с помощью нового средства выбора удостоверения. По умолчанию будет показан список людей, которых вы выбирали недавно. Также можно использовать поиск, чтобы найти других пользователей в вашей организации.
  • Мы улучшили #упоминания в сообщениях о фиксации. При выборе рабочего элемента с помощью средства выбора #упоминания он будет автоматически добавляться в список связанных рабочих элементов.
Assigning work items and #mention improvements
Назначение рабочих элементов и улучшения #упоминаний

Выделение горячих путей

  • Мы добавили поддержку выделения горячего пути в средствах использования ЦП и выделения объектов DotNet в профилировщике производительности. Выберите любую функцию в дереве вызовов и нажмите клавишу "Горячий путь", чтобы развернуть горячий путь использования ЦП или выделения объектов DotNet. Эта функция позволяет легко определить вызовы функций, которые используют самый высокий процент ЦП или выделяют большинство объектов.
Hot path highlighting in the CPU Usage tool
Выделение критического пути в средстве использования ЦП

.NET и инструменты ASP.NET

  • Мы реализовали различные небольшие усовершенствования для пользователей на странице сводки профиля публикации (новые заголовки разделов и действия/ярлыки) для всех приложений.
  • При публикации приложений ASP.NET в службе приложений Azure на странице сводки профиля публикации теперь есть новый раздел "Зависимости". В настоящее время этот новый раздел позволяет связывать ресурсы хранилища Azure и Azure SQL с вашим экземпляром службы приложений. В будущем у вас будет доступ и к другим службам Azure.
  • Используйте показатели качества кода с проектами .NET Core благодаря расширенной совместимости.
  • Экспортируйте параметры редактора в файл Editorconfig через меню Сервис > Параметры > Текстовый редактор > C# > Стиль кода с помощью кнопки "Создать файл .editorconfig из параметров".
  • Используйте поддержку нового средства синтаксического анализа регулярных выражений в C# и Visual Basic. Теперь распознаются регулярные выражения, и в них включены функции языка. Строки регулярных выражений распознаются, либо когда строка передается в конструктор Regex, либо когда строке непосредственно предшествует комментарий, содержащий строку language=regex. Функции языка в этом выпуске включают классификации, парные фигурные скобки, выделение ссылок и диагностику.
Regular expressions now have parser support
Поддержка средства синтаксического анализа регулярных выражений
  • Теперь можно применять анализ неиспользуемого кода для неиспользуемых закрытых членов с дополнительным исправлением кода для удаления неиспользуемых объявлений.
  • Функция поиска ссылок на метод доступа теперь возвращает только результаты для соответствующих методов доступа.
  • Мы добавили исправление кода для создания методов deconstruct.
  • При вставке кода в файл можно добавить операторы using. После вставки распознаваемого кода отображается исправление кода с предложением добавить отсутствующие импортируемые элементы.
  • Также доступны дополнительные возможности рефакторинга и быстрые действия с помощью клавиш CTRL+. или ALT + Enter:
    • Для случаев, где await ожидается, но отсутствует, теперь есть предупреждение компилятора.
    • Для преобразования локальной функции в метод.
    • Для преобразования кортежа в именованную структуру.
    • Для преобразования анонимного типа в класс.
    • Для преобразования анонимного типа в кортеж.
    • Для преобразования цикла по каждому элементу в запрос LINQ или метод LINQ.
  • Теперь добавлена поддержка приложений ASP для .NET Core, работающих в службе Azure Kubernetes. Чтобы приступить к работе, см. этот пример для Docker на сайте GitHub.
  • ASP.NET теперь поддерживается в средстве использования ЦП профилировщика производительности.
CPU Usage Tool in Performance Profiler
Средство использования ЦП в профилировщике производительности
  • Функции "Поиск всех ссылок" (SHIFT + F12) и CodeLens теперь можно использовать для отображения результатов из файлов Razor (.cshtml) в проектах .NET Core. Затем можно перейти к найденному коду в соответствующих файлах Razor.
  • Мы добавили поддержку целевого объекта приложений ASP.NET (приложения Core и классические), которые работают на виртуальных машинах Windows и масштабируемых наборах виртуальных машин.
Snapshot debugger target selection UI
Пользовательский интерфейс выбора целевого отладчика моментальных снимков
  • Теперь вы получите предупреждение при анализе кода с помощью FxCop. Рекомендуемый в дальнейшем способ анализа кода — анализаторы платформы компилятора .NET. Дополнительные сведения о переходе на анализаторы платформы компилятора .NET.
  • Шаблоны проектов переносимой библиотеки классов (PCL) более не доступны; поддержка проектов не устанавливается по умолчанию. Новые проекты, предназначенные для нескольких платформ, должны использовать тип проекта .NET Standard. Клиентам, которым требуется поддержка проектов переносимой библиотеки классов, необходимо установить компонент отдельно на вкладке "Отдельные компоненты" в установщике Visual Studio.
  • Команда Project.CopyWebSite более не доступна. Эта функция была доступна только для типа проекта "Веб-сайт" для .NET. Она предоставляла возможность синхронизации двух веб-сайтов, чтобы на них была одна и та же версия каждого файла. В Visual Studio 2019 можно скопировать файлы из удаленного места назначения за пределами Visual Studio, а затем открыть проект.
  • Возможность открытия проекта веб-сайта из удаленного расположения по FTP была удалена. Пользователи FTP могут скопировать файлы из удаленного места назначения за пределами Visual Studio, открыть проект, внести изменения и использовать публикацию, чтобы передать изменения обратно в удаленное расположение FTP.
  • Рабочая нагрузка ASP.NET и Интернета больше не устанавливает пользовательские возможности редактирования CoffeeScript. Пакеты TextMate для Visual Studio предоставляют более широкие возможности для работы с CoffeeScript.
  • При редактировании этих файлов ошибки CSS и CoffeeScript, создаваемые сейчас встроенными копиями CSSLint и CoffeeLint, больше не будут создаваться автоматически. Используйте альтернативный метод для запуска таких анализаторов кода, как npm или Visual Studio Task Runner Explorer.
  • Visual Studio больше не предоставляет IntelliSense для HTML-атрибутов Knockout. В Visual Studio 2019 вам будет нужно вводить их вручную.
  • Возможность использовать отладчик Chrome прежних версий в проектах ASP.NET для отладки JavaScript была удалена. Вы можете продолжать использовать текущий отладчик Chrome, встроенный в Visual Studio.
  • Возможность использовать функции консоли JavaScript в проектах ASP.NET была удалена. Клиентам рекомендуется использовать консоль, входящую в средства разработки предпочитаемого ими браузера.

Инструменты для контейнера

  • Мы добавили оптимизированный единый проект для создания контейнеров и отладки:
    • Веб-приложения ASP.NET (.NET Framework)
    • Консольные приложения (.NET Core)
  • Мы добавили поддержку отладки приложений ASP.NET Core, которые используют Alpine в качестве базового образа.
  • Мы добавили поддержку последних образов ASP.NET и .NET Core.

Средства .NET Core

.NET Core 3.0

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

Если вы используете релиз-кандидат Visual Studio, вам нужно также перейти в раздел "Инструменты" > "Параметры" > "Проекты и решения" > ".NET Core" и установить флажок Использовать предварительные версии пакетов SDK для .NET Core. Если вы используете Visual Studio Preview, этого делать не требуется. Дополнительные сведения об этом параметре и его поведении см. в разделе Обновление инструментов .NET Core для Visual Studio 2017 версии 15.9.

Вы можете также создать проекты Windows Forms или WPF для .NET Core 3.0 с помощью команды dotnet new. Затем эти проекты можно будет открыть в Visual Studio 2019.

Новые функции

Начиная с этого выпуска мы делаем файлы проекта для проектов в стиле пакетов SDK для .NET типом файлов первого класса в Visual Studio. Теперь поддерживаются следующие возможности:

  • Дважды щелкните узел проекта, чтобы открыть файл проекта
  • Щелкните узел проекта один раз, чтобы открыть файл проекта на вкладке предварительного просмотра
  • Найдите файл проекта по имени с помощью функции "Перейти ко всем" (ctrl + T)
  • Элементы MSBuild в файле проекта теперь доступны для поиска с помощью функции "Найти в файлах"
  • Открытие из списка ошибок, если возникает ошибка создания проекта

Кроме того, проекты в стиле пакетов SDK для .NET теперь будут использовать новую интегрированную консоль для F5 и ctrl + F5 в консольных приложениях. Это приводит к единообразию при запуске консольных приложений из Visual Studio:

  • Для F5 окно консоли не будет автоматически закрываться, когда приложение завершит выполнение. Вам больше не нужно добавлять вызовы Console.Read() в консольные приложения.
  • Для ctrl + F5 окно консоли будет использоваться повторно в последующих запусках приложения. Больше не нужно закрывать нагрузки в окнах консоли.

Новое окно консоли можно закрыть автоматически, нажав клавишу, когда оно открыто, или выбрав соответствующий параметр в разделе Сервис > Параметры > Автоматически закрыть консоль при остановке отладки.

Поддержка выражений лицензий и файлов лицензий добавлена на страницы свойств проекта. Эти изменения внесены в рамках отказа от licenseUrl в NuGet.

Улучшения производительности
  • Масштабируемость крупных решений существенно улучшена, что позволяет использовать гораздо более крупные решения .NET Core.
  • Время загрузки крупных проектов значительно сокращено, как и использование ресурсов ЦП и памяти при загрузке.
Равенство функций с проектами, не относящимися к .NET Core

Вы можете найти полный список проблем и запросов на вытягивание в вехах 16.0, 16.0, предварительная версия 2, 16.0, предварительная версия 3 и 16.0, предварительная версия 4.

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

  • Рефакторинги .NET и исправления кода:

    • Синхронизация пространства имен и имени папки.
    • Подъем членов в рефакторинге с параметрами диалогового окна.
    Pull members up refactoring with dialog options
    Диалоговое окно подъема членов
    • Списки переноса, отступа или выравнивания с параметрами и аргументами
    • Преобразование анонимного типа в кортеж
    • Использование тела выражения или блока для лямбда-выражения
    • Инверсия условных выражений и логических операций
    • Автоматическое закрытие комментария блока на "/"
    • Преобразование в составное назначение
    • Исправлена проблема, при которой неявно типизированные переменные не могут быть константными
    • Автоматические исправления для замены @$" на $@" при вводе интерполированной строки verbatim
    • Завершение для #nullable enable|disable
    • Исправление для неиспользуемых значений и параметров выражения
    • Исправление ошибки, при которой извлечение интерфейса оставалось в том же файле
  • Классификация ссылок на чтение и запись.

  • Добавлен параметр Editorconfig when_multiline для csharp_prefer_braces.

  • Новые цвета классификации можно получить из пакета SDK для платформы компилятора .NET (также называется Roslyn). Постепенно развертываются новые цвета по умолчанию, аналогичные цветам Visual Studio Code. Вы можете настроить эти цвета в разделе Сервис > Параметры > Среда > Шрифты и цвета или отключить их в разделе Среда > Предварительные версии функций, сняв флажок Использовать улучшенные цвета. Мы будем признательны за ваше мнение о том, как это изменение влияет на рабочий процесс.

New Roslyn classification colors
Новые цвета классификации в Roslyn

Отладка JavaScript в проектах ASP.NET

  • Если вы добавили новый браузер Google Chrome с пользовательскими аргументами с помощью меню "Просмотр с помощью…" для проекта ASP.NET, Visual Studio теперь разрешает отладку JavaScript для приложения при запуске отладки. Пользовательские аргументы запуска для Google Chrome будут применяться при запуске Chrome.
Adding Google Chrome with Custom arguments using 'Browse with'
Добавление Google Chrome с пользовательскими аргументами с помощью "Просмотр с помощью…"
Примечание. Visual Studio по умолчанию запускает Chrome с помощью других каталогов по сравнению с обычным экземпляром Chrome, если не указать путь к каталогу данных в качестве аргумента. Таким образом, если вам нужно, чтобы какие-то расширения были доступны при использовании этого экземпляра Chrome, необходимо будет установить их в первый раз.

Инструменты ASP.NET и Функций Azure

  • Visual Studio 2019 предлагает новый интерфейс для создания проектов. В частности, при создании проектов ASP.NET доступны дополнительные диалоговые окна с настройками, относящимися строго к ASP.NET. Обновленный визуальный стиль этих диалоговых окон соответствует общему интерфейсу всей среды.
  • Уже долгое время учетные данные публикации в Visual Studio шифруются и хранятся в пользовательском файле профиля публикации, поэтому их не нужно вводить повторно при каждой публикации приложения. Как правило, файлы пользователя по умолчанию исключаются из системы управления версиями, так как они скорее всего содержат секретные или личные сведения, публиковать которые недопустимо. Если ранее профиль публикации для проекта Функций Azure возвращался в систему управления версиями, а файл пользователя нет, учетные данные публикации отсутствовали, и повторно использовать профиль публикации было невозможно. Теперь стало можно редактировать учетные данные и создавать новый пользовательский файл, что позволяет применять профиль публикации многократно.

мастер повышения производительности

В Visual Studio 2019 действия профилирования, которые были доступны в окне мастера производительности, были перемещены в профилировщик производительности. Для выборки и инструментирования в средстве инструментирования в составе профилировщика производительности можно применить средство использования ЦП. В силу этого изменения мастер производительности больше не используется и был удален из Visual Studio 2019. Кроме того, были удалены средства выборки в командной строке "Средства производительности VS"; программа командной строки для их замены будет выпущена в будущей предварительной версии.

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

  • Теперь вы можете щелкнуть правой кнопкой мыши на тестах, тестовых классах или тестовых проектах в обозревателе решений, чтобы запустить или отладить тесты.
  • При тестовых запусках теперь можно автоматически определить, какая архитектура процессора задана в свойствах проекта.
  • Средства тестирования пользовательского интерфейса с открытым исходным кодом, например Selenium и Appium, приобрели значительную популярность и поддержку сообщества. Так как эти платформы стали отраслевыми стандартами, мы отказались от закодированных тестов пользовательского интерфейса для автоматизированного, управляемого через пользовательский интерфейс функционального тестирования. Visual Studio 2019 — это последняя версия Visual Studio, использующая закодированные тесты пользовательского интерфейса. Мы рекомендуем использовать Selenium для тестирования веб-приложений и Appium с WinAppDriver для тестирования классических приложений и приложений универсальной платформы Windows.
  • Visual Studio 2019 — это последняя версия Visual Studio, включающая средства нагрузочного тестирования. Клиентам, которым требуются средства нагрузочного тестирования, мы рекомендуем использовать альтернативные средства нагрузочного тестирования, такие как Apache JMeter, Akamai CloudTest или Blazemeter.
  • В Visual Studio 2019 были удалены некоторые API окон тестирования, которые были ранее помечены как общедоступные, но не были задокументированы официально. Они были помечены как "нерекомендуемые" в Visual Studio 2017, чтобы заранее предупредить группы обслуживания расширений. Насколько нам известно, с этими API была связана лишь незначительная часть расширений. Эти API включают IGroupByProvider, IGroupByProvider, KeyComparer, ISearchFilter, ISearchFilterToken, ISearchToken и SearchFilterTokenType. Если это изменение влияет на ваше расширение, сообщите нам, отправив запрос в сообщество разработчиков.

Средства Kubernetes для Visual Studio

Средства Kubernetes для Visual Studio, которые ранее были доступны как отдельное расширение для Visual Studio 2017, теперь интегрированы в рабочую нагрузку Разработка Azure в Visual Studio 2019.

Добавление поддержки Kubernetes в новый проект

Чтобы добавить поддержку Kubernetes в новый проект, откройте Visual Studio и выберите Создать проект. В окне Создать проект найдите Kubernetes и выберите шаблон проекта Контейнерное приложение для Kubernetes.

Creating a Container Application for Kubernetes
Создание контейнерного приложения для Kubernetes

Нажмите Далее и введите имя проекта, расположение и имя решения. Затем нажмите кнопку Создать. Выберите шаблон приложения ASP.NET Core, который вы хотите использовать для проекта, и нажмите ОК. Visual Studio автоматически создаст диаграмму Helm и файл Dockerfile, которые можно использовать для создания и развертывания нового приложения в кластере Kubernetes. При необходимости эти артефакты можно изменить.

Добавление поддержки Kubernetes в существующий проект

Вы также можете добавить поддержку Kubernetes в существующее приложение ASP.NET Core. Для этого откройте проект в Visual Studio 2019. В обозревателе решений щелкните правой кнопкой мыши проект, выберите пункт Добавить и нажмите Поддержка оркестратора контейнеров.

Adding container orchestrator support
Добавление поддержки оркестратора контейнеров

В диалоговом окне Добавление поддержки оркестратора контейнеров выберите Kubernetes/Helm и нажмите кнопку ОК. Visual Studio автоматически создаст диаграмму Helm и файл Dockerfile (в папке charts), которые можно использовать для создания и развертывания нового приложения в кластере Kubernetes. Если любой из этих артефактов уже существует, они не перезаписывается. При необходимости эти артефакты можно изменить.

Создание общедоступной конечной точки

Когда вы добавляете поддержку Kubernetes в новый или существующий проект, Visual Studio запросит, следует ли создать общедоступную конечную точку для вашего приложения.

Publicly accessible endpoint prompt
Запрос об общедоступной конечной точке

Если щелкнуть Да, Visual Studio настроит диаграмму Helm для вашего приложения, чтобы создать объект входящего трафика Kubernetes, когда приложение развертывается в кластер Kubernetes. Этот параметр в любое время можно изменить, изменив диаграмму Helm.

Отладка приложения в службе Azure Kubernetes

После добавления поддержки Kubernetes для нового или существующего проекта вы можете с легкостью собирать, запускать и отлаживать приложение в работающем кластере службы Azure Kubernetes (AKS), используя компонент Azure Dev Spaces. Это полезно для тестирования проекта в контексте фактического кластера Kubernetes или для отладки службы, которая является частью более крупного приложения, и вам не нужно реплицировать все приложение локально. Azure Dev Spaces также включает функциональные возможности, позволяющие разработчикам совместно использовать кластер AKS. Дополнительные сведения об Azure Dev Spaces см. в документации по Azure Dev Spaces. Чтобы приступить к работе, убедитесь, что Azure Dev Spaces выбран в качестве целевого объекта запуска отладки в Visual Studio.

Selecting Azure Dev Spaces as debug launch target
Выбор Azure Dev Spaces в качестве целевого объекта для запуска отладки

Перед первым запуском проекта в Dev Spaces настройте подписку Azure и кластер AKS, который вы хотите использовать. Кроме того, выберите место, где вы хотите запустить проект.

Configuring Azure Dev Spaces
Настройка Azure Dev Spaces

Как правило, ваша команда использует последнюю стабильную версию всего приложения в пространстве по умолчанию. Затем вы запускаете свою версию службы, с которой вы работаете, в дочернем пространстве пространства по умолчанию. Теперь не нужно запускать другие службы в дочернем пространстве; Dev Spaces автоматически направляет вызовы из службы в стабильные версии служб, работающих в пространстве по умолчанию. Дополнительные сведения о настройке см. в учебниках по командной разработке в документации по Azure Dev Spaces. Когда вы выберете нужную подписку, кластер и пространство, нажмите ОК, чтобы продолжить настройку Dev Spaces. Если вы выбрали кластер, у которого еще нет связанного контроллера Dev Spaces, нажмите кнопку ОК в следующем диалоговом окне, чтобы создать его автоматически.

Enable Dev Spaces dialog
Диалоговое окно включения Dev Spaces

Создание контроллера занимает около 2 минут. Вы можете нажать кнопку Фоновые задачи в левом нижнем углу окна Visual Studio, чтобы просмотреть состояние.

Azure Dev Spaces controller creation status via Background Tasks
Состояние создания контроллера Azure Dev Spaces в окне "Фоновые задачи"

Когда контроллер Dev Spaces будет готов к работе, нажмите F5 или кнопку отладки Azure Dev Spaces на панели инструментов для отладки проекта в AKS.

Azure Dev Spaces debug button
Кнопка отладки Azure Dev Spaces

Dev Spaces синхронизирует ваш код с Azure, создаст образ контейнера, содержащего код, и развернет его в кластер AKS с помощью диаграммы Helm, определенной в проекте. Visual Studio откроет удаленное подключение для отладки к службе, выполняющейся в кластере, чтобы пользователь мог взаимодействовать с ней так же, как при отладке службы, запущенной локально.

Разработка мобильных приложений с Xamarin

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

  • Рабочая нагрузка Xamarin теперь занимает лишь 7,69 ГБ, что в два раза меньше по сравнению с Visual Studio 2017 версии 15.9 и в три раза меньше по сравнению с версией 15.7.
  • Расширение IntelliCode теперь поддерживает XAML в Xamarin.Forms.
Файл > Создать проект

Мы внесли улучшения производительности для сокращения времени создания проекта Xamarin, чтобы вы быстрее приступали к сборке приложений. Кроме того, теперь мы включаем пакеты NuGet, используемые шаблонами, в процесс установки рабочей нагрузки, чтобы сократить время восстановления пакета, особенно при низкой пропускной способности или при работе в автономном режиме. Эти улучшения позволили ускорить полную загрузку и восстановление проекта Xamarin почти на 50 % в некоторых случаях.

New Xamarin project comparison gif
Создание нового проекта Xamarin в Visual Studio версии 15.9 (слева) и Visual Studio 2019 (справа)
Индикатор хода выполнения сборки

Теперь вы видите более подробные сведения о ходе выполнения сборки при сборке проектов. Нажмите на значок фоновых задач в левом нижнем углу во время сборки, чтобы просмотреть выполняемый целевой объект сборки. Это может быть полезно, чтобы определить, что сборка по-прежнему выполняется, но завершение целевого объекта занимает слишком много времени.

Xamarin build progress indicator
Индикатор хода выполнения сборки Xamarin
Базовый режим предварительного просмотра средства предварительного просмотра Xamarin.Forms

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

Раскрывающийся список устройств средства предварительного просмотра Xamarin.Forms

Теперь вы можете переключаться между разными устройствами Android и iOS для предварительного просмотра кода XAML в Xamarin.Forms с помощью нового раскрывающегося меню устройств.

Xamarin.Forms Device Drop-Down
Раскрывающийся список устройств Xamarin.Forms
Панель свойств Xamarin.Forms

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

Xamarin.Forms Property Panel
Панель свойств Xamarin.Forms
Шаблон оболочки Xamarin.Forms

Мы обновили шаблоны Xamarin.Forms, чтобы использовать последний выпуск Xamarin.Forms, и добавили новый параметр шаблона для приложения оболочки Xamarin.Forms. Оболочка предназначена для упрощения приложений и увеличения производительности труда разработчиков и отвечает за скорость отрисовки и потребление памяти. Этот шаблон предоставляет приложение оболочки с начальной загрузкой для iOS и Android.

Улучшенная производительность и надежность сборки для Android

В Visual Studio 2017 версии 15.9 и Visual Studio для Mac 7.7 мы добавили начальные усовершенствования производительности и проверки правильности сборки. В Visual Studio 2019 и Visual Studio для Mac 7.8 мы сделали сборку и развертывание еще быстрее.

Android Build Performance
*Сборка Android теперь быстрее, чем приготовление чашки кофе*
  • Теперь вы можете работать со следующим поколением инструментария для работы с пакетами для Android. Чтобы включить эту функцию, добавьте флаг MSBuild в .csproj вашего проекта:
    • aapt2 делит упаковку для Android на два этапа: компиляцию и компоновку. Это позволяет повысить производительность добавочных сборок и заранее сообщать об ошибках. Например, при наличии изменений в одном файле достаточно повторить компиляцию этого файла. <AndroidUseAapt2>True</AndroidUseAapt2>
  • Включив это средство в своих проектах, можно добиться повышения производительности во время сборки и выполнения. Дополнительные сведения об этих свойствах см. в разделе документации по процессу сборки в Xamarin.Android.
Усовершенствования в эмуляторе Android

В Visual Studio 2019 стало легче создавать образы эмулятора Android. Мы продолжаем сотрудничать с группой Windows, работающей над Windows 10 October 2018 Update версии 1809, чтобы повысить производительность эмулятора Android при запуске в Hyper-V.

  • Новые пользователи могут создать свой первый образ, просто нажав значок запуска.
  • Наш интерфейс подключения к эмулятору автоматически определяет наилучшую конфигурацию и использует преимущества аппаратного ускорения (с Intel HAXM или Hyper-V) и быстрой загрузки по умолчанию.
  • Если вы хотите создать другой образ, можно выбрать команду Создание эмулятора Android в раскрывающемся списке, чтобы открыть диспетчер устройств Android.
Выполняйте сборку быстрее с нашими улучшениями для сборки в Xamarin.Android

Мы выпустили ряд начальных улучшений производительности сборки. На данный момент Xamarin.Android 9.1.1+ имеет значительное повышение производительности сборки по сравнению с предыдущим выпуском. Подробнее см. в сравнении производительности сборки Xamarin.Android версии 15.9 и 16.0.

Более быстрое развертывание в Xamarin.Android.

Быстрое развертывание предоставляло более быстрое добавочное развертывание, поскольку пропускало перестроение или повторное развертывание пакета Android (APK-файл) в сценариях, где не вносились никакие изменения в ресурсы, совместно используемые собственные библиотеки, упакованные в приложения, или пользовательские классы, наследующие от Java.Lang.Object. Улучшенное быстрое развертывание поддерживает быстрое развертывание совместно используемых собственных библиотек и классов, наследующих от Java.Lang.Object. Сборки с быстрым развертыванием, использующие эти новые усовершенствования, будут создавать новый APK-файл только в некоторых случаях, например, когда файл AndroidManifest.xml меняется из-за добавления нового подкласса Android.App.Application или Activity. Эти улучшения еще не включены по умолчанию в текущей предварительной версии. Чтобы включить их, задайте для свойства MSBuild $(AndroidFastDeploymentType) значение Assemblies:Dexes в файле .csproj:

<PropertyGroup> 
  <AndroidFastDeploymentType>Assemblies:Dexes</AndroidFastDeploymentType> 
</PropertyGroup>
Поддержка Dex Compiler(d8) и Code Shrinker(r8) нового поколения в Xamarin.Android

Xamarin.Android теперь поддерживает последнюю версию компилятора Android dex (d8) и средства для сжатия кода (r8). Чтобы включить эти функции, задайте для свойств MSBuild $(AndroidDexTool) и $(AndroidLinkTool) значения d8 и r8 соответственно в файле .csproj

  • d8 — это компилятор DEX нового поколения, который работает быстрее и создает DEX-файлы меньшего размера с более высокой производительностью времени выполнения.
<PropertyGroup> 
  <AndroidDexTool>d8</AndroidDexTool>
</PropertyGroup>
  • r8 — это новое средство для сжатия и минификации, которое преобразует байт-код Java в оптимизированный код DEX, который устраняет необходимость в ProGuard.
<PropertyGroup> 
  <AndroidLinkTool>r8</AndroidLinkTool>
</PropertyGroup>

Дополнительные сведения о d8 и r8 см. в нашей документации.

Усовершенствования конструктора Xamarin.Android Designer

Мы внесли ряд улучшений при работе в представлении с разделением.

  • Перетаскивание мышью непосредственно из области элементов в редакторе исходного кода позволяет быстро создать каркас макета Android.
Android Designer Toolbox to Source Editor
  • Выбирайте элементы непосредственно в их диапазоне определения XML в редакторе исходного кода. Мы реализовали эту возможность путем синхронизации текущего положения курсора с соответствующим представлением Android, что позволяет быстро получить доступ к свойствам элемента на панели "Свойства" прямо из редактора.
Android Designer Source Editor to Property Editor
  • Используйте встроенный предварительный просмотр цвета в XML-коде, чтобы видеть, какие цвета используются в элементах управления.
Android Designer Color Preview
  • Используйте краткие сведения, наводя указатель мыши на значение, чтобы получить дополнительные сведения о нем, например, где оно определено, или узнать шестнадцатеричное значение цвета.
Android Designer Quick Info
*Краткие сведения в действии*
Улучшения в Xamarin.Android Designer с первоначальной поддержкой ограниченных макетов

Мы начали работу над повышением скорости запуска Android Designer. В рамках этого проекта мы также улучшили сообщения, которые конструктор отображает во время загрузки.

Android Designer Output

Наряду с этими улучшениями Android Designer теперь изначально поддерживает Android Pie (9.0) и обеспечивает автозавершение для атрибутов ConstraintLayout.

Оптимизация XML IntelliSense и комментирования с помощью конструктора Xamarin.Android Designer

При использовании IntelliSense для добавления мини-приложения в макет предоставляется полный фрагмент кода, чтобы необходимые атрибуты можно было предоставить с самого начала. Мы добавили интеллектуальное комментирование и раскомментирование для макетов Android XML.

Работайте продуктивнее с функцией "Перейти к определению" и используйте XML IntelliSense в файлах ресурсов Android и AndroidManifest.xml

Теперь вы можете использовать CTRL + щелчок в URL-адресах ресурсов, чтобы перейти к файлу или строке, где они определены.

Android Designer Go-To-Definition

IntelliSense и автозавершение теперь поддерживаются и для других XML-файлов Android, кроме макетов (цвета, строки, прорисовываемые ресурсы, меню, манифест Android и т. д.).

Универсальная платформа Windows

  • Расширение IntelliCode теперь поддерживает XAML.
  • Чтобы уменьшить сложность и размер установки Visual Studio, эмуляторы Windows Phone будут удалены из установки Visual Studio. Теперь нужно скачивать эти эмуляторы вручную.
  • Инструментарий XAML времени разработки для приложений универсальной платформы Windows, предназначенный для пакетов Windows 10 SDK, предшествующих Windows 10 Fall Creators Update (сборка 16299), был удален. Измените целевую платформу приложений на Windows 10 версии 1709 или более поздней версии для использования конструктора XAML или воспользуйтесь редактором XAML.
  • Тестовые проекты UWP, использующие project.json для определения зависимостей NuGet, больше не поддерживаются. Необходимо обновить проект для использования нового формата PackageReference.
  • Приложения UWP на JavaScript больше не поддерживаются в Visual Studio 2019. Невозможно создать или открыть проекты UWP на JavaScript (файлы с расширением jsproj). Дополнительные сведения см. в документации по созданию прогрессивных веб-приложений (PWA), эффективно работающих на Windows.
  • Вы по-прежнему можете подключаться к приложениям UWP JavaScript как и раньше, однако средства профилирования JavaScript (профилировщик сети, ЦП и памяти) в Visual Studio 2019 больше не доступны.

Обновления шаблонов Office Tools

В Visual Studio 2019 мы внесли определенные изменения в шаблоны Office, SharePoint и VSTO.

  • Шаблоны SharePoint 2019, которые были добавлены в Visual Studio 2017 15.9, также доступны в Visual Studio 2019.
  • Мы удалили поддержку последовательного рабочего процесса SharePoint и рабочих процессов конечных автоматов. Хотя вы не сможете создать или открыть эти рабочие процессы в Visual Studio 2019, вы сможете изменить их в предыдущих версиях Visual Studio.
  • Шаблоны Office 2010 более не будут доступны. Тем не менее, вы сможете открыть существующие проекты Office 2010 в Visual Studio 2019.
  • Шаблоны Office 2013 и 2016 были переименованы; это отражает то, что они поддерживают Office 2013 и более поздние версии.

Team Explorer и Azure DevOps

Мы представляем новый, удобный, ориентированный на разработчика интерфейс при подключении Team Explorer к проекту Azure DevOps.

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

    • В каждом из представлений можно создавать встроенные рабочие элементы, вносить простые встроенные правки, пометить рабочий элемент как завершенный и связать рабочий элемент с ожидающими изменениями.
  • Можно также создать локальную ветвь на основе рабочего элемента; при этом рабочий элемент будет автоматически связан с изменениями, внесенными в этой локальной ветви. Этот поведение по умолчанию. Если вам потребуется переключиться на устаревший интерфейс, вы можете задать режим рабочих элементов в Visual Studio. Обратите внимание, что эта возможность доступна только для репозиториев Git. Новые возможности для репозиториев TFVC будут доступны в следующем обновлении.

    Azure DevOps Work Item Hub
    *Центр рабочих элементов Azure DevOps*
  • Используйте поиск рабочих элементов, при их #упоминании в сообщении о фиксации ожидающих изменений. Дополнительные сведения см. в разделе Просмотр и добавление рабочих элементов с помощью страницы "Рабочие элементы".

    Azure DevOps #mentions
    *#Упоминания в Azure DevOps*
  • Из подключаемого модуля Team Foundation Server Office Integration 2019 для Visual Studio 2019 убрана поддержка Microsoft Project из-за низкой степени внедрения в Azure DevOps. Теперь необходимо будет экспортировать рабочие элементы в Excel и вручную вставить их в проект.

  • Из подключаемого модуля Team Foundation Server Office Integration 2019 для Visual Studio 2019 убрана поддержка PowerPoint. Тем не менее, пользователи по-прежнему могут создавать раскадровки в PowerPoint и вручную связывать их с рабочими элементами в Azure DevOps.

Application Insights и HockeyApp

  • Окно трендов Application Insights было удалено из Visual Studio 2019 в пользу альтернативных вариантов, более богатых функционально. Вместо этого можно использовать окно поиска Application Insights в Visual Studio или широкий набор средств диагностики Application Insights на портале Azure.
  • Мастера для добавления пакета SDK для HockeyApp и создания новых распространяемых бета-версий будут удалены. Вместо этого рекомендуется использовать Visual Studio App Center, преемник HockeyApp. Можно по-прежнему использовать HockeyApp как обычно, но без следующих сочетаний клавиш в Visual Studio.

Release Notes Icon Проблемы, исправленные в релиз-кандидате Visual Studio 2019

Последнее обновление: 26 апреля 2019 г.


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

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

Visual Studio 2019 Known Issues


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

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


Блоги

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


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

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


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