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


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



Примечание.

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



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

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

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

Сохраняется поддержка пользователей Enterprise и Professional для Visual Studio 2017 версии 15.0, и они будут получать исправления уязвимостей системы безопасности до конца января 2020 г. Этот период основан на том, что в октябре 2018 г. Visual Studio 2017 версии 15.9 была определена как последняя базовая версия продукта Visual Studio 2017. Последнюю наиболее защищенную версию Visual Studio 2017 можно получить в разделе скачивания на сайте my.visualstudio.com.  Дополнительные сведения о базовых версиях Visual Studio см. в статье о политике поддержки Visual Studio 2017

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


История выпусков


Release Notes IconVisual Studio 2017 версии 15.0 (26228.102)

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

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

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, где проводится более строгая проверка имен подмодулей.


Release Notes IconVisual Studio 2017 версии 15.0 (26228.98)

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

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

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

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


Release Notes IconVisual Studio 2017 версии 15.0 (26228.96)

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

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

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

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


Release Notes IconVisual Studio 2017 версии 15.0 (26228.92)

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

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

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

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

Дополнительные сведения см. в статье XOML .


Release Notes IconVisual Studio 2017 версии 15.0 (26228.88)

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

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


Release Notes IconVisual Studio 2017 версии 15.0 (26228.84)

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

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

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

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


Release Notes IconVisual Studio 2017 версии 15.0 (26228.76)

Выпущено 12 марта 2019 г.

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

CVE-2019-9197 Уязвимость при удаленном выполнении кода в редакторе Unity

Удаленное выполнение кода доступно в редакторе Unity — сторонней программе, которую Visual Studio предлагает установить в рамках рабочей нагрузки "Разработка игр с Unity". Если вы установили Unity из Visual Studio, обновите Unity до версии, в которой исправлена уязвимость, описанная в CVE. Служба Visual Studio Installer обновлена и предлагает установить редактор Unity версии, в которой исправлена уязвимость.


Release Notes IconVisual Studio 2017 версии 15.0 (26228.73)

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

Уведомления с советами по безопасности Visual Studio 2017 версии 15.0

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

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

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

CVE-2019-0657 Уязвимость спуфинга в .NET Framework и Visual Studio

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


Release Notes IconVisual Studio 2017 версии 15.0 (26228.64)

Выпущено 11 декабря 2018 г.

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

  • У пользователей Azure DevOps, в именах проектов или репозиториев которых есть пробелы, будут возникать ошибки при клонировании или публикации в Team Explorer.

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

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

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


Release Notes IconVisual Studio 2017 версии 15.0 (26228.57)

Выпущено 10 октября 2018 г.

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

CVE-2018-8292 Уязвимость раскрытия информации .NET Core

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


Release Notes IconVisual Studio 2017 версии 15.0 (26228.52)

выпущено 28 августа 2018 г.

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


Release Notes IconVisual Studio 2017 версии 15.0 (26228.49)

Выпущено 14 августа 2018 г.

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

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

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


Release Notes IconVisual Studio 2017 версии 15.0 (26228.46)

Выпущено 2 августа 2018 г.

Сводка обновлений в этом выпуске

  • Этот выпуск теперь включает установку Java™ Development Kit 8 с обновлением 181 (JDK версии 8u181).

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

CVE-2018-8356 Уязвимость обхода функций безопасности .NET Core

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


Release Notes IconVisual Studio 2017 версии 15.0 (26228.43)

Выпущено 10 июля 2018 г.

Уведомления с советами по безопасности Visual Studio 2017 версии 15.0

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

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

CVE-2018-8260 Уязвимость при удаленном выполнении кода на платформе .NET

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

CVE-2018-8232 Уязвимость незаконного изменения макроассемблера .NET Microsoft

Уязвимость незаконного изменения была связана с тем, что макроассемблер Microsoft неправильно проверял код. Это обновление для системы безопасности устраняет уязвимость, гарантируя, что макроассемблер Microsoft будет правильно проверять логику кода.

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

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


Release Notes IconVisual Studio 2017 версии 15.0 (26228.37)

Выпущено 31 мая 2018 г.

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

CVE-2018-11235 Советы по безопасности Майкрософт для устранения уязвимости системы безопасности в Git

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


Release Notes IconVisual Studio 2017 версии 15.0 (26228.31)

выпущено 26 апреля 2018 г.

Сводка обновлений в этом выпуске

  • Мы выполнили обновление до пакета Java™ Development Kit 8, обновление 172 (версия JDK 8u172).

Release Notes IconVisual Studio 2017 версии 15.0 (26228.30)

выпущено 10 апреля 2018 г.

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

CVE-2018-1037 Рекомендации по обеспечению безопасности от корпорации Майкрософт в отношении уязвимости раскрытия информации Microsoft Visual Studio

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

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

Обновления системы безопасности устраняют эту уязвимость, исправляя способ создания файлов PDB при компиляции проекта.


Release Notes IconVisual Studio 2017 версии 15.0 (26228.29)

выпущено 13 марта 2018 г.

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

CVE-2018-0875 Советы по обеспечению безопасности Майкрософт для .NET Core

Майкрософт известно об уязвимости в общедоступных версиях .NET Core, когда вредоносный файл или веб-запрос могут вызвать атаку типа "отказ в обслуживании" (DoS).

  • Системным администраторам рекомендуется обновить свои среды выполнения .NET Core до версий 1.0.10, 1.1.7 или 2.0.6. Разработчикам рекомендуется обновить пакет SDK для .NET Core до версии 1.1.8 или 2.1.101.

Release Notes IconVisual Studio 2017 версии 15.0 (26228.26)

выпущено 21 февраля 2018 г.

Сводка обновлений в этом выпуске

Поддержка TLSv1.2 в Team Explorer. Мы обновили компоненты Git и Git Credential Manager, которые предоставляются в Visual Studio. Дополнительный компонент Git для Windows также обновлен. Это обновление позволяет Git подключаться к службам, которые больше не поддерживают TLSv1 и TLSv1.1, но поддерживают TLSv1.2.


Release Notes IconVisual Studio 2017 версии 15.0 (26228.23)

выпущено 2 февраля 2018 г.

Сводка обновлений в этом выпуске

  • В компилятор MSVC добавлена поддержка параметра /Qspectre, который автоматически ставит барьер на упреждающее выполнение, если компилятор обнаруживает экземпляры первого варианта Spectre. Дополнительные сведения о /Qspectre см. в блоге команды разработчиков Visual C++.
  • Версия JDK обновлена до 8u161 для устранения ошибок скачивания.

Release Notes IconVisual Studio 2017 версии 15.0 (26228.21)

Выпущено 9 января 2018 г.

Уведомления с советами по безопасности Visual Studio 2017 версии 15.0

CVE-2018-0786 Обход функции безопасности при проверке сертификата X509

Корпорация Майкрософт выпускает этот совет по безопасности, чтобы предоставить сведения об уязвимости в общедоступных версиях .NET Core 1.0, 1.1 и 2.0. Он также включает указания для разработчиков по корректному обновлению их приложений. Совет по безопасности также относится к .NET Native для универсальной платформы Windows (UWP).

Корпорации Майкрософт известно об уязвимости в общедоступных версиях .NET Core, позволяющей злоумышленнику предоставить сертификат, который помечен как недопустимый для определенного использования, но при этом используется для этой цели каким-то компонентом. Такое действие игнорирует теги расширенного использования ключа.

Обновление для системы безопасности устраняет уязвимость, заставляя компоненты .NET Core проверять сертификаты полностью. Рекомендуем системным администраторам обновить свои среды выполнения .NET Core до версий 1.0.9, 1.1.6 и 2.0.5. Разработчикам рекомендуется обновить пакет SDK для .NET Core до версии 2.1.4 или 1.1.7.

CVE-2018-0764 Отказ в обслуживании при синтаксическом разборе XML-документов

Корпорация Майкрософт выпускает этот совет по безопасности, чтобы предоставить сведения об уязвимости в общедоступных версиях .NET Core 1.0, 1.1 и 2.0. Он также включает указания для разработчиков по корректному обновлению их приложений.

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

Обновление устраняет уязвимость, исправляя способ обработки XML-документов в .NET Core. Рекомендуем системным администраторам обновить свои среды выполнения .NET Core до версий 1.0.9, 1.1.6 и 2.0.5. Разработчикам рекомендуется обновить пакет SDK для .NET Core до версии 2.1.4 или 1.1.7.


Release Notes IconVisual Studio 2017 версии 15.0 (26228.18)

выпущено 6 декабря 2017 г.

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

Корпорация Майкрософт выпустила советы по безопасности для ASP.NET Core. Дополнительные сведения можно найти в соответствующих объявлениях в репозитории ASP.NET Core. Обратите внимание на следующее.

CVE-2017-8700 Обход CORS может привести к раскрытию информации

В ASP.NET Core 1.0 и 1.1 существует уязвимость, из-за которой можно обойти CORS, что приведет к раскрытию сведений. Новые проекты, созданные с помощью ASP.NET Core 1.0 и ASP.NET Core 1.1, теперь будут использовать версии пакетов, включающие указанное выше обновление для системы безопасности. В существующих проектах пользователи могут обновить пакеты до более новых версий в диалоговом окне "Управление пакетами NuGet".


Release Notes IconVisual Studio 2017 версии 15.0 (26228.17)

выпущено 14 ноября 2017 г.

Уведомления с советами по безопасности Visual Studio 2017 версии 15.0

Корпорация Майкрософт выпустила советы по безопасности для .NET Core и ASP.NET Core. Дополнительные сведения можно найти в соответствующих объявлениях в репозиториях .NET Core и ASP.NET Core. Обратите внимание на следующее.

CVE-2017-8585 Неверно сформированный сертификат может привести к отказу в обслуживании

В .NET Core 1.0, 1.1 и 2.0 существует уязвимость, из-за которой неправильно сформированный сертификат или другие форматируемые данные ASN.1 могут привести к отказу в обслуживании из-за бесконечного цикла в Linux и macOS. Системным администраторам рекомендуется обновить среды выполнения .NET Core до версий 1.0.8, 1.1.5 и 2.0.1. Разработчикам рекомендуется обновить пакет SDK для .NET Core до версии 2.0.3 или 1.1.5.

CVE-2017-8700 Обход CORS может привести к раскрытию информации

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

CVE-2017-11879 Открытое перенаправление может привести к несанкционированному повышению привилегий

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

CVE-2017-11770 Уязвимость отказа в обслуживании

В ASP.NET Core 1.0, 1.1 и 2.0 существует уязвимость, из-за которой приложение размещается через Http.Sys в Windows, где неправильно сформированный запрос может привести к отказу в обслуживании. Новые проекты, созданные с помощью ASP.NET Core 1.0 и ASP.NET Core 1.1, теперь будут использовать версии пакетов, включающие указанные выше обновления для системы безопасности. В существующих проектах пользователи могут обновить пакеты до более новых версий в диалоговом окне "Управление пакетами NuGet".


Release Notes IconVisual Studio 2017 версии 15.0 (26228.16)

выпущено 18 сентября 2017 г.

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


Release Notes IconVisual Studio 2017 версии 15.0 (26228.13)

выпущено 23 мая 2017 г.

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

Для автономной установки больше не требуется доступ к Интернету.


Release Notes IconVisual Studio 2017 версии 15.0 (26228.12)

выпущено 31 марта 2017 г.

Сводка обновлений в этом выпуске

Мы теперь поддерживаем инструменты и API Xcode 8.3, iOS 10.3, watchOS 3.2 и tvOS 10.2 в Xamarin.VS Extension для Visual Studio 2017.


Release Notes IconVisual Studio 2017 версии 15.0 (26228.10)

выпущено 28 марта 2017 г.

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

Эти проблемы, о которых сообщили клиенты, исправлены в сборке 26228.10.


Release Notes IconVisual Studio 2017 версии 15.0 (26228.09)

выпущено 14 марта 2017 г.

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

Эти проблемы, о которых сообщили клиенты, исправлены в сборке 26228.09:


Release Notes IconVisual Studio 2017 версии 15.0 (26228.04)

выпущено 7 марта 2017 г.

Сводка обновлений в этом выпуске

Разработка: используйте возможности среды для удобной навигации и быстрого написания и исправления кода

  • Новые возможности установки — уменьшено минимальное занимаемое место для ускоренной установки с расширенными возможностями настройки, а также добавлена поддержка автономных установок.
  • Интегрированная среда разработки Visual Studio обеспечивает множество усовершенствований в Visual Studio 2017, включая ускоренный запуск и загрузку решения, улучшения входа и удостоверений, улучшенную навигацию по коду, представление открытых папок и подключенные службы, позволяют устанавливать подключение между приложением и любой локальной или облачной службой.
  • Критические изменения в Visual C++ в версиях 2015–2017 отсутствуют. Улучшенный уровень согласованности C++14, поддержка CMake, ускоренная сборка и производительность в редакторе.
  • C# и Visual Basic — расширена поддержка возможностей языка C# 7.0 и Visual Basic 15, а также добавлены новые процедуры рефакторинга, позволяющие организовать исходный код одним действием.
  • Поддержка F# для возможностей языка F# 4.1, усовершенствования компилятора F# и FSharp.Core, а также новый редактор на базе Roslyn Workspaces.
  • JavaScript и TypeScript — TypeScript 2.1 доступен для всех проектов TypeScript в Visual Studio. Доступна новая языковая служба JavaScript, которая включена по умолчанию.

Отладка: легкая отладка, профилирование и диагностика кода

Отладка и диагностика — пересмотрен помощник по исправлению ошибок и ускорена навигация по коду с помощью функции Run to Click. Кроме того, появилась новая сводка событий приложений в окне средств диагностики и внесено несколько улучшений в средство ЦП.

Тестирование: пишите высококачественный код с помощью комплексных инструментов тестирования

  • Динамическое модульное тестирование теперь позволяет взуализировать результаты модульного тестирования и объема протестированного кода прямо в редакторе.
  • Средства тестирования обеспечивают связь автоматизации с рабочими элементами тестового случая с помощью обозревателя тестов.

Совместная работа. Система управления версиями делает разработку гибкой, а совместную работу — эффективной.

  • Новые функции Git в Team Explorer и обновление возможностей подключения обеспечивают эффективность работы с Git в Visual Studio 2017 и позволяют легко находить проекты и репозитории, к которым необходимо подключиться.
  • Улучшенный рабочий процесс отправки отзывов о Visual Studio теперь предлагает более удобный для совместной работы процесс создания отчета о проблеме. Выполняйте поиск, подписывайтесь и голосуйте для получения последних обновлений по всем отзывам.

Расширение. Разработка собственных расширений для настройки в соответствии со своими потребностями.

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

Инструменты: используйте средства повышения производительности и исследуйте новые возможности.

  • .NET Core и ASP.NET Core. Окончательный выпуск средств .NET Core 1.0 на базе MSBuild. С помощью Visual Studio 2017 можно создать библиотеки .NET Standard, приложения и библиотеки .NET Core и веб-проекты ASP.NET, использующие новый формат CSPROJ.
  • Средства для разработки универсальных приложений Windows. Сюда входят обновления для цепочки инструментов .NET Native, платформа NuGet для .NET Core, новые средства для повышения производительности и поддержка пакета SDK для обновления Windows 10 для дизайнеров.
  • Xamarin. В Xamarin 4.3 добавлена поддержка tvOS, улучшена поддержка каталога ресурсов iOS и возможности редактирования XML.
  • Инструменты Visual Studio для Apache Cordova. Новый симулятор на базе браузера позволяет быстро писать код и сразу же просматривать результаты.
  • Инструменты Node.js для Visual Studio. Упор сделан на стабильность, производительность и качество продукта.
  • Инструменты Visual Studio для Unity. Инструменты Visual Studio для Unity 3 теперь доступны вместе с рабочей нагрузкой "Разработка игр с помощью Unity" в новом установщике Visual Studio.
  • Redgate Data Tools. Для разработки баз данных SQL с помощью DevOps в Visual Studio включены инструменты Redgate Data Tools, которые включают Redgate ReadyRoll Core, SQL Search и SQL Prompt Core.
  • NuGet. Теперь NuGet поддерживает хранение сведений о зависимостях пакета непосредственно в файлах проекта в качестве ссылок на пакет, а также возможности переходных ссылок на пакет.
  • Средства для приложений XAML. Панель инструментов среды выполнения XAML теперь позволяет отслеживать фокус. Производительность XAML улучшена за счет операции "Изменить и продолжить" XAML, усовершенствований редактора XAML и оптимизации производительности.
  • SQL Server Data Tools. Последняя версия SQL Server Data Tools обеспечивает поддержку новых функций базы данных SQL Azure и SQL Server 2016.
  • Средства анализа для разработчиков. Visual Studio 2017 включает в себя средства анализа для разработчиков версии 8.6 с множеством улучшений функций Application Insights и HockeyApp в Visual Studio.
  • Инструменты разработчика Office для Visual Studio. В состав входят инструменты разработчика Office с последними функциями и обновлениями.
  • Динамическая проверка зависимостей архитектуры. Уведомления в реальном времени для схем проверки зависимостей (которые также называются схемами слоев).
  • Командная строка разработчика. Оптимизация скриптов для поддержки нового процесса установки.
  • Пакет Azure SDK для .NET. Теперь этот пакет доступен в новом установщике Visual Studio.

Подробные сведения о новых возможностях в версии 15.0 (26228.04)

What's New in This Release IconСведения о Visual Studio 2017 версии 15.0 (26228.04)

выпущено 7 марта 2017 г.

Возможности установки

Мы рады представить наш новый установщик, который был разработан с нуля для решения следующих задач:

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

При первой установке Visual Studio 2017 вы увидите внесенные изменения (рис. 1).

The new installation experience in Visual Studio 2017
Рис. 1. Новый интерфейс установки в Visual Studio 2017

Минимальная установка занимает всего несколько сотен мегабайт, но по-прежнему обеспечивает набор базовых инструментов для редактирования кода более чем на 20 языках, а также управление исходным кодом. Большинству пользователей потребуется выполнить установку, которая занимает больше места. Вы можете добавить одну или несколько рабочих нагрузок, которые представляют распространенные платформы и языки — от разработки классических приложений для .NET до разработки игр на Unity.

Обновление Visual Studio

Чтобы обновить Visual Studio, запустите Visual Studio Installer и нажмите кнопку Обновить.

Отзывы о новом установщике

Сообщить о проблемах или выразить благодарность можно с помощью команд Сообщить о проблеме и Отправить предложение в новом клиенте установщика, которые находятся в правом верхнем углу строки меню. Мы хотим знать, возникают ли ошибки при установке, удалении или изменении установки, а также о нестандартном времени установки (например, зависаниях) или сообщениях о неожиданных ошибках.

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

Системные администраторы и другие пользователи теперь могут создавать автономный макет Visual Studio, который содержит все необходимое для установки продукта без доступа к Интернету. Этот макет может быть полной версией продукта, подмножеством рабочих нагрузок и/или компонентов, а также одним или несколькими языковыми стандартами продукта. Обратите внимание, что для создания автономного макета требуется доступ к Интернету. Дополнительные сведения см. в статье Create an offline installation of Visual Studio 2017 (Создание автономной установки Visual Studio 2017).

Псевдоним установки

Visual Studio Enterprise и Community (вместе с другими продуктами) теперь можно установить параллельно на одном компьютере. Чтобы упростить идентификацию этих установок, можно указать короткое имя или "псевдоним". Например, если вы сначала установили Visual Studio Enterprise, а затем Visual Studio Community, в меню "Пуск" оба этих продукта будут иметь одинаковое название. Второму продукту можно присвоить псевдоним, например "community", после чего пункты меню "Пуск" будут отображаться с такими именами, как "Visual Studio 2017 (community)" и "Командная строка разработчика для Visual Studio 2017 (community)".

Интегрированная среда разработки Visual Studio

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

  • Visual Studio была оптимизирована для сокращения времени запуска и загрузки решения. Первый запуск Visual Studio происходит по меньшей мере на 50 % быстрее.
  • Visual Studio теперь осуществляет мониторинг производительности расширений, которые влияют на запуск, загрузку решения и редактирование. На панели уведомлений в среде IDE будут отображаться оповещения о плохо работающих расширениях. Новый центр производительности (также доступный в разделе "Справка > Управление производительностью Visual Studio") позволяет не только просматривать влияющие на производительность расширения, но и находить окна средств, которые влияют на производительность при запуске, и изменять их поведение при загрузке.
  • Расширение GitHub для Visual Studio можно выбрать в новом установщике Visual Studio.
  • Для повышения производительности при переключении ветвей, не входящих в Visual Studio, команда "Перезагрузить все проекты" заменена на "Перезагрузить решение". Для максимального повышения производительности при переключении ветвей через командную строку Git после переключения ветки выберите команду "Перезагрузить решение".
  • Улучшены возможности подстановки файлов для проектов ASP.NET Core и .NET Core. Дополнительные сведения см. в разделе о подстановке файлов проекта.
  • Теперь после клонирования вы автоматически переходите к представлению папки репозитория. Вы можете просмотреть файлы или открыть решения с помощью нового списка выбора решения в обозревателе решений.
  • Добавлен новый узел внешней службы, который заменит VSHub. Он представляет собой внешний процесс и отображается в диспетчере задач как ServiceHub.Host.CLR.*.exe, а также ServiceHub.Host.Node.x86.exe. Этот узел в конечном итоге устранит HTTP-трафик локального узла, который возник с появлением VSHub. Это должно снизить шум, о котором сообщают пользователи Fiddler.
  • В сообщениях об истечении срока действия лицензии на предварительную версию более четко отражается текущее состояние лицензии.
  • Теперь диалоговое окно "Параметры учетной записи" стало более удобным при использовании средств чтения с экрана.
  • Теперь можно использовать автономную справку, установив компонент окна справки в установщике Visual Studio.
  • Теперь вы можете добавить или удалить несколько языков пользовательского интерфейса в любое время с помощью установщика Visual Studio на вкладке "Языковые пакеты". Выбрать текущий язык пользовательского интерфейса из набора установленных языков можно в разделе "Инструменты" > "Параметры" > "Международные параметры".
  • Строка состояния системы управления версиями упрощает публикацию локальных репозиториев на узле SCC и отслеживание незафиксированной (рис. 2)и неотправленной (рис. 3) работы.
Version Control - Unpublished commits example
Рис. 2. Управление версиями — пример неопубликованных фиксаций
Version Control - No pending changes example
Рис. 3. Управление версиями — пример отсутствия ожидающих изменений

Усовершенствования в рамках процедуры входа и идентификации

Представлена новая служба идентификации, позволяющая использовать одни и те же учетные записи пользователя в разных средствах Майкрософт для разработчиков. В среде Visual Studio этим охватываются Team Explorer, Azure Tools, публикация в Магазине Windows и многое другое. Теперь для всех этих компонентов действует единая система входа.

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

Начальная страница

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

  • получите удаленные репозитории из VSTS или используйте наше более показательное меню последних выбранных файлов, чтобы легко открывать локальные проекты и решения;
  • В списке последних выбиравшихся файлов на начальной странице отображаются репозитории, которые вы клонировали на других компьютерах, так что их легко клонировать на текущий компьютер.
  • создайте проект непосредственно с начальной страницы с помощью шаблонов, поддерживающих поиск, и списка недавно используемых шаблонов; Недавно использовавшиеся шаблоны также передаются между экземплярами Visual Studio с помощью персонализированной учетной записи.
  • Быстрый запуск нового клона из VSTS командой Checkout from VSTS (Извлечь из VSTS) на начальной странице.
  • Раздел "Начало работы", который можно скрыть.
  • Раздел "Новости" теперь сворачиваем:
    • Обновленный значок на добавленных элементах в канале новостей.
    • Отображение значка на расширителе канала новостей (свернутого) при появлении новых элементов.
  • Улучшенный дизайн, устраняющий проблему с усечением элементов на небольших экранах и оптимизирующий использование пустого пространства.

Новая начальная страница показана ниже (рис.4).

Start Page with Get Started and News
Рис. 4. Начальная страница с разделами "Начало работы" и "Новости"

Улучшенная навигация по коду

В Visual Studio 2017 мы существенно усовершенствовали навигацию по коду.

  • Команда "Перейти ко всем" (Ctrl+ или Ctrl+ T) позволяет быстро находить файлы, типы, методы и другие элементы в коде и переходить к ним. С ее помощью можно найти любой элемент даже в крупных базах кода. Более того, если вы знаете, какой элемент вам нужен, вы легко сможете отфильтровать код. В C#, Visual Basic и F# добавлена возможность "нечеткого" сопоставления. Таким образом, сделав опечатку в имени типа, вы все равно сможете его найти. Мы также улучшили функцию перехода к строке (Ctrl + G). Группа команд перехода находится вверху меню "Правка" (рис. 5) и (рис. 6).
Go To Results Filtered
Рис. 5. Переход к отфильтрованным результатам
Go To Line
Рис. 6. Переход к строке
  • Полностью переработана команда "Найти все ссылки" (SHIFT+F12) (сейчас доступна для C#, Visual Basic, F# и С++). Теперь эта команда позволяет группировать, фильтровать, сортировать ссылки, выполнять поиск по ссылкам и выделять результаты цветом (для C# и Visual Basic). С ее помощью вы сможете четко понять структуру ссылок и уверенно перейти к нужной строке кода. При наведении указателя мыши на элемент ссылки отображается подсказка с контекстом ссылки в исходном коде (для C# и VB). Если включить кнопку "Сохранить результаты" на панели инструментов, при следующем вызове функции "Найти все ссылки" результаты выводятся в новом окне. Это позволяет сохранить текущие результаты в открытом окне (рис. 7).
Find All Reference
Рис. 7. Поиск всех ссылок
  • В редакторе теперь отображаются направляющие структуры, что позволяет легко визуализировать структуру кода, с которым вы работаете. При наведении указателя мыши отображается подсказка (рис. 8) с контекстом текущего блока кода относительно его блоков-предков. Сейчас направляющие структуры поддерживаются для файлов C#, Visual Basic, F# и XAML, а также для всех файлов, поддерживаемых через грамматики TextMate. Эту функцию можно отключить в диалоговом окне "Инструменты" > "Параметры", сняв флажок Показать направляющие структуры в категории Текстовый редактор>Общие.
Structure Guide Lines
Рис. 8. Направляющие структуры

Поддержка соглашений о стиле написания кода с помощью EditorConfig

Редактор Visual Studio теперь поддерживает EditorConfig, что позволяет разработчикам определять и соблюдать единые соглашения о стиле написания кода между разными редакторами и интегрированными средами разработки. Дополнительные сведения см. в документации. Дополнительные сведения об управлении стилем кода .NET с помощью EDITORCONFIG-файлов см. в документации по .NET.

Открыть папку

Функция "Открыть папку" представляет удобный способ работы с базами кода без проектов и решений. Функцию "Открыть папку" меню можно просмотреть в строке меню, щелкнув Файл>Открыть>Папка, а затем выбрав папку для перехода. Вы можете открывать и редактировать файлы с помощью обозревателя решений (рис. 9). Многие популярные языки имеют выделение синтаксических конструкций и поддержку символьной навигации (GoTo).

The new Open Folder feature in Visual Studio IDE
Рис. 9. Новая функция "Открыть папку" в интегрированной среде разработки Visual Studio

Кроме того, некоторые языки имеют расширенную поддержку IntelliSense и отладки непосредственно из папки:

  • C++ (CMake);
  • Node.js — JavaScript или TypeScript;
  • C# и Visual Basic.

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

Представление папки также поддерживает следующие функции:

  • Поиск по коду в папке с помощью GoTo (Ctrl+).
  • Ограничение отображаемой информации в представлении папок обозревателя решений до вложенных папок.
  • Открытие папок в проводнике или командной строке из обозревателя решений.
  • Удобное переключение между решениями в открытой папке или репозитории при помощи раскрывающегося списка выбора решений.
  • Настройка параметров отладки и запуска с помощью launch.vs.json. Щелкните отлаживаемый файл правой кнопкой мыши и выберите "Параметры отладки и запуска".
  • Настройка задач и сборки с помощью tasks.vs.json. Щелкните любой файл правой кнопкой мыши и выберите "Configure Task Settings" (Настройка параметров задач).
  • Launch.vs.json и tasks.vs.json имеют IntelliSense в редакторе JSON.

Значительно повышена производительность при открытии папок и переключении между представлением папки и представлением решения.

Загрузка упрощенного решения

Загрузка упрощенного решения позволяет ускорить загрузку крупных решений. Для больших решений эта функция значительно улучшает время загрузки и использование памяти. Эта функция отключена по умолчанию и может быть включена как для отдельных решений, так и глобально — для всей интегрированной среды разработки. Чтобы включить ее глобально, перейдите в раздел "Инструменты" > "Параметры" и в разделе "Проекты и решения" выберите "Общие" (рис. 10) или выполните поиск строки "Lightweight Solution load" (Загрузка упрощенного решения) с панели быстрого запуска. Для отдельные решений функцию можно включить и отключить в области "Свойства решения".

The new Lightweight Solution load feature Visual Studio IDE
Рис. 10. Новая функция загрузки упрощенного решения в интегрированной среде разработки Visual Studio

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

Производительность полных сборок решения значительно улучшена и теперь не уступает обычной нагрузке решения.

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

Основываясь на поддержке, реализованной в Visual Studio 2015, в Visual Studio 2017 теперь поддерживается цветовая разметка синтаксических конструкций и автозаполнение для большего числа языков. Кроме того, некоторые из этих языков поддерживают навигацию с помощью команды "Перейти к" (Ctrl+) и (или) фрагментов кода.

Файлы для указанных ниже языков поддерживают эти функции в новом редакторе Visual Studio Core Editor, даже если не установлены рабочие нагрузки для явной поддержки этих языков. Если рабочая нагрузка, которая обеспечивает поддержку языка, установлена (например, рабочая нагрузка для разработки классических приложений на .NET, разработки классических приложений для Windows на C++ и т. д.), разработчикам может быть предоставлена более широкая поддержка в рамках конкретного языка, включая IntelliSense и другие дополнительные языковые возможности, например лампочки.

Типы языковых файлов, упорядоченные по уровню поддержки.

  • Поддерживает только цветовую настройку синтаксиса и автозавершение:
    • Bat, Clojure, CoffeeScript, CSS, Docker, F#, Groovy, INI, Jade, Javadoc, JSON, LESS, LUA, Make, Markdown ++, Objective-C, Perl, PowerShell, Python, Rust, ShaderLab, SQL, Visual Basic .NET, YAML.
  • Поддерживает фрагменты кода (помимо цветов синтаксиса и автозаполнение):
    • CMake, C++, C#, Go, Groovy, HTML, Java, Javadoc, JavaScript, Lua, Perl, PHP, R, Ruby, Shellscript, Swift, XML.
  • Поддерживает переход к (в дополнение к цветовике синтаксиса и автозаполнения):
    • C++, C#, Go, Java, JavaScript, PHP, TypeScript, Visual Basic.

Начало работы со страницами обзора проекта

Мы представили совершенно новые возможности начала работы для вновь создаваемых проектов. Мы заменили текущие страницы по началу работы на вкладку "Обзор" в нашем новом конструкторе конфигураций приложений и собрали на этой странице те действия, которые помогают быстрее приступить к работе. Эта функция была включена в проектах ASP.NET 4.x, ASP.NET Core и Cordova (рис. 11).

(Figure 11) Project Overview
Рис. 11. Обзор проекта

Подключение к службам с помощью Подключенных служб

В предыдущем выпуске этот компонент назывался "Возможности службы". Мы изменили его имя на "Подключенные службы".

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

При выборе службы на странице "Подключенные службы" (рис. 12) открывается мастер подключенных служб, который настраивает ваш проект и скачивает необходимые пакеты NuGet, чтобы вы могли начать процесс разработки для своей службы быстро и безболезненно.

Connected Services
Рис. 12. Подключенные службы

Приобретение инструментов и функций в продукте

Visual Studio 2017 позволяет легко получить дополнительные рабочие нагрузки, не выходя из интегрированной среды разработки (рис. 13). Используйте элемент "Быстрый запуск", чтобы найти и запустить установщик Visual Studio для любой рабочей нагрузки или отдельного компонента.

In-product acquisition through Quick Launch
Рис. 13. Приобретение через панель быстрого запуска в продукте

Если вам не удается найти нужные шаблоны, Visual Studio Installer можно также открыть из диалогового окна "Создание проекта" (рис. 14).

In-product Quick Launch dialogue
Рис. 14. Диалоговое окно быстрого запуска в продукте

Visual C++

В Visual Studio 2017 реализовано множество изменений и исправлений для среды Visual C++. Спасибо, что сообщаете нам об ошибках! Мы устранили более 250 ошибок и заявленных проблем в компиляторе и других инструментах. Информация о многих из этих ошибок поступила к нам от клиентов через Microsoft Connect. В этом выпуске мы работали над повышением производительности STL. По умолчанию теперь используется новое ядро СУБД на основе SQLite. Это позволяет ускорить операции базы данных, такие как переход к определению и поиск всех ссылок, а также значительно ускорить первоначальный анализ решения. Теперь предоставляется более точный контроль над процедурой установки исходной рабочей нагрузки C++. Мы добавили возможность выбора компонентов, чтобы вы могли устанавливать только необходимые инструменты. Поддержка CMake в Visual Studio готова к выходу! Загрузите свои проекты CMake непосредственно в Visual Studio и начинайте программировать. Функция "Открыть папку" C++ была улучшена. Теперь вы можете перенести исходный код в Visual Studio. Для этого не нужно создавать какие-либо решения и проекты Visual Studio. Теперь "Перейти к" является общим термином для набора новых фильтров навигации. Это позволит упростить поиск нужных результатов, особенно в больших базах кода.

Анализ кода C++

Средства проверки на соответствие кода C++ проверенным рекомендациям (C++ Core Checker) теперь распространяются вместе с Visual Studio. Просто включите средства проверки в диалоговом окне Code Analysis Extensions (Расширения анализа кода) на страницах свойств проекта (рис. 15), и расширения будут включены при выполнении анализа кода.

CppCoreCheck properties page
Рис. 15. Страница свойств CppCoreCheck

Компилятор C++

Мы обновили компилятор C++ и стандартную библиотеку, добавив расширенную поддержку функций C++11 и C++14, а также предварительную поддержку некоторых функций, которые должны появиться в стандарте C++17. Благодаря поддержке обобщенного constexpr и NSDMI для статистических выражений компилятор готов к использованию функций, добавленных в стандарте C++14. Обратите внимание, что в компиляторе по-прежнему отсутствует несколько функций из стандартов C++11 и C++98. В Visual Studio 2017 можно использовать /sdl с /await. Мы удалили ограничение /rtc для соподпрограмм.

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

  • Улучшенное создание кода циклов: поддержка автоматической векторизации деления целочисленных констант, улучшенное распознавание последовательностей memset.
  • Повышенная защищенность кода: улучшенное создание диагностики компилятора при переполнении буфера. Параметр /guard:cf теперь обеспечивает защиту операторов switch, которые создают таблицы переходов.
  • Параметр /debug:fastlink улучшен, чтобы на 30 % ускорить компоновку крупных компонентов в сравнении с компоновкой в Visual Studio 2015.
  • При использовании совместных подпрограмм экспериментальное ключевое слово yield (в параметре /await) удалено. Обновите код, чтобы использовать co_yield. Дополнительные сведения см. в блоге команды разработчиков Visual C++.

Библиотеки C++

  • [STL] Повышение производительности basic_string.
  • [STL] Добавлены <any>, <string_view>, apply(), make_from_tuple().
  • [STL] std::vector был переработан для обеспечения правильной работы и производительности.
  • [STL] STL теперь избегает разыменования пустых (NULL) указателей.
  • [STL] Добавлены <optional>, <variant>, shared_ptr::weak_type и <cstdalign>.
  • [STL] Включен C++14 constexpr в min/max/minmax(initializer_list) и min_element/max_element/minmax_element().
  • [STL] Производительность конструкторов перемещения std::string/std::wstring повышена более чем в 3 раза
  • [STL] Полный список улучшений STL см. в блоге команды разработчиков Visual C++.
  • [ATL] Еще один набор исправлений соответствия поиска по имени.
  • [ATL] Имеющиеся конструкторы перемещения и операторы присваивания перемещения теперь правильно помечены как не предусматривающие формирование исключений.
  • [ATL] Отменено отключение допустимого предупреждения C4640 о потокобезопасной инициализации локальных статических элементов в atlstr.h.
  • [ATL] Потокобезопасная инициализация локальных статических элементов была автоматически отключена в наборе инструментов XP при [использовании ATL и сборке библиотеки DLL]. Это больше не требуется. Если нужно отключить потокобезопасную инициализацию, в настройки проекта можно добавить /Zc:threadsafeinit-.
  • [AMP] Проведен аудит библиотеки и исправлены опечатки.
  • [VCRuntime] Новый заголовок cfguard.h для символов защиты потока управления.

IDE C++

Повышена производительность изменения конфигурации для проектов в машинном коде на C++ и проектов C++/CLI. При первой активации конфигурации решения процесс теперь будет работать быстрее, а все последующие активации будут происходить практически мгновенно.

По умолчанию теперь используется новое ядро СУБД на основе SQLite. Это позволяет ускорить операции базы данных, такие как переход к определению и поиск всех ссылок, а также значительно ускорить первоначальный анализ решения. Параметр был перемещен в меню "Инструменты" > "Параметры" > "Текстовый редактор" > "C/C++" > "Дополнительно" (ранее он был в разделе "...C/C++" > "Экспериментальные").

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

Другие обновления включают следующее:

  • Добавлена фильтрация ошибок и справка по ошибкам IntelliSense для списка ошибок (рис. 16). Теперь выполнить фильтрацию можно, просто щелкнув столбец ошибок (рис. 17). Кроме того, если щелкнуть конкретные ошибки или нажать клавишу F1, запустится поиск сообщения об ошибке в сети.
Error List
Рис. 16. Список ошибок
Error List Filtered
Рис. 17. Отфильтрованный список ошибок
  • Добавлена фильтрация пунктов списка элементов по виду (рис. 18).
Member List Filtered
Рис. 18. Отфильтрованный список элементов
  • Добавлена новая экспериментальная возможность, прогнозный IntelliSense, обеспечивающая фильтрацию содержимого списка элементов с учетом контекста.

  • Новый компонент пользовательского интерфейса, "Найти все ссылки", содержит информацию о том, выполняется ли чтение из переменной или запись в переменную, в результатах для кода C++.

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

  • Экспериментальные функции рефакторинга Изменить сигнатуру и Извлечь функцию теперь доступны по умолчанию.

  • Включена новая экспериментальная функция для проектов C++ — "Ускорение загрузки проекта". Когда вы в следующий раз откроете проект C++, он загрузится быстрее, а в последующий раз — очень быстро.

  • Улучшения в процедуре открытия папки. Изменяйте, собирайте и отлаживайте проект, отличный от MSBuild C++, загрузив источники с помощью функции "Открыть папку". Настройте процедуру с помощью следующих файлов JSON:

    • CppProperties.json используется для настройки работы с IntelliSense и браузером.
    • Tasks.vs.json используется для настройки этапов сборки.
    • Launch.vs.json используется для настройки процедуры отладки.
  • Для работы C++ IntelliSense не требуется создавать файл CppProperties.json в корневой папке. Кроме того, мы добавили новый раскрывающийся список, позволяющий пользователям легко переключаться между конфигурациями, предоставляемыми файлами CMake и CppProperties.json. Поддержка CMake в функции открытия папки. При открытии проектов CMake с помощью функции "Открыть папку" автоматически настраивается среда для редактирования, сборки и отладки C++.

  • Дальнейшая настройка поддерживается посредством файла CMakeSettings.json, который находится в одной папке с файлом CMakeLists.txt (рис. 19).

CMake Open Folder
Рис. 19. Открытие папки CMake

Рабочие нагрузки установки C++

  • Разработка классических приложений для Windows на C++:

    • Теперь предоставляется более точный контроль над процедурой установки исходной рабочей нагрузки C++. Мы добавили возможность выбора компонентов, чтобы вы могли устанавливать только необходимые инструменты. Обратите внимание, что в пользовательском интерфейсе установщика указаны неточные размеры установки для компонентов. Таким образом, общий размер занижен.

    • Чтобы успешно создавать проекты Win32 в рабочей нагрузке для разработки приложений на C++, необходимо установить набор средств и пакет SDK для Windows. Для этого следует установить рекомендуемые (выбранные) компоненты "Набор средств VC++ 2017 v141 (x86, x64)" и "Пакет SDK Windows 10 (10.0.14393)". Если необходимые средства не установлены, создание проектов завершится ошибкой, а мастер может зависнуть.

  • Разработка приложений для Linux на C++:

    • Популярное расширение, Visual C++ для разработки приложений Linux, теперь стало частью Visual Studio. В этой установке представлено все необходимое для разработки и отладки приложений C++, работающих в среде Linux.
  • Разработка игр на C++:

    • Доступны все возможности C++ для создания профессиональных игр на базе DirectX или Cocos2d.
  • Разработка мобильных приложений на C++ (для iOS и Android):

    • Теперь в Visual Studio можно создавать мобильные приложения для Android и iOS и отлаживать их.
  • Разработка с помощью универсальной платформы Windows:

    • C++ поставляется как дополнительный компонент для рабочей нагрузки разработки с помощью универсальной платформы Windows. Сейчас обновление проектов C++ следует выполнять вручную. При открытии проекта, ориентированного на v140 UWP, в Visual Studio 2017 следует выбрать набор инструментов платформы v141 на страницах свойств проекта, если у вас не установлена среда Visual Studio 2015.

Набор средств платформы Clang/C2

Набор инструментов Clang/C2, который поставляется с Visual Studio 2017, теперь поддерживает параметр /bigobj, который крайне важен для сборки больших проектов. Он также включает несколько важных исправлений как во внутренней, так и во внешней части компилятора.

C# и Visual Basic

Расширения языка

В этом выпуске добавлена поддержка возможностей языка C# 7.0 и Visual Basic 15, включая следующие:

Для C#:

Для Visual Basic:

  • Кортежи значений представляют поддержку языка для использования кортежей, чтобы временно группировать набор вводимых значений: Dim point As (x As Integer, y As Integer) = GetOffset().
  • Потребление возврата ByRef расширяет возможности языка, обеспечивая поддержку потребления функций и свойств из библиотек с возвратами ByRef.
  • Двоичные литералы и разделители цифровых групп обеспечивают представление двоичных чисел в машинном коде. Это чрезвычайно удобно для битовых масок и перечислений флагов: &B1001_0011.

Дополнительные сведения об этих и других предлагаемых расширениях языка, следите за нашей разработкой языков в статьях о C# и Visual Basic на сайте GitHub.

Быстрые действия и рефакторинг

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

  • Упрощение инициализации объектов с помощью инициализатора (рис. 20).
Use object initializer
Рис. 20. Использование инициализатора объекта
  • Перемещение объявлений переменных out внутрь с использованием новой функции C#7 (рис. 21).
Move out variable inline
Рис. 21. Перенос переменной out во встроенные
  • Упрощение проверок значений NULL и выражений Throw с помощью оператора объединения со значением NULL благодаря использованию новой функции C#7 (рис. 22).
Use throw expression with null-coalescing operator
Рис. 22. Использование выражения throw с оператором объединения со значением NULL
  • Перемещение типа в соответствующий файл. Извлечение типа из одного файла и помещение его в другой файл с таким же именем по одному щелчку Ctrl+.
  • Синхронизация файла и имени типа: если файл и имя типа не синхронизированы, можно воспользоваться Ctrl+.
  • Преобразование String.Format в строковую интерполяцию: это быстрое действие позволяет воспользоваться возможностью из языка C# 6.
  • Добавьте отсутствующий параметр case в параметр C# или в операцию выбора Visual Basic.
  • Преобразуйте свойство в метод и наоборот.
  • Добавление ссылки на пакет. Позволяет автоматически получить и установить пакет NuGet (и добавить using/Import) для неизвестного типа. Чтобы включить эту функцию, выберите "Инструменты" > "Параметры" > "Текстовый редактор" > [C# / Basic] > "Дополнительно" > "Предлагать директивы using для типов из ссылочных сборок"/"Предлагать директивы using для типов в пакетах NuGet".
  • Превратите асинхронные методы в синхронные там, где это применимо.
  • Поддержка неточного сопоставления при опечатках в указании типа.
Настройка рекомендаций по написанию кода и их применение

Взяв за основу поддержку EditorConfig в Visual Studio, при сотрудничестве с сообществом мы добавили параметры стиля кода .NET в формат файла. Это означает, что вы можете настроить соглашения о стиле кода в группе, вернуть их в систему управления версиями, после чего нарушения сразу же выводятся в редакторе по мере ввода текста разработчиками. Все параметры стиля кода можно просмотреть в файле EDITORCONFIG репозитория Roslyn или в документации. Параметры стиля кода конкретного компьютера по-прежнему можно настроить, выбрав "Инструменты" > "Параметры" > "Текстовый редактор" > [C# или Basic] > "Стиль кода". Эти правила переопределяются при конфликтах в EditorConfig.

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

  • Правила именования стилей.
  • Использование var или явных типов.
  • Использование this. или Me. при доступе к членам.
  • Используйте тела выражений или блоков.
  • Используйте сопоставление шаблонов для проверок cast и null.
  • Используйте явные имена кортежей.
  • Упростите проверку значений NULL, используя выражения throw, условные делегаты, выражения объединения и распространение значений NULL.
  • Требуются фигурные скобки.

Примечание. Некоторые из этих правил по стилю кода настраиваются по умолчанию в качестве предложений в редакторе (рис. 23).

Configure code style preferences and enforcement from EditorConfig
Рис. 23. Настройка параметров стиля кода и принудительное использование EditorConfig

Улучшения в технологии IntelliSense

В этом выпуске также представлены усовершенствования IntelliSense, которые позволят писать код продуктивнее при работе над большим решением или с незнакомой кодовой базой. Мы добавили в IntelliSense область значков, которая позволяет фильтровать список членов по типу (например, методы, свойства, классы и т. д.). Каждый переключатель фильтра имеет связанное сочетание клавиш, которое можно увидеть при наведении курсора на значок. Чтобы включить эту функцию, выберите в меню Сервис>Параметры>Текстовый редактор>[C# или Basic]>IntelliSense и включите параметры фильтрации и выделения (рис. 24).

IntelliSense Completion Filtering
Рис. 24. Фильтрация завершения IntelliSense

Другие усовершенствования редакторов

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

F#

Поддержка возможностей языка F# 4.1

  • Кортежи структур, взаимодействующие с кортежами C# 7/VB 15.
  • Возвраты Byref, поддерживающие потребление возвратов ссылок C# 7.
  • Поддержка записи структуры с помощью атрибута [<Struct>]. Автор: Уилл Смит (Will Smith).
  • Поддержка размеченного объединения структуры с атрибутом [<Struct>].
  • Новый тип Result<'TSuccess, 'TFailure> с вспомогательными функциями в FSharp.Core. Автор: Оскар Гевалли (Oskar Gewalli).
  • Ключевое слово fixed, которое поддерживает закрепление ссылочной переменной в памяти.
  • Символы подчеркивания в числовых литералах. Автор: Ави Авни (Avi Avni).
  • Аргументы атрибута сведений о вызывающем объекте. Авторы: Линкольн Аткинсон (Lincoln Atkinson) и Ави Авни (Avi Avni).
  • Взаимно ссылочные типы и модули в одном и том же файле через namespace rec и module rec.
  • Неявный суффикс Module в модулях, совместно использующих одно и то же имя как тип.

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

(многие из них выполнены сообществом F#)

Новый редактор на основе рабочих областей Roslyn

(Многие новые функции среды IDE были реализованы выдающимся сообществом F#)

Дополнительные улучшения, предложенные сообществом F#

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

JavaScript и TypeScript

TypeScript 2.1

TypeScript 2.1 доступен в рамках всех проектов TypeScript в Visual Studio. TypeScript 2.1 обеспечивает асинхронность и ожидание низкого уровня, улучшенный вывод локального типа, локальное расширение объектов и многое другое! Подробности об этом выпуске см. в публикации в блоге о выпуске или полном журнале изменений.

Служба языка JavaScript

Доступна новая языковая служба JavaScript (рис. 25), которая включена по умолчанию. Новая служба обеспечивает улучшение работы IntelliSense. В ней добавлена поддержка IntelliSense в заметках к комментариям JSDoc, ES6 и форматов модулей Common JS. Она также поддерживает синтаксис JSX и функции ES2016, такие как генераторы, модули и декораторы. Дополнительные сведения см. в этой записи блога или в документации по IntelliSense для JavaScript на GitHub.

Rich JavaScript IntelliSense for jQuery
Рис. 25. Широкие возможности IntelliSense для JavaScript в jQuery

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

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

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

Выполнение до щелкнутого

Просто щелкните значок рядом со строкой кода во время отладки, чтобы выполнить код до этой строки (рис. 26). Вам больше не нужно задавать временные точки останова или совершать несколько действий, чтобы выполнить код и остановиться на требуемой строке. Теперь, когда вы останавливаетесь в состоянии останова в отладчике, значок "Выполнение до щелкнутого" аккуратно отображается рядом со строкой кода, на которую наведена мышь. Наведите указатель мыши на значок и нажмите кнопку: выполнение кода остановится на выбранной строке кода, когда в следующий раз дойдет до нее. Можно отключить его в главном меню, щелкнув Отладка>Параметры>Включить выполнение.

Run to Click Icon
Рис. 26. Значок "Выполнение до щелкнутого"

Фильтр присоединения к процессу

В диалоговом окне "Присоединение к процессу" (рис. 27) доступен удобный поиск, позволяющий быстро найти процесс, к которому нужно присоединить отладчик. Список выполняющихся процессов фильтруется до элементов, соответствующих условиям поиска. Фильтр поиска запоминает ваш предыдущий поиск при повторном открытии диалогового окна.

Attach to Process Filter
Рис. 27. Фильтр присоединения к процессу

Повторно подключиться к процессу

Теперь вы можете быстро повторно подключиться к процессам, отладку которых выполняли ранее. При включении функции "Отладка/Повторно подключиться к процессу" (SHIFT+ALT+P) немедленно выполняется попытка подключить отладчик к последнему процессу из предыдущего сеанса отладки, который был вызван из диалогового окна "Присоединение к процессу". Отладчик будет повторно подключаться к процессам, сначала пытаясь сопоставить идентификатор предыдущего процесса, а затем путем сопоставления с именем предыдущего процесса. При отсутствии совпадений либо наличии нескольких процессов с одинаковым именем отображается диалоговое окно "Присоединение к процессу", где можно выбрать нужный процесс.

Новый помощник по исправлению ошибок

Используйте новый помощник по исправлению ошибок (рис. 28) для беглого просмотра сведений об исключении в компактном немодальном диалоговом окне с мгновенным доступом к внутренним исключениям. Теперь при диагностике исключения NullReferenceException вы сможете быстро увидеть, какой параметр имел значение NULL, прямо в помощнике по исправлению ошибок. Теперь можно указать не прерывать работу на типах исключений, создаваемых определенными модулями. Для этого нужно установить флажок добавления условия во время остановки на созданном исключении. Прочитайте эту публикацию в блоге, чтобы получить более подробную информацию о новых преимуществах помощника по исправлению ошибок.

The New Exception Helper dialog
Рис. 28. Диалоговое окно нового помощника по исправлению ошибок

Добавление условий в параметры исключений

При настройке остановки отладчика на возникающих исключениях можно добавить условия, которые задают остановку отладчика, только когда исключения возникают в определенных модулях (рис. 29).

Edit Conditions dialog box
Рис. 29. Диалоговое окно изменения условий

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

Теперь вы можете эффективнее использовать несколько окон отладчика (стек вызовов, локальные переменные, автоматические значения, контрольные значения и быстрая проверка) при работе со средствами чтения с экрана и другими специальными возможностями.

События IntelliTrace для .NET Core

IntelliTrace теперь поддерживает события MVC, ADO.NET и HttpClient для приложений ASP.NET Core. Они будут отображаться на вкладке "События" в окне "Средства диагностики".

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

При запуске сеанса отладки вы увидите новое представление сводки (рис. 30) для приложения в окне "Средства диагностики". В нем можно сделать следующее:

Summary tab in Diagnostics Tools Window
Рис. 30. Вкладка "Сводка" в окне "Средства диагностики"

Обновления профилировщика производительности

Профилировщик производительности теперь может подключаться к выполняющемуся процессу. Средства "Загрузка ЦП" и "Использование GPU", а также мастер производительности теперь поддерживают присоединение к выполняющемуся процессу.

Обновления средств использования ЦП

В средстве использования ЦП реализовано несколько улучшений.

  • Улучшенная поддержка внешнего кода: средство использования ЦП теперь предоставляет больше сведений о "затратах" на вызов функций библиотеки и платформы из пользовательского кода.
  • Представление "Функции" (рис. 31), которое ранжирует функции по "затратам" на использование ЦП.
Functions List
Рис. 31. Список функций
  • Новое представление "Вызывающий или вызываемый" (Рис. 32) позволяет отслеживать "затраты" для вызова выбранной функции и вызова из этой функции.
Caller / Callee View
Рис. 32. Представление "Вызывающий/вызываемый"
  • Представление "Исходный код", в котором отображается исходный код функции, которая выбрана в средстве использования ЦП.

Поддержка отладки Chrome

Если запустить отладку проектов ASP.NET и выбрать Google Chrome в качестве браузера, Visual Studio выполнит отладку JavaScript, запущенного в Chrome. Если вы предпочитаете использовать вместо этого средства разработки в браузере, можно отключить эту функцию в разделе "Инструменты" > "Параметры" > "Отладка".

Динамическое модульное тестирование

Динамическое модульное тестирование (рис. 33) — это возможность в выпуске Visual Studio 2017 Enterprise, которая позволяет визуализировать результаты модульного теста и объем протестированного кода в редакторе. В проектах C# и Visual Basic для .NET Framework она поддерживает MSTest, Nunit и xUnit.

Live Unit Testing
Рис. 33. Live Unit Testing

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

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

Связывание автоматизации с рабочими элементами тестового случая с помощью обозревателя тестов

Теперь можно связать автоматизацию с рабочими элементами тестового случая (рис. 34), выбрав метод теста в обозревателе тестов. Используя эту новую возможность, вы также сможете просматривать любые существующие ассоциации для выбранного метода теста.

Просто щелкните тест правой кнопкой мыши в обозревателе тестов

Test Explorer Associate Automation
Рис. 34. Связывание автоматизации в обозревателе тестов

и укажите идентификатор тестового случая, чтобы создать ассоциацию (рис. 35).

Associate Automation
Рис. 35. Связывание автоматизации

В предыдущих версиях Visual Studio это можно было сделать с помощью формы рабочего элемента. Взаимодействие на основе формы рабочего элемента можно включить, включив режим совместимости ("Сервис | Параметры") (рис. 36).

Work Item Form Compatibility mode
Рис. 36. Режим совместимости формы рабочего элемента

Team Explorer

Новые возможности Git

Мы добавили новые возможности Git в Visual Studio 2017, позволяющие выполнить большую часть сквозного рабочего процесса, не выходя из интегрированной среды разработки. Вы можете легко просматривать различия исходящих фиксаций, выполнить принудительную отправку, чтобы завершить перемещение изменения из одной ветви в другую или выполнить принудительную отправку исправленной фиксации, отменить вышестоящую ветвь и продолжить перемещение исправлений из одной ветви в другую из Visual Studio. Кроме того, мы переместили в git.exe. Это позволяет нам предоставлять самые новейшие функции. Мы поддерживаем SSH, принимаем во внимание ваши параметры конфигурации и отображаем в Team Explorer только то, что доступно в командной строке. Дополнительные сведения об этих функциях см. в записи блога.

Подключение к VSTS и Team Foundation Server

Процесс подключения к проектам и клонирования репозиториев в VSTS и Team Foundation Server на начальной странице Visual Studio и в Team Explorer персонализирован и упрощен. Поиск проектов и репозиториев, к которым следует подключиться, стал быстрее и проще. На нашей полностью переработанной странице подключения отображаются только проекты и репозитории, сопоставленные и клонированные вами для всех серверов VSTS и Team Foundation Server (а не каждый репозиторий для каждого проекта). Кроме того, перед клонированием репозиториев больше не требуется подключаться к проекту.

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

Формы рабочих элементов

Когда вы подключаетесь к Visual Studio Team Services из Visual Studio 2017 и открываете рабочий элемент, в веб-браузере открывается форма рабочего элемента (рис. 37). Но при подключении к Team Foundation Server 2015 или более ранней версии вы увидите устаревшие формы рабочих элементов.

Work Item Form in Team Explorer
Рис. 37. Форма рабочего элемента в Team Explorer

Улучшенный рабочий процесс отправки отзывов о Visual Studio

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

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

Новый формат расширяемости

Новая технология, реализованная в установщике Visual Studio 2017, предоставляет вам расширенный контроль над устанавливаемыми инструментами. Некоторым пользователям нужен только базовый редактор Visual Studio, а другим — ряд рабочих нагрузок. Чтобы обеспечить установку обязательных компонентов, необходимых для работы расширений, авторы расширений теперь смогут указывать в манифесте, какие компоненты необходимы для работы того или иного расширения.

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

Конструктор манифеста VSIX был обновлен для отражения изменений в манифесте. На вкладке необходимых компонентов (рис. 38) разработчики расширений могут найти список установленных компонентов, чтобы указать необходимый компонент для своего расширения.

Prerequisite tab
Рис. 38. Вкладка необходимых компонентов

Во время установки расширения установщик VSIX (рис. 39) укажет, какие компоненты отсутствуют, и установит их вместе с расширением.

VSIXInstaller
Рис. 39. Установщик VSIX

Изменение расширений в пакетном режиме

В диалоговом окне "Расширения и обновления" (рис. 40) теперь можно запланировать установку, обновление и удаление нескольких расширений перед обязательным перезапуском Visual Studio. В правом нижнем углу выводится сводка по запланированным заданиям. Чтобы удалить запланированные изменения, нажмите кнопку X рядом с расширением, которое запланировано для установки.

Extensions and Updates Dialog
Рис. 40. Диалоговое окно "Расширения и обновления"

Когда установщик VSIX обнаружит, что закрыты все окна Visual Studio, он запускается для выполнения запланированных изменений (рис. 41).

Batched Modification Installer
Рис. 41. Пакетный установщик изменений

Поддержка Ngen

Теперь сборки можно установить с помощью Ngen (рис. 42).

NGEN Properties
Рис. 42. Свойства NGEN
  • Ngen — указывает, следует ли использовать Ngen для сборки.
  • Ngen Application — приложение для передачи в Ngen с помощью параметра /ExeConfig.
  • Архитектура Ngen — целевая архитектура для образа в машинном коде. Параметры: x86, x64 и all.
  • Приоритет Ngen — уровень приоритета Ngen.

Установка файлов за пределами каталога расширений

Теперь вы можете установить файлы в определенный список папок, которые находятся вне каталога расширений (рис. 43).

VSIX Properties
Рис. 43. Свойства VSIX
  • Включить в VSIX — указывает, нужно ли включить файл в VSIX.
  • Install Root — корневой каталог для установки файла. Параметры: "Default" (установка в каталоге расширений), "PublicAssemblies", "ReferenceAssemblies", "MSBuild", "Schemas", "RemoteDebugger" и "VSTargets".
  • Target Path — имя файла, устанавливаемого на компьютере пользователя.
  • Вложенный путь VSIX — вложенный путь в корневом каталоге установки для установки файла.

Диспетчер перемещаемых расширений

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

Войдя в Visual Studio, вы можете быстро просмотреть список расширений, перейдя в раздел "Инструменты" > "Расширения и обновления", а затем выбрав пункт "Диспетчер перемещаемых расширений" (рис. 44). Он отслеживает установленные расширения и позволяет добавлять их в список перемещаемых. Новые расширения появляются в коллекции каждый день, а этот инструмент помогает легко и быстро добавлять любимые расширения в любую среду разработки.

The new Roaming Extension Manager in the Visual Studio IDE
Рис. 44. Новый диспетчер перемещаемых расширений в интегрированной среде разработки Visual Studio

При использовании этой возможности вы увидите три типа значков.

  • Roamed Icon Перемещаемый значок — обозначает расширение, которое входит в список роуминга, но не установлено на этом компьютере. Такое расширение можно установить с помощью кнопки "Скачать".
  • Roamed and Installed Icon Перемещаемый и установленный значок — обозначает все расширения, которые входят в список роуминга и установлены в этой среде. Если вы решите, что перемещать расширение не нужно, его можно удалить с помощью кнопки "Остановить перемещение".
  • Installed Icon Значок установки — обозначает все расширения, установленные в этой среде, но не являются частью списка перемещаемых объектов. Расширения можно добавить в список перемещаемых расширений с помощью кнопки "Начать перемещение".

Эти значки отражают текущее состояние вашего списка. Меняйте состояние любых расширений и настраивайте содержимое среды как вам нравится. А если захотите, мы сделаем это за вас. Любое расширение, скачанное после того, как вы выполнили вход в систему, будет добавлено в список перемещаемых как перемещаемое и установленное, а значит, будет доступно вам на любом компьютере.

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

Начиная с Visual Studio 2017, полностью изменен способ потребления шаблонов проектов и элементов средой Visual Studio, чтобы повысить производительность обнаружения шаблонов. Новый механизм обнаружения предусматривает, что все шаблоны проектов и элементов со схемой vstemplate должны быть определены в файлах манифеста шаблонов. Шаблоны Visual Studio, неопределенные в файле манифеста шаблонов, не будут отображаться в диалоговых окнах "Создать проект" или "Создать элемент". Хотя новые средства расширяемости создают манифест во время сборки VSIX, при наличии шаблонов Visual Studio, выпущенных в составе пакета MSI, для них необходимо вручную создать файлы манифеста шаблонов. Дополнительные сведения см. на странице MSDN Обновление настраиваемых шаблонов проектов и элементов для Visual Studio 2017.

.NET Core и ASP.NET Core

Окончательный выпуск средств .NET Core 1.0 на базе MSBuild. С помощью Visual Studio 2017 можно создать библиотеки .NET Standard, приложения и библиотеки .NET Core и веб-проекты ASP.NET, использующие новый формат CSPROJ.

В рабочей нагрузке "ASP.NET и разработка веб-приложений" инструментарий .NET Core является автоматически включенным компонентом, а в рабочей нагрузке "Разработка классических приложений .NET" — необязательным компонентом в установщике. Если вы хотите разрабатывать приложения .NET Core для использования на нескольких платформах, можно установить только инструменты .NET и ASP.NET Core, используя рабочую нагрузку "Кроссплатформенная разработка .NET Core" в разделе "Другие наборы инструментов" установщика.

Высокоуровневые функции в этом выпуске включают следующее:

  • Поддержка MSBuild для проектов .NET Core с упрощенным форматом проекта CSPROJ, который позволяет проще редактировать код вручную без выгрузки проекта.
  • Простое изменение CSPROJ-файла .NET Core: щелкните проект правой кнопкой мыши в обозревателе решений и выберите пункт "Изменить".
  • Поддержка файловых подстановочных знаков в файле проекта, где не нужно перечислять все имена файлов в исходном коде. Таким образом обеспечивается компактность CSPROJ-файла.
  • Ссылки на пакет NuGet теперь входят в состав CSPROJ-файла, что позволяет объединить все ссылки на проект в одном файле.
  • Взаимодействие между проектами .NET Core, .NET Standard и .NET Framework. Например, проект .NET Core может добавить ссылку проекта на проект в проект .NET Standard.
  • Ориентация на несколько целевых платформ в одном проекте.
  • При открытии в Visual Studio имеющиеся проекты .NET Core файла project.json будут автоматически перенесены в CSPROJ-файл. Их также можно перенести вручную с помощью интерфейса командной строки .NET.
  • Простая настройка непрерывной интеграции сборки для вашего приложения ASP.NET Core с поддержкой Docker и непрерывной доставки сборки в службы контейнеров Azure из интегрированной среды разработки Visual Studio.

Подробности см. в блоге по .NET.

Средства для разработки универсальных приложений Windows

Обновленная цепочка инструментов .NET Native

Эта обновленная цепочка инструментов .NET Native включает несколько оптимизаций для повышения производительности во время выполнения для управляемых приложений UWP в Visual Studio. Этот выпуск включает более 600 исправлений ошибок и функций, соответствующих основным пожеланиям клиентов и повышающих общее качество цепочки инструментов.

Пакет Microsoft.NETCore.UniversalWindowsPlatform 5.3.0

Это обновление библиотек платформы .NET Core NuGet устраняет множество ключевых проблем, о которых сообщили клиенты. Существующие проекты UWP могут использовать диспетчер ссылок NuGet для обновления до этой новой версии. Кроме того, новый пакет .NET Core включает в себя цепочку инструментов .NET Native.

Пакет SDK для юбилейного обновления Windows 10 и эмулятор

В этот выпуск включены пакет Windows SDK и эмулятор Windows Phone для юбилейного обновления Windows 10.

  • Элементы пользовательского интерфейса, созданные из панели элементов, теперь будут создаваться с меньшим числом XAML-тегов, что сделает код XAML более чистым и читабельным.
  • Новый инструмент для работы с параметрами в конструкторе XAML позволяет разработчику выбирать тему пользовательского интерфейса и выполнять предпросмотр настроек высокой контрастности в области конструктора.
  • Редакторы значений в окне "Свойства" теперь принимают простые математические выражения, такие как "60+20". Результат вычисляется мгновенно (в данном случае 80), и результирующее значение отправляется в XAML.

Возможность создания визуальных ресурсов в конструкторе манифестов

Внешний вид конструктора манифестов (рис. 45) был обновлен и в него добавлена возможность создания визуальных ресурсов для приложений UWP. Теперь можно использовать одно исходное изображение для создания плиток, логотипов, значков и экранов-заставок в любых масштабах и для любых типов устройств, для которых предназначено ваше приложение.

Manifest Visual Asset Generator
Рис. 45. Генератор визуальных ресурсов манифеста

Анализ пользовательского интерфейса

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

Xamarin

Версия Xamarin 4.4 включена в Visual Studio 2017. Дополнительные сведения см. в заметках о выпуске Xamarin.

Xamarin для Visual Studio 4.4 является обновлением выпусков Xamarin.iOS 10.8 и Xamarin.Android 7.2.

Исправления ошибок для Xamarin

Этот выпуск включает следующие исправления:

  • Сборка приложений iOS Extension выполняется с ошибкой «невозможно прочитать данные Entitlements» (4.4.0.31).
  • Включает символы для отчетов «Доктор Ватсон» (4.4.0.6).
  • Развертывание Android завершается сбоем, если решение также содержит проект Wix (4.3.1.39).
  • Взаимоблокировка при открытии некоторых проектов iOS (4.3.1.39).
  • Точки останова не срабатывают на ссылках PCL второго уровня (4.3.1.39).
  • Устраняет проблему iOS из-за отсутствующей задачи CodeSignNativeLibraries (4.3.1.39).
  • Ошибка при открытии раскадровки после подключения к серверу Mac (4.3.1.39).
  • Проект библиотеки классов Android должен содержать на странице свойств только параметр «Компиляция с помощью версии Android» (4.3.1.39).
  • Visual Studio зависает при переходе на вкладку "Инструменты"->"Параметры"->Xamarin->"Прочие" (4.3.1.39)
  • Visual Studio зависает при загрузке кроссплатформенного решения в некоторых средах (4.3.1.1).
  • На Microsoft.Csharp нет ссылок в шаблонах проектов Visual Studio (4.3.1.1)
  • Невозможно подключиться к серверу Mac, если настроенная оболочка пользователя не использует синтаксис bash (4.3.1.1).
  • Отсутствует вариант "Отправить в Test Cloud" (исправлено в Visual Studio 2013 и Visual Studio 2015) (4.3.1.1)
  • Отладчик путается, если имя переменной или свойства совпадает с именем какого-либо класса (4.3.1.1).
  • Невозможно переименовать набор изображений из каталога ресурсов (4.3.1.1).
  • Папка «Ресурсы» принудительно скрыта в проектах расширений просмотра (4.3.1.1).
  • Невозможно скрыть папку «Assets.xcasset» в папке «Ресурсы» для проектов tvOS (4.3.1.1).

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

Этот выпуск Visual Studio 2017 включает в себя следующие улучшения:

  • Cordova Simulate — новый имитатор позволяет быстро писать код и просматривать результаты прямо в браузере (рис. 46). Включение в Visual Studio динамической перезагрузки и симуляции подключаемого модуля, а также поддержки платформы Ionic обеспечивает самый быстрый рабочий процесс разработки на рынке.
Cordova simulate
Рис. 46. Cordova Simulate
  • Поддержка iOS 10 и XCode 8 — обновление агента сервера remotebuild для разработки в iOS теперь включает поддержку XCode 8.

  • Цветовое выделение ошибок — так как для диагностики ошибок сборки разработчикам часто приходится просматривать все выходные данные сборки, мы начали выделять цветом ошибки в окне выходных данных для удобства восприятия (рис. 47). Кроме того, мы добавили заголовки для обозначения отдельных действий в процессе сборки, чтобы помочь разработчикам точно выявить место ошибки в сборке.

Colorized Errors
Рис. 47. Выделенные цветом ошибки
  • Получение дополнительных компонентов сборки в процессе разработки — в дополнение к новой простой установке (с которой вы сможете еще быстрее перейти к написанию приложений Cordova) мы добавили в Visual Studio механизмы для получения дополнительных компонентов сборки в процессе разработки (рис. 48). Если у вас не установлены компоненты Android или Windows, их можно получить с помощью панели развертывания, которая запускает настройку Visual Studio, помогая вам выполнить установку.
In-product acquisition
Рис. 48. Приобретение в продукте
  • Быстрые и надежные сборки — новый установщик Visual Studio в сочетании с проверенной цепочкой инструментов сторонних производителей (которые устанавливаются автономно) ускоряет создание сборок, а также упрощает их диагностику и исправление ошибок.

Важно!

Средства сборки и эмуляторы для Android и Windows теперь необязательны. Их можно получить динамически из строки меню сборки/развертывания. Этот выпуск Visual Studio не поддерживает проекты Магазина Windows 8.1. Рекомендуется обновить проекты Cordova до целевой платформы Windows 10. Теперь минимальная поддерживаемая версия Cordova — 6.0.0. Для сборки и развертывания в Visual Studio 2017 проектов, предназначенных для версий Cordova ниже 6.0.0, их потребуется обновить в файле config.xml.

Инструменты Node.js для Visual Studio

Инструменты Node.js превращают Visual Studio в эффективную среду разработки Node.js. В этом выпуске упор сделан на стабильность, производительность и качество продукта, включая следующее:

  • Улучшенная интеграция с новой службой Salsa JavaScript Language Service.
  • Пониженный уровень использования памяти и ЦП и сокращенное время загрузки проекта.
  • Поддержка файлов шаблонов Pug.
  • Больше актуальных шаблонов проектов.
  • Поддержка платформы тестирования Mocha 3.x.
  • Многочисленные исправления ошибок.

Благодарим всех активных участников, которые внесли свой вклад в эту версию инструментов Node.js для Visual Studio. Для получения дополнительной информации ознакомьтесь с проектом инструментов Node.js с открытым исходным кодом на сайте GitHub.

Набор средств Visual Studio для Unity

Используйте Visual Studio для создания и отладки игр Unity для всех платформ. Инструменты Visual Studio для Unity 3 (рис. 49) теперь можно установить вместе с рабочей нагрузкой "Разработка игр с помощью Unity" в новом установщике Visual Studio 2017. Инструменты Visual Studio для Unity 3 позволяют улучшить процедуру редактирования и отладки кода для разработчиков на Unity, а также общее качество продукта, включая следующее:

  • Поддержка IntelliSense для сообщений Unity.
  • Выделение кода цветом для сообщений Unity.
  • Улучшенная оценка выражений в отладчике Unity.
  • Усовершенствованные мастера сообщений Unity для поддержки всех типов Unity, способных получать сообщения.
  • Многочисленные исправления ошибок и оптимизации.
Code completion session for Unity messages
Рис. 49. Сеанс завершения кода для сообщений Unity

Redgate

Инструменты данных Redgate теперь включены в Visual Studio.

Для разработки баз данных SQL с помощью DevOps в Visual Studio 2017 включены инструменты Redgate Data Tools, которые включают Redgate SQL Prompt Core, Redgate SQL Search и Redgate ReadyRoll Core (они доступны в рабочей нагрузке "Хранение и обработка данных").

  • Redgate ReadyRoll Core в составе Visual Studio Enterprise 2017 помогает разрабатывать сценарии переноса, управлять базами данных с помощью системы управления версиями, а также автоматизировать безопасное развертывание изменений базы данных SQL Server вместе с изменениями приложений.
  • Redgate SQL Prompt Core в составе Visual Studio Enterprise 2017 помогает повысить точность и скорость написания SQL-запросов с помощью средства интеллектуального завершения кода. SQL Prompt автоматически завершает объекты и ключевые слова базы данных и системы и предлагает варианты при вводе текста. Код становится чище и содержит меньше ошибок, так как вам не нужно запоминать имя или псевдоним каждого столбца.
  • Поиск Redgate SQL, входящий в состав всех выпусков Visual Studio 2017, повышает продуктивность работы, позволяя быстро найти фрагменты и объекты SQL в нескольких базах данных.

NuGet

Visual Studio 2017 включает в себя NuGet 4.0. Этот выпуск ориентирован на поддержку ссылки на пакет для большинства типов проектов, улучшение качества и усовершенствования производительности:

  • Пакетами теперь можно управлять с помощью ссылок на пакеты в проектах WPF, WindowsForms и UWP.
  • Улучшена поддержка восстановления NuGet для восстановления упрощенного решения. Для выполнения восстановлений теперь не нужно загружать какие-либо проекты.
  • Теперь в проектах .NET Core и ASP.NET Core управление пакетами осуществляется с помощью ссылок на пакеты.
  • В Visual Studio 2017 и более поздних версиях конфигурация NuGet.config теперь находится в папке %PROGRAMFILES(X86)%\NuGet\Config\NuGet.config. В дальнейшем nuget.exe версии 4.0.0 + также рассмотрит новое расположение конфигурации на уровне компьютера. NuGet.config в данных программы больше не будет неявно указываться в ссылке или использоваться для иерархического слияния nuget.config.

Средства для приложений XAML

Операция "Изменить и продолжить" XAML

Теперь Visual Studio позволяет редактировать XAML во время работы универсального приложения для Windows или WPF. Выполняя отладку приложения в Visual Studio, в редакторе кода XAML можно внести изменение в разметку, и это изменение будет отражено в запущенном приложении без необходимости повторной компиляции.

Повышение производительности редактора XAML

  • Фильтрация IntelliSense — при вводе XAML-кода в списке завершения отображаются только соответствующие типы и выбирается наиболее полное соответствие.
  • IntelliSense для x:Bind — мы включили режим завершения IntelliSense для x:Bind при привязке к путям и событиям.
  • Автозаполнение пространств имен — если ссылка на пространство имен отсутствует (рис. 50), то IntelliSense при вводе текста также не будет работать. Однако завершив ввод, вы получите поддержку предложений лампочки для создания и вставки префикса для типа и добавления определения пространства имен в документ XAML.
Code completion session for IntelliSense_without_namespace
Рис. 50. IntelliSense с отсутствующим пространством имен
  • Для типов, требующих префикса, IntelliSense предложит автозавершение, если ссылка на пространство имен уже существует.

  • Рефакторинг для переименования префикса пространства имен — действие переименования (рис. 51) можно вызвать из контекстного меню или с помощью сочетания клавиш Ctrl+R+R, когда курсор находится на префиксе. Кроме того, можно просмотреть изменения перед их применением.
Namespace prefix rename
Рис. 51. Переименование префикса пространства имен

  • Удаление и сортировка пространств имен — теперь можно удалить ненужные пространства имен (рис. 52) и отсортировать их с помощью контекстного меню или сочетания клавиш Ctrl+R+G. Если в документе XAML есть ненужные пространства имен, отображается лампочка, позволяющая удалить их.
lightbulb_remove unnecessary namespace
Рис. 52. Значок лампочки для удаления ненужного пространства имен

  • Поддержка EDITORCONFIG в редакторе XAML: можно определить параметры для indent_style, indent_size и tab_width в EDITORCONFIG-файле, которые будут использоваться вместо параметров, определенных в разделе Сервис > Параметры.

  • Визуализатор структуры для редактора XAML — визуализатор структуры (направляющие отступа) (рис. 53) теперь интегрирован в Visual Studio, отдельное расширение больше использовать не нужно. Эта возможность позволяет сразу, без прокрутки, оценить контекст блока кода, над которым вы работаете.

Structure Visualizer for XAML editor
Рис. 53. Визуализатор структуры для редактора XAML

Повышение производительности XAML

  • Скорость переключения между вкладками XAML повысилась — скорость переключения между вкладками существенно повысилась. В образцах проектов наших клиентов время переключения в некоторых случаях сократилось более чем на 90 %.
  • Решение проблем с задержками при вводе текста в редакторе XAML — теперь текстовый ввод в редакторе XAML работает быстрее, чем когда-либо. Мы провели весьма серьезную работу над сокращением задержек при вводе текста в редакторе XAML, и большинство разработчиков заметят, что редактор XAML и XAML в IntelliSense стали реагировать гораздо быстрее. Это будет особенно заметно при редактировании файла XAML в проектах, в которых используются сторонние элементы управления или большие библиотеки элементов управления.

SQL Server Data Tools

SQL Server Data Tools

Visual Studio 2017 включает в себя последние обновления SQL Server Data Tools, обеспечивающие поддержку последних функций базы данных SQL Azure и SQL Server 2016.

Этот выпуск сочетает простоту разработки, тестирования и развертывания базы данных с помощью Visual Studio на всех поддерживаемых версиях SQL Server и платформах баз данных, как локальных, так и облачных. Выпуск также включает улучшения для работы с базами данных и повышает удобство подключения SQL в SQL Server Data Tools — теперь базы данных SQL Server и базы данных SQL Azure обнаруживаются автоматически и к ним можно подключиться одним щелчком мыши.

Кроме того, в Visual Studio 2017 используются новые типы проверки подлинности базы данных SQL Azure, а также встроенная проверка подлинности Azure Active Directory и проверка подлинности по паролю.

Средства анализа для разработчиков

Visual Studio 2017 включает в себя средства анализа для разработчиков версии 8.6 со следующими усовершенствованиями:

  • CodeLens теперь отображает данные отладки и динамические данные телеметрии в проектах, отправляющих данные в ресурс Application Insights.
  • CodeLens для ссылок исключений на аналитику приложений, чтобы продемонстрировать пользователям влияние исключения.
  • CodeLens показывает запросы из сеансов локальной отладки для проектов с пакетом SDK Application Insights.
  • CodeLens для запросов и исключений теперь доступны в проектах Visual Basic.
  • После публикации приложения из Visual Studio во всплывающем уведомлении появляются динамические метрики.
  • Сведения о ценах на Application Insights теперь отображаются в окне "Конфигурация".
  • События доступности теперь отображаются в инструментах поиска и тенденций.
  • В инструментах поиска и диагностики теперь отображаются показатели частоты возникновения событий на основе адаптивной выборки в пакете SDK.
  • CodeLens показывает исключения, возникшие во время сеансов локальной отладки для проектов с пакетом SDK Application Insights.
  • Новый дизайн окна "Конфигурация Application Insights".
  • CodeLens для исключений теперь имеет ссылку на аналитику приложений, чтобы можно было увидеть влияние, которое исключение оказало на пользователей.
  • Теперь при добавлении Application Insights в проект добавляется пакет SDK JavaScript для Application Insights для сбора данных телеметрии о просмотрах страниц.
  • Теперь при публикации приложения из Visual Studio заметки публикации отправляются в ресурс Application Insights.
  • Теперь для красных и желтых индикаторов CodeLens Application Insights отображаются метки полосы прокрутки.

Дополнительные сведения об Application Insights см. в документации Microsoft Azure.

Инструменты разработчика Office для Visual Studio

Этот выпуск включает Office Developer Tools со следующими последними функциями и обновлениями:

  • Новые шаблоны надстроек Office для Excel, Word, PowerPoint и Outlook.
  • Поддержка новых функций надстроек Office, таких как команды надстроек, пользовательский интерфейс Fabric и новая версия Office.js.
  • Новый начальный код в шаблонах, с помощью которого можно начать работать с новыми функциями надстроек Office.
  • Поддержка SharePoint 2016 в решениях и шаблонах надстроек SharePoint.

Динамическая проверка зависимостей архитектуры

Если настроены схемы проверки зависимостей (также называемые "схемы слоев"), в Visual Studio Enterprise теперь можно получать уведомления (рис. 54) о нарушениях правил архитектурных зависимостей в режиме реального времени при вводе кода в редакторе кода. Ошибки отображаются в списке ошибок, а точное расположение проблемы обозначается в текстовом редакторе волнистыми линиями. Это снижает вероятность привнесения нежелательных зависимостей.

Live Architecture Dependency validation
Рис. 54. Динамическая проверка зависимостей архитектуры

Командная строка разработчика

Скрипты командной строки разработчика Visual Studio 2017 оптимизированы с целью поддержки нового процесса установки:

  • переменные среды будут отражать только установленные рабочие нагрузки;
  • Ярлык командной строки разработчика Visual Studio должен быть совместим с предыдущими выпусками.
  • Теперь можно настроить скрипты командной строки разработчика с помощью аргументов командной строки:
    • Чтобы получить дополнительные сведения, в командной строке вызовите common7\tools\vsdevcmd.bat -help (из каталога установки Visual Studio).

Azure SDK для .NET

Azure SDK для .NET Visual Studio теперь можно установить через новый установщик Visual Studio. Если вы ранее установили пакет Azure SDK для .NET через установщик веб-платформы, теперь те же компоненты можно получить, установив рабочую нагрузку Azure с использованием нового установщика Visual Studio. Установленные пакеты находятся на одном функциональном уровне с версией 2.9.5 пакета SDK. Для этой и всех будущих версий Visual Studio пакет Azure SDK для .NET будет доступен только из установщика Visual Studio.


Release Notes IconVisual Studio 2017 версии 15.0.1

выпущено 14 марта 2017 г.

Основные проблемы, исправленные в версии 15.0.1

В версии 15.0.1 исправлены следующие проблемы, о которых сообщили клиенты:


Release Notes IconVisual Studio 2017 версии 15.0.2

выпущено 28 марта 2017 г.

Основные проблемы, исправленные в версии 15.0.2

В версии 15.0.2 исправлены следующие проблемы, о которых сообщили клиенты:


Release Notes IconVisual Studio 2017 версии 15.0.3

выпущено 31 марта 2017 г.

Общие сведения об обновлениях в версии 15.0.3

Мы теперь поддерживаем инструменты и API Xcode 8.3, iOS 10.3, watchOS 3.2 и tvOS 10.2 в Xamarin.VS Extension для Visual Studio 2017.


Release Notes IconVisual Studio 2017 версии 15.0.4

выпущено 23 мая 2017 г.

Основные проблемы, исправленные в версии 15.0.4

Для автономной установки больше не требуется доступ к Интернету.


Release Notes IconVisual Studio 2017 версии 15.0.5

выпущено 18 сентября 2017 г.

Основные проблемы, исправленные в версии 15.0.5

В версии 15.0.5 исправлены следующие проблемы, о которых сообщили клиенты:


Release Notes IconVisual Studio 2017 версии 15.0.6

выпущено 14 ноября 2017 г.

Общие сведения об обновлениях в версии 15.0.6

Уведомления с советами по безопасности Visual Studio 2017 версии 15.0

Корпорация Майкрософт выпустила советы по безопасности для .NET Core и ASP.NET Core. Дополнительные сведения можно найти в соответствующих объявлениях в репозиториях .NET Core и ASP.NET Core. Обратите внимание на следующее.

CVE-2017-8585 Неверно сформированный сертификат может привести к отказу в обслуживании

В .NET Core 1.0, 1.1 и 2.0 существует уязвимость, из-за которой неправильно сформированный сертификат или другие форматируемые данные ASN.1 могут привести к отказу в обслуживании из-за бесконечного цикла в Linux и macOS. Системным администраторам рекомендуется обновить среды выполнения .NET Core до версий 1.0.8, 1.1.5 и 2.0.1. Разработчикам рекомендуется обновить пакет SDK для .NET Core до версии 2.0.3 или 1.1.5.

CVE-2017-8700 Обход CORS может привести к раскрытию информации

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

CVE-2017-11879 Открытое перенаправление может привести к несанкционированному повышению привилегий

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

CVE-2017-11770 Уязвимость отказа в обслуживании

В ASP.NET Core 1.0, 1.1 и 2.0 существует уязвимость, из-за которой приложение размещается через Http.Sys в Windows, где неправильно сформированный запрос может привести к отказу в обслуживании. Новые проекты, созданные с помощью ASP.NET Core 1.0 и ASP.NET Core 1.1, теперь будут использовать версии пакетов, включающие указанные выше обновления для системы безопасности. В существующих проектах пользователи могут обновить пакеты до более новых версий в диалоговом окне "Управление пакетами NuGet".


Release Notes IconVisual Studio 2017 версии 15.0.7

выпущено 6 декабря 2017 г.

Общие сведения об обновлениях в версии 15.0.7

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

Корпорация Майкрософт выпустила советы по безопасности для ASP.NET Core. Дополнительные сведения можно найти в соответствующих объявлениях в репозитории ASP.NET Core. Обратите внимание на следующее.

CVE-2017-8700 Обход CORS может привести к раскрытию информации

В ASP.NET Core 1.0 и 1.1 существует уязвимость, из-за которой можно обойти CORS, что приведет к раскрытию сведений. Новые проекты, созданные с помощью ASP.NET Core 1.0 и ASP.NET Core 1.1, теперь будут использовать версии пакетов, включающие указанное выше обновление для системы безопасности. В существующих проектах пользователи могут обновить пакеты до более новых версий в диалоговом окне "Управление пакетами NuGet".


Release Notes IconVisual Studio 2017 версии 15.0.8

Выпущено 9 января 2018 г.

Общие сведения об обновлениях в версии 15.0.8

Уведомления с советами по безопасности Visual Studio 2017 версии 15.0

CVE-2018-0786 Обход функции безопасности при проверке сертификата X509

Корпорация Майкрософт выпускает этот совет по безопасности, чтобы предоставить сведения об уязвимости в общедоступных версиях .NET Core 1.0, 1.1 и 2.0. Он также включает указания для разработчиков по корректному обновлению их приложений. Совет по безопасности также относится к .NET Native для универсальной платформы Windows (UWP).

Корпорации Майкрософт известно об уязвимости в общедоступных версиях .NET Core, позволяющей злоумышленнику предоставить сертификат, который помечен как недопустимый для определенного использования, но при этом используется для этой цели каким-то компонентом. Такое действие игнорирует теги расширенного использования ключа.

Обновление для системы безопасности устраняет уязвимость, заставляя компоненты .NET Core проверять сертификаты полностью. Рекомендуем системным администраторам обновить свои среды выполнения .NET Core до версий 1.0.9, 1.1.6 и 2.0.5. Разработчикам рекомендуется обновить пакет SDK для .NET Core до версии 2.1.4 или 1.1.7.

CVE-2018-0764 Отказ в обслуживании при синтаксическом разборе XML-документов

Корпорация Майкрософт выпускает этот совет по безопасности, чтобы предоставить сведения об уязвимости в общедоступных версиях .NET Core 1.0, 1.1 и 2.0. Он также включает указания для разработчиков по корректному обновлению их приложений.

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

Обновление устраняет уязвимость, исправляя способ обработки XML-документов в .NET Core. Рекомендуем системным администраторам обновить свои среды выполнения .NET Core до версий 1.0.9, 1.1.6 и 2.0.5. Разработчикам рекомендуется обновить пакет SDK для .NET Core до версии 2.1.4 или 1.1.7.


Release Notes IconVisual Studio 2017 версии 15.0.9

выпущено 2 февраля 2018 г.

Общие сведения об обновлениях в версии 15.0.9

  • В компилятор MSVC добавлена поддержка параметра /Qspectre, который автоматически ставит барьер на упреждающее выполнение, если компилятор обнаруживает экземпляры первого варианта Spectre. Дополнительные сведения о /Qspectre см. в блоге команды разработчиков Visual C++.
  • Мы выполнили обновление до пакета Java™ Development Kit 8, обновление 161 (версия JDK 8u161), чтобы устранить ошибки загрузки.

Release Notes IconVisual Studio 2017 версии 15.0.10

выпущено 21 февраля 2018 г.

Общие сведения об обновлениях в версии 15.0.10

Поддержка TLSv1.2 в Team Explorer. Мы обновили компоненты Git и Git Credential Manager, которые предоставляются в Visual Studio. Дополнительный компонент Git для Windows также обновлен. Это обновление позволяет Git подключаться к службам, которые больше не поддерживают TLSv1 и TLSv1.1, но поддерживают TLSv1.2.


Release Notes IconVisual Studio 2017 версии 15.0.11

выпущено 13 марта 2018 г.

Общие сведения об обновлениях в версии 15.0.11

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

CVE-2018-0875 Советы по обеспечению безопасности Майкрософт для .NET Core

Майкрософт известно об уязвимости в общедоступных версиях .NET Core, когда вредоносный файл или веб-запрос могут вызвать атаку типа "отказ в обслуживании" (DoS).

  • Системным администраторам рекомендуется обновить свои среды выполнения .NET Core до версий 1.0.10, 1.1.7 или 2.0.6. Разработчикам рекомендуется обновить пакет SDK для .NET Core до версии 1.1.8 или 2.1.101.

Release Notes IconVisual Studio 2017 версии 15.0.12

выпущено 10 апреля 2018 г.

Общие сведения об обновлениях в версии 15.0.12

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

CVE-2018-1037 Рекомендации по обеспечению безопасности от корпорации Майкрософт в отношении уязвимости раскрытия информации Microsoft Visual Studio

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

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

Обновления системы безопасности устраняют эту уязвимость, исправляя способ создания файлов PDB при компиляции проекта.


Release Notes IconVisual Studio 2017 версии 15.0.13

выпущено 26 апреля 2018 г.

Общие сведения об обновлениях в версии 15.0.13

  • Мы выполнили обновление до пакета Java™ Development Kit 8, обновление 172 (версия JDK 8u172).

Release Notes IconVisual Studio 2017 версии 15.0.14

Выпущено 31 мая 2018 г.

Общие сведения об обновлениях в версии 15.0.14

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

CVE-2018-11235 Советы по безопасности Майкрософт для устранения уязвимости системы безопасности в Git

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


Release Notes IconVisual Studio 2017 версии 15.0.15

Выпущено 10 июля 2018 г.

Общие сведения об обновлениях в версии 15.0.15

Уведомления с советами по безопасности Visual Studio 2017 версии 15.0

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

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

CVE-2018-8260 Уязвимость при удаленном выполнении кода на платформе .NET

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

CVE-2018-8232 Уязвимость незаконного изменения макроассемблера .NET Microsoft

Уязвимость незаконного изменения была связана с тем, что макроассемблер Microsoft неправильно проверял код. Это обновление для системы безопасности устраняет уязвимость, гарантируя, что макроассемблер Microsoft будет правильно проверять логику кода.

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

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


Release Notes IconVisual Studio 2017 версии 15.0.16

Выпущено 2 августа 2018 г.

Общие сведения об обновлениях в версии 15.0.16

  • Этот выпуск теперь включает установку Java™ Development Kit 8 с обновлением 181 (JDK версии 8u181).

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

CVE-2018-8356 Уязвимость обхода функций безопасности .NET Core

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


Release Notes IconVisual Studio 2017 версии 15.0.17

Выпущено 14 августа 2018 г.

Общие сведения об обновлениях в версии 15.0.17

Уведомление с советами по безопасности Visual Studio 2017 версии 15.0

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

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


Release Notes IconVisual Studio 2017 версии 15.0.18

выпущено 28 августа 2018 г.

Основные проблемы, исправленные в версии 15.0.18


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

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


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

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


Блоги

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

Developer Tools Blogs


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

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


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