Заметки о выпуске Visual Studio 2019 версии 16.0
Сообщество разработчиков System Requirementsy | Compatibilitable | Code | Release History | Terms Blogs | New in Visual Studio Docs | (Новые возможности в документации Visual Studio) |
Примечание.
Этот выпуск — не последняя версия Visual Studio. Чтобы скачать последний выпуск, посетите сайт Visual Studio .
Новые возможности 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 , чтобы скачать последнюю поддерживаемую версию Visual Studio 2019.
Выпуски Visual Studio 2019 версии 16.0
- 12 января 2021 г. — (окончательный выпуск) Visual Studio 2019 версии 16.0.22
- 08 декабря 2020 г. — Visual Studio 2019 версии 16.0.21
- 10 ноября 2020 г. — Visual Studio 2019 версии 16.0.20
- 13 октября 2020 г. — Visual Studio 2019 версии 16.0.19
- 8 сентября 2020 г. — Visual Studio 2019 версии 16.0.18
- 11 августа 2020 г. — Visual Studio 2019 версии 16.0.17
- 14 июля 2020 г. — Visual Studio 2019 версии 16.0.16
- 09 июня 2020 г. — Visual Studio 2019 версии 16.0.15
- 12 мая 2020 г. — Visual Studio 2019 версии 16.0.14
- 14 апреля 2020 г. — Visual Studio 2019 версии 16.0.13
- 10 марта 2020 г. — Visual Studio 2019 версии 16.0.12
- 14 января 2020 г. — Visual Studio 2019 версии 16.0.11
- 10 декабря 2019 г. — Visual Studio 2019 версии 16.0.10
- 15 октября 2019 г. — Visual Studio 2019 версии 16.0.9
- 10 сентября 2019 г. — Visual Studio 2019 версии 16.0.8
- 13 августа 2019 г. — Visual Studio 2019 версии 16.0.7
- 9 июля 2019 г. — Visual Studio 2019 версии 16.0.6
- 11 июня 2019 г. — Visual Studio 2019 версии 16.0.5
- 14 мая 2019 г. — Visual Studio 2019 версии 16.0.4
- 30 апреля 2019 г. — Visual Studio 2019 версии 16.0.3
- 18 апреля 2019 г. — Visual Studio 2019 версии 16.0.2
- 9 апреля 2019 г. — Visual Studio 2019 версии 16.0.1
- 2 апреля 2019 г. — Visual Studio 2019
Блог Visual Studio 2019
Блог Visual Studio 2019 является официальным источником сведений о продукте от группы разработчиков Visual Studio. Более подробные сведения о выпусках Visual Studio 2019 можно найти там.
Visual Studio 2019 версии 16.0.22
Выпущено 12 января 2020 г.
Уведомления о безопасности для версии 16.0.22
CVE-2021-1651 CVE-2021-1680 / Diagnostics Hub Standard Collector Service с повышением привилегий
Уязвимость, которая может привести к несанкционированному повышению привилегий, возникает, когда стандартный сборщик центра диагностики неправильно обрабатывает определенные операции с данными.
Cve-2020-26870 Visual Studio Installer Remote Code Execution Уязвимость
Уязвимость удаленного выполнения кода возникает, когда Visual Studio Installer пытается отобразить вредоносные данные Markdown.
Visual Studio 2019 версии 16.0.21
Дата выпуска: 8 декабря 2020 г.
Уведомления о безопасности для версии 16.0.21
Уязвимость выполнения удаленного кода Visual Studio CVE-2020-17156
Существует уязвимость удаленного выполнения кода, когда Visual Studio клонирует вредоносный репозиторий.
Visual Studio 2019 версии 16.0.20
Дата выпуска: 10 ноября 2020 г.
Уведомления о безопасности для версии 16.0.20
УЯЗВИМОСТЬ CVE-2020-17100 Visual Studio
Уязвимость, связанная с незаконным изменением, возникает, когда подключаемый модуль "Инструменты Python для Visual Studio" создает папку python27. Злоумышленник, использующий эту уязвимость, может запускать процессы с повышенными привилегиями.
Visual Studio 2019 версии 16.0.19
Дата выпуска: 13 октября 2020 г.
В этом выпуске 16.0.19
- Пакет SDK для .NET Code 2.1.616 добавлен в Visual Studio 2019.
Visual Studio 2019 версии 16.0.18
Выпущено 8 сентября 2020 г.
Проблема, устраненная в версии 16.0.18
- Неподдерживаемые версии .NET Core больше не будут переустанавливаться во время восстановления или обновления, если они были удалены за пределами VS.
Уведомления о безопасности для версии 16.0.18
CVE-2020-1130 Diagnostics Hub Standard Collector с повышением привилегий
Уязвимость, которая может привести к несанкционированному повышению привилегий, возникает, когда стандартный сборщик центра диагностики неправильно обрабатывает определенные операции с данными. Злоумышленник, использующий эту уязвимость, может запускать процессы с повышенными привилегиями.
CVE-2020-1133 Diagnostics Hub Standard Collector с повышением привилегий
Уязвимость, которая может привести к несанкционированному повышению привилегий, возникает, когда стандартный сборщик центра диагностики неправильно обрабатывает определенные операции с файлами. Злоумышленник, использующий эту уязвимость, может запускать процессы с повышенными привилегиями.
Уязвимость к выполнению удаленного кода Visual Studio CVE-2020-16856
В Visual Studio существует уязвимость удаленного выполнения кода, когда он неправильно обрабатывает объекты в памяти. Злоумышленник, успешно использовавший уязвимость, может запускать произвольный код в контексте текущего пользователя.
Уязвимость выполнения удаленного кода Visual Studio CVE-2020-16874
В Visual Studio существует уязвимость удаленного выполнения кода, когда он неправильно обрабатывает объекты в памяти. Злоумышленник, успешно использовавший уязвимость, может запускать произвольный код в контексте текущего пользователя.
CVE-2020-1045 Майкрософт ASP.NET Уязвимость обхода основных компонентов безопасности
В способе Microsoft ASP.NET ядро анализирует закодированные имена файлов cookie, существует уязвимость обхода функций безопасности. Средство синтаксического анализа файлов cookie ASP.NET Core декодирует все строки cookie, что может позволить злоумышленнику установить второй файл cookie с именем, закодированным в процентах.
Visual Studio 2019 версии 16.0.17
Выпущено 11 августа 2020 г.
Проблема, устраненная в версии 16.0.17
Уведомления о безопасности для версии 16.0.17
CVE-2020-1597 ASP.NET уязвимость к отказу в обслуживании
В ASP.NET Core существует уязвимость, приводящая к отказу в обслуживании из-за неправильной обработки веб-запросов. Воспользовавшись этой уязвимостью, злоумышленник может вызвать отказ в обслуживании для веб-приложения ASP.NET Core. Этой уязвимостью можно воспользоваться удаленно без аутентификации.
Visual Studio 2019 версии 16.0.16
Выпущено 14 июля 2020 г.
Проблемы, исправленные в версии 16.0.16
- Устранена регрессия компилятора CodeGen при вызове виртуальной функции в версии 15.9.
- Исправлена ошибка, связанная с отсутствующими импортами в компоновщике C++ при использовании библиотек umbrella с различным регистром в суффиксе имени библиотеки DLL.
- Исправлена ошибка в компиляторе С++ ARM64, из-за которой могли восстанавливаться неправильные значения после setjmp.
Уведомление о безопасности для версии 16.0.16
CVE-2020-1393 Diagnostics Hub Standard Collector Service с повышением привилегий
Уязвимость, которая может привести к несанкционированному повышению привилегий, возникает, когда стандартной службе сборщика в Центре диагностики Windows не удается должным образом очистить входные данные, что приводит к небезопасным действиям при загрузке библиотеки.
CVE-2020-1416 Visual Studio с повышением привилегий
Уязвимость, связанная с повышением привилегий, возникает в Visual Studio при загрузке зависимостей программного обеспечения.
CVE-2020-1147 .NET Core с уязвимостью типа "отказ в обслуживании"
В роли удаленного пользователя, не прошедшего проверку подлинности, злоумышленник может направлять созданные особым образом запросы приложению ASP.NET Core или другому приложению, которое анализирует определенные типы XML. Обновление для системы безопасности устраняет уязвимость путем ограничения типов, которые могут находиться в полезных данных XML.
Visual Studio 2019 версии 16.0.15
Дата выпуска: 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 — уязвимость к повышению прав в стандартной службе сборщика Центра диагностики
Уязвимость, которая может привести к несанкционированному повышению привилегий, возникает, когда служба стандартного сборщика концентратора диагностики неправильно обрабатывает определенные операции с файлами
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 обрабатывает веб-запросы.
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-адресов и их отправке во вспомогательные приложения учетных данных существует уязвимость, связанная с утечкой учетных данных. Это может привести к тому, что учетные данные будут отправлены на неправильный узел.
Visual Studio 2019 версии 16.0.12
Дата выпуска: 10 марта 2020 г.
Проблемы, исправленные в версии 16.0.12
- vcruntime.h в Visual Studio 2019 Preview вызывает предупреждение RC4011
- Новые варианты устранения рисков Spectre в компиляторе C++: /Qspectre-load & /Qspectre-load-cf для спекулятивной защиты нагрузки.
Советы по безопасности
CVE-2020-0793 и CVE-2020-0810 Diagnostics Hub Standard Collector Service с повышением привилегий
Уязвимость, которая может привести к несанкционированному повышению привилегий, возникает, когда стандартный сборщик концентратора диагностики неправильно обрабатывает операции с файлами либо службе стандартного сборщика концентратора диагностики Windows не удается должным образом очистить входные данные.
CVE-2020-0884. Уязвимость спуфинга при создании веб-надстройки Outlook
CVE-2020-0789. Уязвимость отказа в обслуживании службы установщика расширений Visual Studio
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 обрабатывает выполнение в памяти.
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-адресу, указанному узлом.
Visual Studio 2019 версии 16.0.9
Выпущено 15 октября 2019 г.
Советы по безопасности
CVE-2019-1425 — уязвимость к повышению прав в пакете NPM (опубликовано 12 ноября 2019 г.)
Уязвимость повышения привилегий возникает, когда Visual Studio не может правильно проверить жесткие связи при извлечении архивных файлов. Уязвимости появились в пакетах NPM, используемых в Visual Studio, как описано в следующих двух рекомендациях по NPM: npmjs.com/advisories/803 и npmjs.com/advisories/886. Обновленные версии этих пакетов NPM были добавлены в эту версию Visual Studio.
Visual Studio 2019 версии 16.0.8
Выпущено 10 сентября 2019 г.
Проблемы, исправленные в Visual Studio 2019 версии 16.0.8
- Сборка не соответствует коду функции
- Visual Studio перестает отвечать на запросы о создании нового проекта служб SSIS
- Исправлено зависание пользовательского интерфейса после расширенного использования редактора.
Советы по безопасности
CVE-2019-1232. Уязвимость, которая может привести к несанкционированному повышению привилегий в стандартной службе сборщика центра диагностики
Уязвимость, которая может привести к несанкционированному повышению привилегий, возникает, когда стандартная служба сборщика центра диагностики неправильно олицетворяет определенные операции с файлами. Злоумышленник, использующий эту уязвимость, может получить более высокий уровень привилегий. Чтобы воспользоваться этой уязвимостью, злоумышленник должен получить непривилегированный доступ к уязвимой системе. Обновление системы безопасности устраняет эту уязвимость, обеспечивая надлежащее олицетворение стандартными службами сборщика центра диагностики файловых операций.
Visual Studio 2019 версии 16.0.7
Выпущено 13 августа 2019 г.
Проблемы, исправленные в Visual Studio 2019 версии 16.0.7
- Исправлена ситуация со снижением производительности, которая возникала при достижении точки останова с заходов в нее.
- Исправлена ситуация со снижением производительности, которая возникала при запуске IntelliTrace.exe.
- Исправлена ошибка, которая приводила к сбою при невозможности связаться с TFS.
- Исправление ошибки сборки HRESULT E_FAIL в некоторых проектах C++ при обновлении до версии 16.0.1
Советы по безопасности
CVE-2019-1211 Уязвимость для повышения привилегий в Git для Visual Studio
В Git для Visual Studio обнаружена уязвимость для повышения привилегий при неправильном анализе файлов конфигурации. Злоумышленник, успешно использовавший уязвимость, может запускать код в контексте другого локального пользователя. Чтобы воспользоваться этой уязвимостью, после прохождения проверки подлинности злоумышленнику необходимо изменить файлы конфигурации Git в системе до того, как будет выполнена полная установка приложения. После этого злоумышленнику будет необходимо убедить другого пользователя системы выполнить определенные команды Git. Эта проблема решена в обновлении путем изменения разрешений, необходимых для редактирования файлов конфигурации.
**CVE-2019-1301: уязвимость отказ в обслуживании в .NET Core
В .NET Core существует уязвимость, приводящая к отказу в обслуживании из-за неправильной обработки веб-запросов. Воспользовавшись этой уязвимостью, злоумышленник может вызвать отказ в обслуживании для веб-приложения .NET Core. Этой уязвимостью можно воспользоваться удаленно без аутентификации.
Это обновление устраняет эту уязвимость, исправляя методы, которыми веб-приложение .NET Core обрабатывает веб-запросы.
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.
Visual Studio 2019 версии 16.0.5
Выпущено 11 июня 2019 г.
Проблемы, исправленные в Visual Studio 2019 версии 16.0.5
- Исправлена известная проблема: при отладке моментальный снимок не создан для машинного кода C++ в средстве использования памяти в окне средств диагностики.
- Оптимизирована загрузка Visual Studio.
Visual Studio 2019 версии 16.0.4
Выпущено 14 мая 2019 г.
Проблемы, исправленные в Visual Studio 2019 версии 16.0.4
- Присоединение к строке iis для многократного подключения.
- Приложения WPF, нарушенные после обновления FW 4.8.
- Установка typescript 3.3 отключает компиляцию версии 2.2.
- Невозможно подключить отладчик при присоединении нескольких запускаемых проектов в Visual Studio 2019.
- Известная проблема: вкладка приложений страниц свойств проекта VB разбивается, если платформа .NET Framework пакет разработчика версии 4.8.
- Установка расширений Visual Studio может завершиться сбоем при попытке перезаписать основные файлы NuGet.
- microsoft.diagnosticshub.dotnetobjectalloc.vsix отсутствует в автономном установщике.
Советы по безопасности
CVE-2019-0727. Уязвимость, которая может привести к несанкционированному повышению привилегий в стандартной службе сборщика центра диагностики
Уязвимость, которая может привести к несанкционированному повышению привилегий, возникает, когда стандартная служба сборщика центра диагностики неправильно выполняет определенные операции с файлами. Злоумышленник, использующий эту уязвимость, может удалять файлы в произвольных расположениях. Чтобы воспользоваться этой уязвимостью, злоумышленник должен получить непривилегированный доступ к уязвимой системе. Обновление системы безопасности устраняет эту уязвимость, обеспечивая безопасность расположений, в которых стандартный сборщик центра диагностики выполняет файловые операции.
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
- Отсутствует функция удаления в контекстном меню обозревателя решений в проектах Xamarin Forms для Android.
- Xamarin.Android: не удается выбрать целевую платформу 28 в параметрах манифеста Android.
- Не удалось загрузить файл или сборку "'Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" или одну из их зависимостей. Система не может найти указанный файл..
- "При запуске выбранного генератора кода произошла ошибка" при попытке создания представления.
- Android Berechtigungsliste ist leer — список разрешений Android пуст.
- Отсутствуют значки для AXML-файлов в Visual Studio 2019.
- Не отображаются значки AXML.
- Установка расширений Visual Studio может завершиться сбоем при попытке перезаписать основные файлы NuGet.
- Оператор switch C# в константном выражении может приводить к ошибкам компилятора.
Visual Studio 2019 версии 16.0.2
Выпущена 18 апреля 2019 г.
Проблемы, исправленные в Visual Studio 2019, версия 16.0.2
- Имя решения в строке заголовка обрезается.
- Отсутствует интерполяция в предупреждении при упаковке проектов облачных служб.
- Visual Studio больше не будет отображать сообщение об ошибке при запуске после сброса или импорта параметров в определенных случаях.
- Исправлены проблемы со специальными возможностями в проектах облачных служб, когда некорректные входные данные в окне конфигурации диагностики не считывались средствами чтения с экрана.
Visual Studio 2019 версии 16.0.1
выпущена 9 апреля 2019 г.
Проблемы, исправленные в Visual Studio 2019, версия 16.0.1
- Добавлена возможность использовать платформу Windows (UWP) при создании проекта Xamarin.Forms на основе шаблона проекта "Мобильное приложение (Xamarin.Forms)".
- В заголовке окна "Справка" > "О программе" в Visual Studio 2019 после обновления по-прежнему отображается значение RC.
- При обновлении Visual Studio 2019 с RC до общедоступной версии для Visual Studio сохраняются ярлыки RC.
- В предварительной версии 1.1 Visual Studio 2019 не удается создать форму Xamarin для UWP.
- При запуске Visual Studio 2019 после обновления с предварительной версии 4.4 до 16.0 происходит загрузки пакета.
Visual Studio 2019
Выпущено 2 апреля 2019 г.
Сводка новых возможностей Visual Studio 2019
Установка
- Работайте эффективнее, ведь теперь обновления Visual Studio загружаются в фоновом режиме.
- Управляйте режимом установки для обновлений Visual Studio.
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.
Производительность
- Управляйте тем, как загружаются решения, с помощью новых усовершенствований производительности Visual Studio, влияющих на скорость пошагового выполнения, переключения ветвей и многое другое.
- Контролируйте ход загрузки решения в центре состояния задач.
- Выбирайте, какие проекты следует загрузить при открытии решения, с помощью фильтрации файлов решения.
- Повысьте качество набора текста, ограничив влияние вспомогательных компонентов.
- Используйте новый параметр, чтобы отключить восстановление состояния иерархии проекта и состояния окна инструментов.
- Узнайте новый ярлык для выбора сборки и быстро собирайте все в CMake с помощью новой команды "Собрать все".
- Пишите код быстрее благодаря повышенной производительности IntelliSense для файлов C++ в проектах CMake.
- Загружайте большие решения .NET Core — работая с ними с течением времени, вы заметите значительную экономию ресурсов памяти.
- Загружайте зависимости проекта быстро с помощью новой команды контекстного меню проекта.
- Смотрите советы по повышению производительности в Центре производительности.
Общие сведения об отладке и диагностике
- Поиск ключевых слов в окнах контрольных значений, "Видимые" и "Локальные" во время отладки позволяет расширить функциональность поиска значений или объектов.
- Представление раскрывающего списка спецификаторов формата в окнах контрольных значений, "Видимые" и "Локальные" при проверке данных.
- Используйте настраиваемый визуализатор, который теперь совместим с .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. Затем компилятор анализирует, где появляются значения 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
- Отлаживайте модульные тесты в проектах Node.js.
- Получайте дополнительную поддержку для пользователей, которые создают проекты TypeScript из пакетов NuGet и npm.
Python
- С легкостью добавляйте виртуальные среды и среды conda для Python с помощью диалогового окна добавления среды Python.
- Работайте эффективнее со средами Python, включая улучшенную поддержку рабочих областей открытия папок с помощью новой панели инструментов выбора сред Python.
- Создание сеансов Visual Studio Live Share и совместная работа над кодом Python с другими пользователями Visual Studio.
Веб-технологии
- Пользуйтесь преимуществами добавленной в этой версии поддержки работы с проектами для .NET Core 3.0.
- Познакомьтесь с профилированием ЦП для платформы ASP.NET.
- Используйте отладчик моментальных снимков для веб-приложений .NET, работающих в виртуальных машинах, масштабируемых наборах виртуальных машин и службе Azure Kubernetes.
- Разработка контейнерных приложений для Kubernetes с помощью средств Kubernetes для Visual Studio
- Опробуйте усовершенствования интерфейса рабочих элементов Azure DevOps, включая встроенную поддержку назначения рабочих элементов и улучшенную функцию #упоминаний.
- Работайте с файлами проекта эффективнее и используйте улучшенное консольное приложение для инструментов .NET Core.
- Наслаждайтесь усовершенствованной сводкой профиля публикации для всех приложений. Кроме того, теперь доступен новый раздел Зависимости, когда приложение публикуется в службе приложений Azure.
- Улучшено визуальное оформление при создании приложения ASP.NET.
- Теперь можно вновь предоставить учетные данные для существующего профиля публикации Функций Azure.
Инструменты контейнера
- Используйте оптимизированный единый проект для создания контейнеров и отладки.
- Используйте расширенную поддержку отладки Alpine и дополнительные базовые образы.
Разработка мобильных приложений с помощью Xamarin
- Быстрее приступайте к работе благодаря уменьшению размера рабочей нагрузки Xamarin и повышению производительности при создании проектов.
- Просматривайте больше подробных сведений о ходе сборки.
- Используйте IntelliCode с XAML в Xamarin.Forms.
- Работайте с предварительным просмотром кода XAML без необходимости создания проекта с помощью нового базового режима предварительного просмотра в средстве просмотра Xamarin.Forms.
- Просматривайте код XAML в Xamarin.Forms на разных устройствах с помощью нового раскрывающегося списка устройств средства предварительного просмотра Xamarin.Forms.
- Ознакомьтесь с новой панелью свойств для элементов управления Xamarin.Forms.
- Используйте новый шаблон оболочки для Xamarin.Forms.
- Применяйте усовершенствования производительности начальной и добавочной сборки для Xamarin.Android.
- Создавайте новые эмуляторы Android с помощью меню целевого объекта развертывания.
- Выполняйте сборку быстрее с нашими улучшениями для сборки в Xamarin.Android.
- Наслаждайтесь улучшенным быстрым развертыванием и поддержкой d8/r8 для Xamarin.Android.
- Пользуйтесь преимуществами повышения производительности в конструкторе Xamarin.Android Designer.
- Попробуйте улучшения в Xamarin.Android Designer для первоначальной поддержки ограниченных макетов.
- Работайте продуктивнее с конструктором Xamarin.Android Designer, используя функцию "перейти к определению" и расширенные возможности IntelliSense для XML и автозавершения для файлов ресурсов Android.
Универсальная платформа 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 Edit и Continue теперь поддерживает x:bind (UWP): XAML Edit и Continue теперь поддерживает редактирование привязок данных, созданных с помощью x:bind для путей, содержащих общедоступные свойства, имя элемента, индексированные пути свойств (коллекции), присоединенные свойства и свойства приведения. Другие изменения не поддерживаются. Это улучшение доступно для любого приложения, в котором минимальная и максимальная версии ориентированы на Windows 10 SDK версии 1809 (сборка 10.0.17763) или более поздней. (Примечание. Изменение и продолжение XAML теперь называется XAML Горячая перезагрузка начиная с Visual Studio 2019 с обновлением 2+).
SQL Server Data Tools
- Оцените обновленные SSDT и DacFX, которые теперь включают поддержку параметров сортировки UTF-8.
Подробное описание новых возможностей Visual Studio 2019
Установка
- Теперь можно выбрать способ установки обновлений Visual Studio. Режим по умолчанию — "Скачать все и установить", который позволяет продолжить использование Visual Studio при загрузке обновлений. Примечание. При выборе режима "Скачать все и установить" потребуется открыть Visual Studio Installer и выбрать Продолжить.
- Теперь обновления Visual Studio загружаются в фоновом режиме. Загрузка выполняется, только когда компьютер бездействует. После завершения скачивания вы получите уведомление в Visual Studio, что все готово к установке.
- Теперь вы можете контролировать режим установки обновлений и указывать, нужно ли загружать обновления через меню Сервис > Параметры, изменив параметры на странице обновлений продуктов.
Окно запуска
Новое начальное окно упрощает запуск, помогая быстро открывать код при запуске Visual Studio.
- Просмотреть последние проекты и папки и открыть их можно одним щелчком. Можно также закреплять и удалять элементы списка в контекстном меню.
- Доступно клонирование и извлечение кода с любого общедоступного или частного URL-адреса git; папка при этом автоматически откроется в интегрированной среде разработки.
- Вы можете выполнять вход, поиск, клонирование одним щелчком или подключение к размещенным репозиториям из Azure DevOps и устанавливать расширения для других узлов управления исходным кодом для просмотра репозиториев, принадлежащих вам и вашей организации.
- Ищите проекты, решения и все папки, содержащие код, на локальном диске или сетевом ресурсе и открывайте их в интегрированной среде разработки.
- Выберите шаблон проекта, который обеспечивает формирование шаблонов кода, помогая быстрее приступить к работе с новым проектом или решением.
- Ищите шаблоны проектов по названию, описанию и тегам и применяйте фильтры по доступным языкам, платформам и типам проектов. В списке по умолчанию отображаются все доступные шаблоны, а список из 10 недавно использованных шаблонов проектов отображается на левой панели для быстрого доступа. Двухстраничный мастер позволяет принимать одно решение за раз.
Оболочка и платформа
- Новый улучшенный значок продукта помогает быстро определить, какую версию Visual Studio вы открываете и используете. Новый значок также более заметен поверх различных фоновых рисунков.
- Интерфейс из Visual Studio осовременен; новая синяя тема упрощает пользовательский интерфейс, однако полностью соответствует нашим стандартам специальных возможностей.
- В освобожденной вертикальной области в интегрированной среде разработки видно больше кода. Мы объединили строку заголовка и строку меню, сохранив при этом существующие функциональные возможности.
- Новый экспериментальный параметр позволяет включить в Visual Studio поддержку различных мониторов. При включении он оптимизирует отображение таких частей Visual Studio, как оболочка и редактор, вне зависимости от конфигурации отображения или масштабирования.
- Улучшен интерфейс расширенного поиска по меню, командам, параметрам и устанавливаемым компонентам. Теперь наш новый поиск динамически отображает результаты, учитывает орфографические ошибки и предоставляет соответствующие сведения (например, сочетания клавиш) в результатах поиска.
- Вы можете видеть сведения о работоспособности, связанные с открытым файлом, благодаря индикатору работоспособности документа.
- Если вы пишете код на C#, можно быстро скрыть некоторые из наиболее распространенных предложений, используя очистку кода.
- Выберите набор исправлений, которые вы бы хотели выполнить, чтобы настроить очистку кода.
- Просматривайте журнал содержимого в буфере обмена через контекстное меню, которое расширяет возможности буфера обмена (CTRL+SHIFT+V).
- Мы улучшили ваш интерфейс поиска, выполнив приведенные ниже действия.
- Добавление фильтров для меню, компонентов и шаблонов.
- Включение выбранных параметров поиска для отображения наиболее подходящих результатов.
- Возможность создания и добавления проектов и элементов в решение напрямую из поиска Visual Studio.
- Улучшенный интерфейс поддержки различных мониторов (PMA) теперь включен по умолчанию для пользователей, которые выполняют минимальный набор требований (предварительная версия .NET 4.8 и обновления Windows 10 от апреля 2018 г. или более поздней версии). Окна инструментов, например панель инструментов, "Точки останова", "Контрольные значения", "Локальные", "Видимые" и "Стек вызовов", были преобразованы в PMA и отрисовываются с высокой четкостью независимо от конфигурации дисплея и масштабирования.
- Добавляется новый интерфейс уведомлений:
- Новый значок и счетчик в строке состояния.
- Новый механизм всплывающих уведомлений.
- Уведомления о обновлении Visual Studio и истечении срока действия лицензии Visual Studio.
- Обновленная на основе отзывов синяя тема: теперь она имеет меньшую яркость, улучшенную контрастность и включает ряд других усовершенствований.
- Улучшенные возможности перетаскивания окон за счет использования свободного места в области панели инструментов как области для перетаскивания.
- Сохраняйте коллекцию исправлений очистки кода как профиль, чтобы быстро выбирать исправления, которые нужно выполнить во время очистки кода.
- Мы добавили теги в диалоговом окне "Расширения и обновления", чтобы вы быстрее распознавали версию расширения — предварительная, платная или пробная.
- Чтобы реализовать всплывающие подсказки данных в 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 с помощью меню Сервис > Параметры > Текстовый редактор > Дополнительно:
- Теперь вы можете отключить восстановление состояния иерархии проекта из предыдущего сеанса в окне инструментов обозревателя решений. Мы реализовали это изменение, так как восстановление иерархии проекта из предыдущего сеанса в решении может замедлять загрузку решения.
- Этот параметр находится в меню Сервис > Параметры > Проекты и решения > Общие.
Общие сведения об отладке и диагностике
Общая отладка
- Выделение, поиск и навигация с помощью ключевых слов благодаря новой функции поиска, которую мы интегрировали в окнах контрольных значений, "Видимые" и "Локальные".
- Используйте раскрывающийся список спецификаторов и параметров для форматирования данных в окнах контрольных значений, "Видимые" и "Локальные", добавив запятую к элементу списка.
- Теперь можно использовать настраиваемые визуализаторы и визуализаторы наборов данных для .NET Core.
- Для приложений на C++, работающих в Windows, PDB теперь загружаются в отдельном 64-разрядном процессе. Это изменение позволяет устранить ряд сбоев из-за нехватки памяти при отладке приложений, которые содержат большое количество модулей и PDB-файлов.
Управляемые точки останова в данных
Для приложений .NET Core (3.0 и более поздних версий) теперь доступны точки останова в данных, позволяющие прерывать работу при изменении значения свойства у конкретных объектов. В прошлом эта функция была доступна только для C++. Это отличная альтернатива обычным точкам останова в методе задания свойства, так как точка останова в данных может работать для свойства конкретного объекта, даже находящегося вне текущей области, тогда как в другом случае возможны постоянные ненужные прерывания, когда функцию вызывают сотни разных объектов.
Обновление интерфейса поиска в окне контрольных значений
Изменен пользовательский интерфейс поиска в окнах "Видимые", "Локальные" и "Контрольные значения". Функция поиска на уровень глубже была изменена на раскрывающийся список, позволяющий быстро выбирать уровень глубины начальной и последующих операций поиска.
Применение параметров стиля кода
- Теперь предпочитаемый стиль кода можно задавать из командной строки с помощью глобального инструмента dotnet format. Для его установки потребуется пакет SDK для .NET Core 2.1 или более поздней версии. В удобном вам терминале выполните следующую команду:
dotnet tool install -g dotnet-format --version 3.0.0-beta4-19105-10
Расширяемость
- В 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.
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 в распространяемый пакет.
- Следующие мастера ATL/MFC C++ больше не доступны: мастер компонентов ATL COM+ 1.0, мастер компонентов ATL Active Server Pages, мастер поставщика OLE DB ATL, мастер свойств ATL, мастер потребителей OLE DB ATL, потребитель MFC ODBC, класс MFC из элемента ActiveX и класс MFC из Type Lib. Архив с примерами кода для этих технологий доступен в GitHub-репозитории VCSamples.
F#
Улучшения F# в Visual Studio 2019 касаются трех основных областей.
- F# 4.6
- Существенное повышение производительности для средних и крупных решений
- Множество разработок с открытым исходным кодом от нашего сообщества открытой разработки
F# 4.6
Этот выпуск содержит версию языка F# 4.6:
- В язык добавлены анонимные типы записей, включая полную поддержку инструментов и возможность выдавать их типы в объекты JavaScript с помощью компилятора Fable.
- Равенство функций типа ValueOption и модуля ValueOption с типом Option.
- Функция tryExactlyOne для массивов, списков и последовательностей, автор Гжегож Дзядкевич (Grzegorz Dziadkiewicz).
Усовершенствования компилятора 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.
- Назначайте рабочие элементы себе или другим пользователям с помощью нового средства выбора удостоверения. По умолчанию будет показан список людей, которых вы выбирали недавно. Также можно использовать поиск, чтобы найти других пользователей в вашей организации.
- Мы улучшили #упоминания в сообщениях о фиксации. При выборе рабочего элемента с помощью средства выбора #упоминания он будет автоматически добавляться в список связанных рабочих элементов.
Выделение горячего пути
- Мы добавили поддержку выделения горячего пути в средствах использования ЦП и выделения объектов DotNet в профилировщике производительности. Выберите любую функцию в дереве вызовов и нажмите клавишу "Горячий путь", чтобы развернуть горячий путь использования ЦП или выделения объектов DotNet. Эта функция позволяет легко определить вызовы функций, которые используют самый высокий процент ЦП или выделяют большинство объектов.
Средства .NET и ASP.NET
- Мы реализовали различные небольшие усовершенствования для пользователей на странице сводки профиля публикации (новые заголовки разделов и действия/ярлыки) для всех приложений.
- При публикации приложений ASP.NET в службе приложений Azure на странице сводки профиля публикации теперь есть новый раздел "Зависимости". В настоящее время этот новый раздел позволяет связывать ресурсы хранилища Azure и Azure SQL с вашим экземпляром службы приложений. В будущем у вас будет доступ и к другим службам Azure.
- Используйте показатели качества кода с проектами .NET Core благодаря расширенной совместимости.
- Экспортируйте параметры редактора в файл Editorconfig через меню Сервис > Параметры > Текстовый редактор > C# > Стиль кода с помощью кнопки "Создать файл .editorconfig из параметров".
- Используйте поддержку нового средства синтаксического анализа регулярных выражений в C# и Visual Basic. Теперь распознаются регулярные выражения, и в них включены функции языка. Строки регулярных выражений распознаются, либо когда строка передается в конструктор Regex, либо когда строке непосредственно предшествует комментарий, содержащий строку
language=regex
. Функции языка в этом выпуске включают классификации, парные фигурные скобки, выделение ссылок и диагностику.
- Теперь можно применять анализ неиспользуемого кода для неиспользуемых закрытых членов с дополнительным исправлением кода для удаления неиспользуемых объявлений.
- Функция поиска ссылок на метод доступа теперь возвращает только результаты для соответствующих методов доступа.
- Мы добавили исправление кода для создания методов deconstruct.
- При вставке кода в файл можно добавить операторы using. После вставки распознаваемого кода отображается исправление кода с предложением добавить отсутствующие импортируемые элементы.
- Теперь доступны более рефакторинг и быстрые действия с помощью клавиш CTRL +., ALT+ВВОД:
- Для случаев, где await ожидается, но отсутствует, теперь есть предупреждение компилятора.
- Для преобразования локальной функции в метод.
- Для преобразования кортежа в именованную структуру.
- Для преобразования анонимного типа в класс.
- Для преобразования анонимного типа в кортеж.
- Для преобразования цикла по каждому элементу в запрос LINQ или метод LINQ.
- Теперь добавлена поддержка приложений ASP для .NET Core, работающих в службе Azure Kubernetes. Чтобы приступить к работе, см. этот пример для Docker на сайте GitHub.
- ASP.NET теперь поддерживается в средстве использования ЦП профилировщика производительности.
- Функции "Поиск всех ссылок" (SHIFT + F12) и CodeLens теперь можно использовать для отображения результатов из файлов Razor (.cshtml) в проектах .NET Core. Затем можно перейти к найденному коду в соответствующих файлах Razor.
- Мы добавили поддержку целевого объекта приложений ASP.NET (приложения Core и классические), которые работают на виртуальных машинах Windows и масштабируемых наборах виртуальных машин.
- Теперь вы получите предупреждение при анализе кода с помощью 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
- Устранена долго существовавшая проблема, когда изменения конфигурации не соблюдались во время разработки, что приводило к принудительной перезагрузке проекта.
- Теперь имеется возможность перейти к определению из Razor в C# в проектах ASP.NET Core.
- Теперь реализована поддержка элементов AvailableItemName.
- Реализована поддержка автоматического вложения зависимых файлов, которые добавляются в проект с помощью глобализации.
- Поддержка XamlAppDef добавлена Уильямом Кентом (William Kent).
Вы можете найти полный список проблем и запросов на вытягивание в вехах 16.0, 16.0, предварительная версия 2, 16.0, предварительная версия 3 и 16.0, предварительная версия 4.
Производительность .NET
Рефакторинги .NET и исправления кода:
- Синхронизация пространства имен и имени папки.
- Подъем членов в рефакторинге с параметрами диалогового окна.
- Списки переноса, отступа или выравнивания с параметрами и аргументами
- Преобразование анонимного типа в кортеж
- Использование тела выражения или блока для лямбда-выражения
- Инверсия условных выражений и логических операций
- Автоматическое закрытие комментария блока на "/"
- Преобразование в составное назначение
- Исправлена проблема, при которой неявно типизированные переменные не могут быть константными
- Автоматические исправления для замены
@$"
на$@"
при вводе интерполированной строки verbatim - Завершение для
#nullable enable|disable
- Исправление для неиспользуемых значений и параметров выражения
- Исправление ошибки, при которой извлечение интерфейса оставалось в том же файле
Классификация ссылок на чтение и запись.
Добавлен параметр Editorconfig when_multiline для csharp_prefer_braces.
Новые цвета классификации можно получить из пакета SDK для платформы компилятора .NET (также называется Roslyn). Постепенно развертываются новые цвета по умолчанию, аналогичные цветам Visual Studio Code. Вы можете настроить эти цвета в разделе Сервис > Параметры > Среда > Шрифты и цвета или отключить их в разделе Среда > Предварительные версии функций, сняв флажок Использовать улучшенные цвета. Мы будем признательны за ваше мнение о том, как это изменение влияет на рабочий процесс.
Отладка JavaScript в проектах ASP.NET
- Если вы добавили новый браузер Google Chrome с пользовательскими аргументами с помощью меню "Просмотр с помощью…" для проекта ASP.NET, Visual Studio теперь разрешает отладку JavaScript для приложения при запуске отладки. Пользовательские аргументы запуска для Google 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.
Нажмите Далее и введите имя проекта, расположение и имя решения. Затем нажмите кнопку Создать. Выберите шаблон приложения ASP.NET Core, который вы хотите использовать для проекта, и нажмите ОК. Visual Studio автоматически создаст диаграмму Helm и файл Dockerfile, которые можно использовать для создания и развертывания нового приложения в кластере Kubernetes. При необходимости эти артефакты можно изменить.
Добавление поддержки Kubernetes в существующий проект
Вы также можете добавить поддержку Kubernetes в существующее приложение ASP.NET Core. Для этого откройте проект в Visual Studio 2019. В обозревателе решений щелкните правой кнопкой мыши проект, выберите пункт Добавить и нажмите Поддержка оркестратора контейнеров.
В диалоговом окне Добавление поддержки оркестратора контейнеров выберите Kubernetes/Helm и нажмите кнопку ОК. Visual Studio автоматически создаст диаграмму Helm и файл Dockerfile (в папке charts), которые можно использовать для создания и развертывания нового приложения в кластере Kubernetes. Если любой из этих артефактов уже существует, они не перезаписывается. При необходимости эти артефакты можно изменить.
Создание общедоступной конечной точки
Когда вы добавляете поддержку Kubernetes в новый или существующий проект, Visual Studio запросит, следует ли создать общедоступную конечную точку для вашего приложения.
Если щелкнуть Да, 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.
Перед первым запуском проекта в Dev Spaces настройте подписку Azure и кластер AKS, который вы хотите использовать. Кроме того, выберите место, где вы хотите запустить проект.
Как правило, ваша команда использует последнюю стабильную версию всего приложения в пространстве по умолчанию. Затем вы запускаете свою версию службы, с которой вы работаете, в дочернем пространстве пространства по умолчанию. Теперь не нужно запускать другие службы в дочернем пространстве; Dev Spaces автоматически направляет вызовы из службы в стабильные версии служб, работающих в пространстве по умолчанию. Дополнительные сведения о настройке см. в учебниках по командной разработке в документации по Azure Dev Spaces. Когда вы выберете нужную подписку, кластер и пространство, нажмите ОК, чтобы продолжить настройку Dev Spaces. Если вы выбрали кластер, у которого еще нет связанного контроллера Dev Spaces, нажмите кнопку ОК в следующем диалоговом окне, чтобы создать его автоматически.
Создание контроллера занимает около 2 минут. Вы можете нажать кнопку Фоновые задачи в левом нижнем углу окна Visual Studio, чтобы просмотреть состояние.
Когда контроллер Dev Spaces будет готов к работе, нажмите F5 или кнопку отладки Azure Dev Spaces на панели инструментов для отладки проекта в AKS.
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 % в некоторых случаях.
Индикатор хода сборки
Теперь вы видите более подробные сведения о ходе выполнения сборки при сборке проектов. Нажмите на значок фоновых задач в левом нижнем углу во время сборки, чтобы просмотреть выполняемый целевой объект сборки. Это может быть полезно, чтобы определить, что сборка по-прежнему выполняется, но завершение целевого объекта занимает слишком много времени.
Базовый режим предварительной версии Xamarin.Forms
Вам больше не нужно выполнять сборку проекта, чтобы средство предварительного просмотра XAML Xamarin.Forms вывело окно предварительного просмотра кода. При наличии пользовательских элементов управления в файле XAML может потребоваться выполнить сборку проекта для предварительного просмотра таких элементов или выбрать их для отрисовки во время разработки.
Раскрывающийся список устройств Xamarin.Forms Previewer
Теперь вы можете переключаться между разными устройствами Android и iOS для предварительного просмотра кода XAML в Xamarin.Forms с помощью нового раскрывающегося меню устройств.
Панель свойств Xamarin.Forms
Теперь вы можете изменять наиболее распространенные атрибуты элементов управления, ячеек и макетов Xamarin.Forms в панели свойств; эти изменения немедленно отражаются в вашем XAML.
Шаблон оболочки 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. Чтобы включить эту функцию, добавьте флаг MSBuild в проект
.csproj
:- aapt2 разделяет упаковку Android на два шага: компиляция и ссылка. Это позволяет повысить производительность добавочных сборок и заранее сообщать об ошибках. Например, при наличии изменений в одном файле достаточно повторить компиляцию этого файла.
<AndroidUseAapt2>True</AndroidUseAapt2>
- aapt2 разделяет упаковку Android на два шага: компиляция и ссылка. Это позволяет повысить производительность добавочных сборок и заранее сообщать об ошибках. Например, при наличии изменений в одном файле достаточно повторить компиляцию этого файла.
- Включив это средство в своих проектах, можно добиться повышения производительности во время сборки и выполнения. Дополнительные сведения об этих свойствах см. в разделе документации по процессу сборки в 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 (d8) и средства сжатия кода (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
Мы внесли ряд улучшений при работе в представлении с разделением.
- Перетаскивание мышью непосредственно из области элементов в редакторе исходного кода позволяет быстро создать каркас макета Android.
- Выбирайте элементы непосредственно в их диапазоне определения XML в редакторе исходного кода. Мы реализовали эту возможность путем синхронизации текущего положения курсора с соответствующим представлением Android, что позволяет быстро получить доступ к свойствам элемента на панели "Свойства" прямо из редактора.
- Используйте встроенный предварительный просмотр цвета в XML-коде, чтобы видеть, какие цвета используются в элементах управления.
- Используйте краткие сведения, наводя указатель мыши на значение, чтобы получить дополнительные сведения о нем, например, где оно определено, или узнать шестнадцатеричное значение цвета.
Улучшения в Xamarin.Android Designer для первоначальной поддержки ограниченных макетов.
Мы начали работу над повышением скорости запуска Android Designer. В рамках этого проекта мы также улучшили сообщения, которые конструктор отображает во время загрузки.
Наряду с этими улучшениями Android Designer теперь изначально поддерживает Android Pie (9.0) и обеспечивает автозавершение для атрибутов ConstraintLayout
.
Улучшение оптимизации XML IntelliSense и комментариев с помощью конструктора Xamarin.Android
При использовании IntelliSense для добавления мини-приложения в макет предоставляется полный фрагмент кода, чтобы необходимые атрибуты можно было предоставить с самого начала. Мы добавили интеллектуальное комментирование и раскомментирование для макетов Android XML.
Будьте более продуктивными с помощью go-To-Definition и используйте XML IntelliSense в файлах ресурсов Android и AndroidManifest.xml
Теперь вы можете использовать CTRL + щелчок в URL-адресах ресурсов, чтобы перейти к файлу или строке, где они определены.
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 будет доступен в следующем обновлении..
Используйте поиск рабочих элементов, при их #упоминании в сообщении о фиксации ожидающих изменений. Дополнительные сведения см. в разделе Просмотр и добавление рабочих элементов с помощью страницы "Рабочие элементы".
Из подключаемого модуля 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.
Проблемы, исправленные в RC-кандидате Visual Studio 2019
Последнее обновление: 26 апреля 2019 г.
- значение не может быть равно NULL. Имя параметра: pUnk при проверке кода в TFS.
- "Subtype Designer" без необходимости добавляется в файлы на основе XML, например CSPROJ.
- TLS 1.0: запрос прерван: не удалось создать безопасный канал SSL/TLS.
- Обозреватель решений: чрезмерная чувствительность при прокрутке на сенсорной панели.
- [MSConnect 1173006] Список задач с фильтром "Все решение" не отображает текущие и планируемые задачи при закрытии файла.
- Xamarin.iOS не может выбрать ресурс изображения для представления изображений.
- неустранимая ошибка C1001: в компиляторе произошла внутренняя ошибка.
- Visual Studio 2019 — EF6 edmx文件无法保存-VS 2019, предварительная версия 1 — невозможно сохранить EMDX-файл EF6.
- [WebKit]: неопределенный класс не допускается в качестве аргумента в характеристике внутреннего типа компилятора "__is_assignable" (регрессия).
- Visual Studio 2019: низкая контрастность в диспетчере пакетов NuGet.
- Изменения в Team Explorer: размер панели не соответствует окну Team Explorer.
- Список серверов обозревателя объектов SQL Server в Visual Studio 2017 не сохраняется.
- Проблемы IntelliSense с режимом Linux-x64.
- Индекс находился вне допустимого диапазона. Должно быть не отрицательным и меньше размера коллекции. Имя параметра: индекс.
- Действие отмены в Visual Studio 2017 не работает или перестает работать (пользователи СНОВА сообщают об этой проблеме!).
- IntelliSense не работает для файлов, созданных в WSL.
- Ошибка Intellisense: инициализация статического контекспра C++11 приводит к тому, что "член не может быть инициализирован".
- VS не восстанавливает положение окон при переходе в режим отладки или выходе из него.
- Сторонние элементы панели элементов перезагружаются при каждом запуске VS2019 предварительной версии 2.2.
- Действие "Назначить запускаемым проектом" приводит к аварийному завершению IDE после обновления до предварительной версии 3 VS2019.
- Сбой создания проектов Visual Studio 2017 C++ в Visual Studio 2019.
- Исправлена проблема обновления панели элементов.
- Из-за элементов управления панели элементов файл vssettings становится слишком большим.
- SSDT: исправление ошибок входа при выполнении функции сравнения новых данных.
- SSDT: исправление для источника недоступно при выполнении сравнения схем.
- SSDT: исправление для создания скрипта сравнения схем не создает скрипт .
- Элемент "Поиск следующего соответствия" при поиске в файлах очень назойливый.
- Поиск в файлах по умолчанию сводится к текущему документу.
- Быстрые ссылки зависают в релиз-кандидате Visual Studio 2019.
- PackageId:MsSqlCmdLnUtils;PackageAction:Install;ReturnCode:1603;.
- В списке ошибок не отображаются ошибки, так как его область ограничена текущим документом.
- Невозможно использовать условную точку останова в значении PropertyInfo.Name.
- Происходит сбой Visual Studio при анализе макросов в конце файла.
- Поиск в Visual Studio 2019 очень медленный.
- Visual Studio зависает при запуске отладки.
- vdproj не поддерживается в релиз-кандидате Visual Studio 2019.
- Приветственное изображение китайской версии Visual Studio Installer содержит оскорбительный элемент.
- Предварительные требования к расширению VSIX были удалены в релиз-кандидате Visual Studio 2019, что нарушило совместимость расширений.
- При создании проекта с начального экрана игнорируется выбранная папка проекта.
- Свойства cpp в диалоговом окне не отображаются при использовании пункта меню "Проект" или выборе раскрывающегося списка "Управление конфигурацией".
- Visual Studio 2019 Build Tools — командная строка разработчика называется "Командная строка разработчика для Visual Studio 2017".
- Немецкий перевод средства обратной связи: "Справка" > Отправить отзыв" > Сообщить о проблеме".
- 自动完成功能,如果双击候选项,会丢失输入焦点,需要单机编辑器才能继续输入 — если дважды щелкнуть релиз-кандидат, функция автозаполнения потеряет фокус ввода и для продолжения потребуется автономный редактор.
- Контекстные меню в конфигурации с несколькими мониторами иногда размещаются на неправильном мониторе.
- Visual Studio 2019 конфликтует с QQ Pinyin.
- Не удается перетащить развернутое окно Visual Studio.
- Нарушение доступа в C++/CLI 15.9.5 для последнего черновика стандарта ISO C++, начиная с версии 15.9.5.
- Модальное диалоговое окно хода выполнения остается открытым, хотя уже можно выполнять действия в IDE ("Подготовка решения", "Создание проекта", "Изменение и продолжение" и т. д.).
- PackageId:OpenJDKV1;PackageAction:Uninstall;ReturnCode:0;.
- Visual Studio 2019 — инструментарий постоянно отображает надпись "Инициализация".
- IntelliSense в файлах Razor (.cshtml) не работает..
- Сравнение схем SSDT не выделяет различия в файлах.
- Исключение в Visual Studio при открытии CSHTML-файлов Razor.
- Не удается инициализировать расширение.
- Asp Core: создание представления отображает ошибку.
- Релиз-кандидат Visual Studio 2019 — не удается создать Winforms (.NET Core) — множество ошибок.
- Ссылки проектов не загружаются после переключения ветви.
- Ошибка формирования шаблонов: для этого элемента нет шаблонов.
- Загрузка конфигурации работает только до завершения первой установки.
- Раскрывающийся список "Тип проекта": частичное скрытие текста при использовании "Увеличить текст".
- Неверная локализация.
- Окно свойств в конструкторе Forms отображает вертикальную полосу прокрутки без ползунка перетаскивания с автоматическим масштабированием на 4K-дисплее в версии-кандидате Visual Studio 2019.
- Автозавершение Razor работает до нажатия клавиши TAB или ВВОД, после чего используется HTML.
- VSIXInstaller.exe случайным образом аварийно завершает работу при последовательной установке нескольких расширений в релиз-кандидате 1 Visual Studio 2019.
- При перемещении "}" Visual Studio аварийно завершает работу.
- В Visual Studio 2019 Preview 3 и Preview 4 отключен пользовательский интерфейс Telerik для элементов управления WPF.
- Необработанное исключение System.OperationCanceledException.
- Релиз-кандидат Visual Studio 2019 аварийно завершает работу при запуске, если используется сторонний редактор метода ввода (QQ Pinyin, Google IME).
- В Visual Studio 2019 Preview 4 происходит сбой, если закрыть незакрепленное окно.
- Ошибка Intellisense: инициализация статического контекспра C++11 приводит к тому, что "член не может быть инициализирован".
- Команда "Удалить из списка" на странице запуска перестает работать.
- $(VCIDEInstallDir) — недопустимый путь. Отсутствует обратная косая черта в Microsoft.Cpp.Common.props.
- В Visual Studio 2019 Preview 2.0 и более поздних версиях происходит сбой при открытии фильтра решений.
- Панель управления расширениями порождает исключение.
- Тест компилятора для конфигурации CMake завершается сбоем из-за LLVM/clang-cl
- SSDT: исправление для повышения производительности решений загрузки с несколькими проектами.
- SSDT. Исправление для файлов SQL не всегда удаляется при выполнении сравнения схем между базой данных и проектом, а затем выполняется таблица удаления.
- SSDT: исправления специальных возможностей для улучшения возможностей экранирования.
- SSDT: заменен старый драйвер sqlncli новым драйвером Microsoft ODBC для SQL Server.
- Устранена проблема с медленной перезагрузкой множества проектов C# и Visual Basic.
- При наличии IntelliSense когда пользователь нажимает SHIFT + ВВОД, выделенные элементы заполняются и вставляется новая строка.
- Устранена проблема учета каждого монитора (PMA), из-за которой подсказки редактора и лампочка отрисовывались некорректно.
- Уведомления о сбоях, вызванных расширениями, теперь снова отображаются.
- Уведомления о производительности Visual Studio защищены от незаконного изменения.
- Устранена проблема с отрисовкой панели инструментов при перетаскивании между дисплеями.
- Устранена проблема с отрисовкой окна "Сервис" > "Параметры" при включенном учете каждого монитора.
- Разные классы DpiHelper устарели (расширяемость).
- Исправлено масштабирование экрана-заставки для лучшего соответствия основному коэффициенту масштабирования монитора.
- Устранена проблема с импортом параметров, из-за которой предупреждения и ошибки не всегда сообщались верно.
- Устранена проблема, из-за которой окно "Сервис" > "Параметры" сообщало о программной отрисовке вне зависимости от уровня отрисовки.
- Устранена проблема, из-за которой имя открытой папки не отображалось в области заголовка окна.
- Устранена проблема с позиционированием поиска в файлах при включенном учете каждого монитора.
- Устранена проблема с отрисовкой графических элементов закрепления при включенном учете каждого монитора.
- Теперь вы можете использовать отладку с переходом по времени в отладчике моментальных снимков для приложений ASP.NET, работающих на виртуальной машине Azure. Обратите внимание, что эта возможность на момент выпуска может работать не во всех регионах Azure.
- Формирование шаблонов Dockerfile в Средствах Visual Studio для Kubernetes теперь использует Реестр контейнеров Майкрософт вместо Центра Docker.
- В Средствах Visual Studio для Kubernetes устранена проблема, из-за которой изменение Dockerfile.develop не приводит к повторному развертыванию службы.
- В Средствах Visual Studio для Kubernetes устранена проблема, из-за которой могла не запускаться служба в проекте Azure Dev Spaces.
- В Средствах Visual Studio для Kubernetes устранена проблема, из-за которой служба в проекте Azure Dev Spaces прекращает работу после прекращения отладки в Visual Studio.
- В Средствах Visual Studio для Kubernetes устранена проблема, из-за которой при выборе учетных записей в диалоговом окне Azure Dev Spaces иногда отображается диалоговое окно ошибки пустой ссылки.
- В Средствах Visual Studio для Kubernetes устранена проблема, из-за которой при добавлении поддержки оркестрации Kubernetes отображается диалоговое окно выбора кластеров.
- Устранена проблема с отрисовкой мастера импорта и экспорта параметров при включенном учете каждого монитора.
- Исправлен размер диалогового окна создания проекта при включенном учете каждого монитора.
- Внесен ряд визуальных усовершенствований окна запуска.
Известные проблемы
Просмотрите все существующие известные проблемы и доступные решения в Visual Studio 2019 версии 16.0, перейдя по ссылке ниже.
Отзывы и предложения
Мы будем рады узнать ваше мнение! Вы можете сообщить о проблемах, щелкнув пункт Сообщить о проблеме в правом верхнем углу установщика или самой IDE-среды Visual Studio. Значок находится в правом верхнем углу. Вы можете предлагать для продукта новые функции, задавать вопросы, находить ответы и отслеживать решение своих проблем в сообществе разработчиков Visual Studio. Кроме того, вам доступна бесплатная поддержка в чате по вопросам с установкой.
Блоги
Воспользуйтесь аналитикой и рекомендациями с сайта Developer Tools Blogs. Там вы найдете актуальные сведения обо всех новых выпусках и сможете читать публикации с подробным анализом самых разных функций.
Журнал заметок о выпуске Visual Studio 2019
Дополнительные сведения о предыдущих версиях Visual Studio 2019 см. на странице Журнал заметок о выпуске Visual Studio 2019.