Заметки о выпуске Visual Studio 2017 версии 15.5
Сообщество разработчиков | Требования к системе | Совместимость | Распространяемый код | Условия лицензии | Блоги | Известные проблемы
Примечание.
Этот выпуск — не последняя версия Visual Studio. Чтобы скачать последний выпуск, посетите сайт Visual Studio .
Поддержка диапазона времени
Эта версия теперь не поддерживается. Дополнительные сведения о поддержке Visual Studio см. в политике поддержки Visual Studio 2017.
Ознакомьтесь с последней версией заметок о выпуске или посетите сайт Visual Studio, чтобы скачать последнюю поддерживаемую версию Visual Studio 2017.
Блог Visual Studio
Блог Visual Studio является официальным источником сведений о продукте от группы разработчиков Visual Studio. Более подробные сведения о выпусках Visual Studio версии 15.5 можно найти в следующих записях:
- Visual Studio 2017 версии 15.5 -- Ознакомьтесь с новой записью блога.
Выпуски Visual Studio 2017 версии 15.5
- 20 февраля 2018 г. — Visual Studio 2017 версии 15.5.7
- 29 января 2018 г. — Visual Studio 2017 версии 15.5.6
- 25 января 2018 г. — Visual Studio 2017 версии 15.5.5
- 16 января 2018 г. — Visual Studio 2017 версии 15.5.4
- 9 января 2018 г. — Visual Studio 2017 версии 15.5.3
- 14 декабря 2017 г. — Visual Studio 2017 версии 15.5.2
- 7 декабря 2017 г. — Visual Studio 2017 версии 15.5.1
- 4 декабря 2017 г. — Visual Studio 2017 версии 15.5
Сводка по новым возможностям в версии 15.5
- Улучшены надежность и возможности отмены установщика интегрированной среды разработки Visual Studio.
- Обновлено диалоговое окно Ошибка для отображения дополнительных сведений, которые помогут решить проблемы установки.
- Сокращено время загрузки больших проектов на C# и Visual Basic.
- Теперь вы можете работать с подмодулями и рабочими деревьями Git, а также настраивать
fetch.prune
иpull.rebase
в Team Explorer. - Дополнительные сведения см. в статье о советах по безопасности для .NET Core и ASP.NET Core.
- Набор инструментов компилятора MSVC был обновлен до версии 14.12.
- Компилятор C# теперь поддерживает версию 7.2 набора языковых функций.
- Добавлена поддержка проектов пакета SDK для .NET Core в инструменты F# и изменен способ получения F#.
- Внесены усовершенствования Visual C++ в библиотеку стандартных шаблонов.
- Улучшено форматирование синтаксиса Razor в Visual Studio Web Tools.
- Теперь контейнеры Docker поддерживают многоэтапные файлы Dockerfile.
- Теперь доступна поддержка Angular 2 для встроенных файлов и NGTML-файлов шаблонов.
- Теперь вы можете открывать проекты, экспортированные из веб-компилятора ARM, в Visual Studio.
- Функция "Открыть папку" теперь поддерживает удаленные задачи для использования системы удаленной сборки или выполнения произвольных команд.
- Добавлена поддержка внедренного источника при отладке, а также поддержка режима "Изменить и продолжить" для внедренных PDB-файлов.
- WCF Web Service Reference для .Net Core теперь входит в состав Visual Studio 15.5.
- Можно выполнять отладку рабочих приложений с помощью отладчика моментальных снимков.
- Теперь поддерживается реализованное в IntelliTrace средство отладки "Перейти назад".
- К ресурсам Azure из Visual Studio можно обращаться, используя включенный условный доступ.
- Проекты для веб-надстроек Office и проекты VSTO теперь поддерживают разработку с помощью Office в Магазине Windows.
- Инструменты Visual Studio для Xamarin содержат обновленную поддержку пакетов SDK для Xamarin для iOS и Android.
- Проекты Unity теперь автоматически загружаются повторно в Visual Studio при добавлении или удалении скриптов Unity.
- Редактор списка тестов теперь по умолчанию поддерживает платформу Google Test.
- Теперь в эмуляторе Android доступен предварительный просмотр XAML в реальном времени при вводе текста.
- Проект упаковки Windows теперь позволяет включать компоненты UWP, например
BackgroundTasks
,AppServiceConnection
илиFullTrustProcessLauncher
. - Вы можете настроить процесс непрерывной поставки из рабочего процесса публикации шаблона для автоматического развертывания проекта в Azure при каждом изменении кода в репозитории.
Основные проблемы, исправленные в версии 15.5
Эти проблемы, о которых сообщили клиенты, исправлены в этом выпуске.
- Функция "Сохранить все" пытается сохранить закрытые вкладки запроса SQL.
- Во время сборки блокируются файлы bin\roslyn.
- После выхода Visual Studio 2017 версии 15.3 точки останова не работают, если набор символов файла не совпадает с набором в файле .editorconfig (спецификация UTF-8 или UTF-8).
- Невозможно восстановить пакет "Microsoft.Net.4.6.FullRedist.NonThreshold,version=4.6.81.9".
- Visual Studio 2017 конфликтует с OneDrive по требованию (сборка Windows 10 для предварительной оценки).
- При создании разделов реестра в Windows 7 возникает ошибка "Отказано в доступе".
- При закрытии проекта открывается отключенная начальная страница.
- После обновления отсутствуют значки.
- Visual Studio 2017 медленно работает во время отладки ASP.NET.
- Visual Studio 2017 медленно выполняет сборки.
- При выполнении на компьютере с поддержкой пера Visual Studio может зависать или прекращать работу.
Просмотрите все проблемы, о которых сообщили клиенты и которые были исправлены в Visual Studio 2017 версии 15.5.
Подробные сведения о новых возможностях в версии 15.5
Visual Studio 2017 версии 15.5.0
Выпущено 4 декабря 2017 г.
Новые возможности в версии 15.5
Интегрированная среда разработки Visual Studio
Настройка и установка
- Теперь установщик создает точку восстановления Windows во время установки.
- Компонент "Добавление и удаление программ" теперь содержит записи для каждой установки Visual Studio. Установщик Visual Studio теперь поддерживает операции изменения и удаления для каждой записи.
- Для установки из автономного макета больше не требуется устанавливать промежуточные сертификаты на отключенных компьютерах.
- Улучшены возможности надежности и отменяемости в процессе установки и обновления.
Обновленное диалоговое окно "Ошибка"
Диалоговое окно "Ошибка" обновлено для отображения дополнительных сведений, полезных при устранении проблем с помощью доступных решений от сообщества разработчиков Visual Studio. (рис. 1).
Производительность
- Сокращено время загрузки больших проектов на C# и Visual Basic.
- Сокращено время переключения между отладочной конфигурацией и конфигурацией выпуска.
- Ускорено добавление, удаление и переименование файлов и папок в проектах .NET Core.
- Режим упрощенной загрузки решения (LSL) объявлен нерекомендуемым, так как было уменьшено время загрузки решения без LSL.
Подключенные службы
- Поставщик службы хранилища Azure обновлен для поддержки проектов ASP.NET, предназначенных для .NET Core.
Обновления Team Explorer
Ваши отзывы на сайте UserVoice стали отличной мотивацией для разработки новейших обновлений для Team Explorer.
Теперь вы можете работать с подмодулями и рабочими деревьями Git, а также настраивать fetch.prune
и pull.rebase
в Team Explorer.
Теперь Visual Studio работает с подмодулями и рабочими деревьями Git как с обычными репозиториями. Просто добавьте их в список локальных репозиториев и приступайте к написанию кода!
Обратите внимание, что при работе с подмодулями по-прежнему нельзя выполнять действие, которому требуется поддержка нескольких репозиториев (например, одновременный просмотр файла в родительском репозитории и файла в подмодуле).
Кроме того, можно без труда задать поведение Git по умолчанию, чтобы урезать при каждом извлечении и перемещать изменения из одной ветви в другую при каждом вытягивании. Урезание при каждом извлечении удаляет локальные ветви отслеживания, которые больше не существуют на сервере, и помогает поддерживать четкий и актуальный список ветвей. При перемещении изменений при каждом вытягивании история фиксаций остается линейной и хорошо отслеживаемой. Эти настройки можно найти в разделе глобальных параметров и параметров репозитория.
Советы по безопасности .NET Core и ASP.NET Core
Корпорация Майкрософт выпустила советы по безопасности для .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 и ASP.NET Core 2.0, теперь будут использовать версии пакетов, включающие указанные выше обновления для системы безопасности. В существующих проектах пользователи могут обновить пакеты до более новых версий в диалоговом окне "Управление пакетами NuGet".
Набор инструментов компилятора MSVC
В Visual Studio 2017 версии 15.5 набор инструментов компилятора MSVC в Build Tools обновлен до версии 14.12, совместимой с версией 15.4 набора инструментов версии 14.11. При возникновении проблемы с компиляцией кода после обновления до Visual Studio 2017 версии 15.5 можно выполнить принудительную установку набора инструментов версии 14.11 параллельно набору версии 14.12. Набор инструментов Visual Studio 2017 версии 15.4 (14.11) можно выбрать на вкладке Отдельные компоненты после установки рабочей нагрузки C++ Desktop.
Новые возможности компилятора C#
Компилятор C# теперь поддерживает версию 7.2 набора языковых функций, включая следующие возможности.
- Поддержка типа
Span<T>
, используемого в Kestrel и CoreFX с помощью модификатораref struct
. - Модификатор
readonly struct
: обеспечивает, что все члены структуры являютсяreadonly
. Это привносит дополнительный уровень правильности кода, а также позволяет избежать ненужного копирования значений при доступе к членам. - Параметры
in
и возвращаемые значенияref readonly
: обеспечивают безопасную передачу и возврат неизменяемых структур с той же эффективностью, что и для изменяемых значенийref
. - Модификатор доступа
private protected
: ограничивает доступ к пересечениюprotected
иinternal
. - Неконечные именованные аргументы: теперь именованные аргументы можно использовать в середине списка аргументов без требования передачи всех следующих аргументов по имени.
Инструменты Visual Studio для Xamarin
Этот выпуск содержит обновленную поддержку для пакетов SDK для Xamarin для iOS и Android.
Запуск текущего представления в режиме реального времени
Новая функция запуска текущего представления в режиме реального времени еще больше упрощает создание пользовательских интерфейсов на основе XAML (рис. 2). Вводите код в эмуляторе Android и наблюдайте, как новый создаваемый интерфейс оживает у вас на глазах, — без необходимости сохранять, компилировать или повторно развертывать приложение.
Xamarin Live Player
Xamarin Live Player позволяет разработчикам непрерывно развертывать, тестировать и отлаживать свои приложения непосредственно на устройствах Android и iOS. Скачав приложение Xamarin Live Player из App Store или Google Play, вы можете связать свое мобильное устройство с Visual Studio и начать создавать собственные мобильные приложения, используя только эти два компонента. Благодаря оптимизации для Xamarin.Forms можно изменить XAML, и внесенные изменения быстро отобразятся на устройстве без необходимости компиляции или полного развертывания. Этот выпуск содержит многочисленные усовершенствования для функциональных возможностей Xamarin Live, включая приведенные далее.
- Оптимизированная отладка и запуск в режиме реального времени: теперь при отладке Xamarin Live Player автоматически настроит запускаемый проект под нужную платформу (рис. 3). Например, если выбрана ОС iOS и связанным устройством Live Player является Google Pixel, интегрированная среда разработки порекомендует изменить платформу запускаемого проекта на Android.
- Состояние развертывания: можно отслеживать состояние "Отладка" в Xamarin Live Player с помощью индикаторов статусов развертывания в строке состояния.
- Интеграция окна консоли и окна "Ошибка": выходные данные, зарегистрированные в приложении, теперь отображаются в окне консоли, а ошибки выводятся в окне "Ошибка" в Visual Studio.
- Контекстное меню и сочетание клавиш запуска в режиме реального времени: мы хотели упростить процесс мгновенной визуализации пользовательского интерфейса XAML и добавили контекстное меню и сочетание клавиш, чтобы ускорить и упростить предварительный просмотр XAML-страниц.
- Переключение между документами в режиме реального времени: при создании пользовательских интерфейсов, как правило, приходится переключаться между разными документами XAML. Изменение активного документа в Visual Studio будет происходить автоматически в режиме реального времени, независимо от того, какая страница XAML открыта, поэтому можно легко переключаться между предыдущими и следующими страницами, которые будут сразу же отображаться на устройстве.
Шаблоны
Файл —> новый проект —> мобильное приложение (рис. 4) просто упрощает обновление мастера кроссплатформенных шаблонов для приложений iOS, Android и Windows, в том числе:
- Поддержка .NET Standard — теперь можно создавать кроссплатформенное приложение Xamarin, применяющее .NET Standard 2.0 в качестве стратегии совместного использования кода.
- Флажок "Целевые платформы" — выберите нужные платформы в меню "Файл -> Создать".
PackageReference
— все шаблоны теперь по умолчанию используютPackageReference
, новый простой способ управления пакетами NuGet в приложениях Xamarin.- Улучшения производительности развертывания — шаблоны теперь должны развертываться гораздо быстрее, чем ранее. В чрезвычайных случаях можно наблюдать 40-кратное улучшение времени развертывания.
Удаленный симулятор iOS
Удаленный симулятор iOS работает полностью на базе Visual Studio в Windows и позволяет вам легко отлаживать и тестировать iOS-приложения. Он поддерживает все возможности симулятора iOS на Mac и даже больше, в том числе мультисенсорный ввод! Начиная с Visual Studio 2017 версии 15.5, удаленный симулятор iOS доступен во всех выпусках Visual Studio, включая бесплатный выпуск Community Edition.
Диспетчер пакетов SDK для Android для Xamarin
Управление пакетами SDK для Android стало проще благодаря новому диспетчеру пакетов SDK для Android для Xamarin. Чтобы воспользоваться новым диспетчером SDK, в Visual Studio выберите "Инструменты -> Android -> Диспетчер пакетов SDK для Android".
Усовершенствования инструментов F#
В Visual Studio 2017 версии 15.5 сделан акцент на поддержке инструментов F# для проектов SDK для .NET Core. Поддерживаются следующие возможности.
- Можно создавать консольные приложения .NET Core, библиотеки .NET Standard и проекты модульных тестов .NET Core, выбрав Файл > Создать проект.
- Добавлена поддержка существующих проектов .NET Core и .NET Standard.
- Добавлена поддержка существующих проектов SDK для .NET Core, предназначенных для .NET Framework.
- Поддерживаются ссылки проектов на проекты.
- Добавлена поддержка для проектов по веб-пакетам SDK (например, для проектов ASP.NET Core F# или проекта, использующего шаблон Giraffe).
- Теперь можно использовать вызываемые щелчком правой кнопки мыши средства публикации для работы с проектами по веб-пакетам SDK.
- Поддерживается автоматическое формирование конвейера непрерывной интеграции и непрерывной доставки с помощью инструментов Visual Studio Team Services.
Кроме того, внесен ряд улучшений для инструментов Visual F#, не используемых в проектах SDK для .NET. К ним относятся:
- Функция "Перейти к определению" в C#, F#; авторы: Сол Реннисон (Saul Rennison) и Василий Кириченко.
- Выделение цветом для темы "Синий (дополнительный контраст)"; авторы: корпорация Майкрософт и Василий Кириченко.
- Правильный автоподбор размера страниц свойств на разных мониторах.
- Интеллектуальный автоматический отступ для новых строк, если для параметра отступа задано значение "Smart" (Интеллектуальный); автор: Дак Нгхием Сюань (Duc Nghiem Xuan).
- Автоматическая отмена отступа для закрывающих квадратных скобок, если для параметра отступа задано значение "Smart" (Интеллектуальный); автор: Сол Реннисон (Saul Rennison).
- Поля перечислений теперь отображаются как символы в подсказках, функциях "Найти все ссылки", "Перейти ко всем" и "Встроенное переименование"; автор: Василий Кириченко.
- Комментарии XML-документации, разделяемые новыми строками, не добавляются в текущий комментарий XML-документа, отображаемый при наведении указателя мыши; автор: Василий Кириченко.
- Исправлена XML-документация для ключевого слова ref; автор: CHBen.
- Несколько исправлений ошибок и ряд улучшений производительности.
Сообщайте обо всех проблемах в нашем репозитории GitHub.
Изменения в установке F#
Изменен способ получения F#.
- При установке рабочей нагрузки, требующей .NET Core 2.0, по умолчанию также устанавливается поддержка языка F#. Теперь эту возможность реализуют рабочие нагрузки .NET Core, ASP.NET и Azure.
- Флажок "Поддержка языка F#" в рабочих нагрузках по разработке классических приложений .NET, по хранению и обработке данных и по разработке приложений для обработки и анализа данных и аналитических приложений был переименован в "Поддержка разработки классических приложений на F#".
Усовершенствования компилятора F# 4.1
В этом выпуске исправлено несколько ошибок компилятора F# 4.1.
- Усовершенствования процесса создания PDB-файла в компиляторе F#, исправлены пять известных проблем при отладке F#, относящихся к версии 2014.
- Исправление для полей записей, неправильно разрешаемых компилятором; автор: Василий Кириченко.
StartAsTask
теперь правильно ожидает отмены для завершения; автор: Матиас Дитрих (Matthias Ditrich).- Ссылки на сборки теперь создаются, только когда тип используется в атрибуте.
- Размеченные объединения с одной ветвью с тем же именем ветви более не преобразуются автоматически в тип объекта.
- Исправлен возможный бесконечный асинхронный цикл в
MailboxProcess
. Receive.
Усовершенствования Visual C++
Теперь вы можете импортировать существующие проекты CMake и конфигурации кэша в интегрированную среду разработки, выбрав Файл>Открыть>CMake.
Поддержка функции "Открыть папку" для операций экспорта веб-компилятора ARM
Выберите параметр в рабочей нагрузке Linux C++ для проектов для встроенных платформ и Интернета вещей и изменяйте и компилируйте проекты, предназначенные для микроконтроллеров ARM. Мы поддерживаем открытие проектов, экспортированных как GCC из веб-компилятора ARM, которые затем можно перекрестно скомпилировать в локальной среде Visual Studio. Дополнительные сведения см. в публикации в блоге о Visual C++ для разработки ARM.
Удаленные задачи
Функция "Открыть папку" теперь поддерживает удаленные задачи. Затем эти задачи выполняются в удаленной системе с помощью Secure Shell (SSH). Эти задачи можно также настроить для копирования файлов на целевой компьютер, чтобы выполнять такие действия, как компиляция кода с помощью команды make в системе Linux. Дополнительные сведения см. в публикации в блоге об использовании удаленных задач в Visual Studio.
Улучшения для библиотеки стандартных шаблонов
На веб-сайте открытых стандартов существует несколько страниц для групп, создающих открытые стандарты. Мы добавили приведенные ниже усовершенствования в стандартную библиотеку шаблонов в соответствии со стандартом C++17.
not_fn()
: P0005R4 рекомендует внедрить модуль привязки функцииnot_fn
из служб терминалов для основ работы с библиотеками v2 в качестве замены прежних элементов НЕ —not1
иnot2
.- Переформулирование
enable_shared_from_this
: P0033R1Re-enabling shared_from_this
. - Неподдерживаемые части библиотеки: P0174R2. Из-за внесения дополнений в течение нескольких лет было превышено количество функций стандартной библиотеки C++ либо мы узнали, что они не служат выполнению изначально ожидаемой цели. В этом документе предлагается не использовать устаревшие функции там, где доступны лучшие, более простые или понятные варианты.
- Удаление поддержки распределителя в
std::function
: P0302R1. Шаблон класса std::function имеет несколько конструкторов, которые принимают аргумент распределителя, но имеют неясную семантику. Кроме того, существуют технические проблемы с хранением распределителя в контексте стирания типа и последующем восстановлении этого распределителя для выделений, необходимых во время назначения копирования. Эти конструкторы должны быть удалены. - Исправления для
not_fn()
: P0358R1. Предлагается новая формулировка дляstd::not_fn
, которая наряду с другими усовершенствованиями поддерживает распространение категории значений в случае вызова программы-оболочки. shared_ptr<T[]>
,shared_ptr<T[N]>
: P0414R2. Объединение измененийshared_ptr
из основ работы с библиотеками с C++17.- Исправление
shared_ptr
для массивов: P0497R0. Исправления для поддержкиshared_ptr
для массивов. - Отказ от использования
shared_ptr::unique()
: P0521R0. Предложенное решение для CA 14 (shared_ptr use_count/unique
). - Отказ от использования
codecvt
: P0618R0,<codecvt>
не является оптимальным способом решения проблем с перекодированием Юникода, нужно прекратить использование этого компонента библиотеки, поместив его в приложение D. - Удаление динамических спецификаций исключений: P0003R5. Спецификации динамических исключений стали нерекомендуемыми в C++11. Удаление компонента из C++17, с сохранением (по-прежнему) нерекомендуемой спецификации throw() исключительно в качестве псевдонима для noexcept(true).
- Соединение карт и наборов: P0083R3. Такой подход позволяет объединять операции всех видов, перемещать элементы (включая ключи карты) из контейнера, а также выполнять другие полезные действия. Это улучшение для ассоциативных и неупорядоченных ассоциативных контейнеров, предназначенное для поддержки работы с узлами. Это дополнение к стандартной библиотеке.
- Уточнение
insert_return_type
: P0508R0. Ассоциативные контейнеры с уникальными ключами и неупорядоченные контейнеры с уникальными ключами имеют функцию-член insert, возвращающуюinsert_return_type
вложенного типа. Этот тип возвращаемого значения является специализацией типа, указанного в этом разделе. - Встроенные переменные для STL: P0607R0.
Усовершенствования компилятора Visual C++
Компилятор Visual C++ поддерживает около 75 % возможностей C++ 17, включая структурированные привязки, лямбда-выражения constexpr
, if constexpr
, встроенные переменные, выражения свертывания и добавление noexcept
в систему типов. Они доступны в параметре /std:c++17
. Режим совместимости /permissive-
включает частичную поддержку двухэтапного поиска имени и улучшенную поддержку раскрытия пакета для шаблонов с переменным числом аргументов. Кроме того, режим /permissive-
был добавлен в качестве нового раскрывающегося меню "Язык" в окне свойств проекта для проектов C++.
Усовершенствования оптимизатора Visual C++
Команда создания кода на C++ внесла усовершенствования в существующие оптимизации компилятора и добавила новые оптимизации в выпуск 15.5.
Ряд усовершенствований компоновщика:
- Новая и ускоренная реализация
/OPT:ICF
: повышение скорости компоновки до 9 %. - Внесены исправления в инкрементную компоновку. Инкрементная компоновка никогда не будет выполняться медленнее, чем полная компоновка.
Ряд усовершенствований существующих оптимизаций:
- Улучшена эвристика векторизатора для условных выражений.
- Улучшена оптимизация
loop-if-unswitching
. - Усовершенствовано развертывание циклов.
- Улучшено кодирование минимального или максимального значения для типа float.
Ряд новых оптимизаций:
- Усовершенствованы инструкции и устранены избыточные (и частично избыточные) инструкции для оптимизатора SSA.
- Оптимизирована векторизация условных скалярных хранилищ.
- Вызовы
sin(x)
иcos(x)
объединены вsincos(x)
.
Visual C++ поддерживает AVX-512 от Intel, включая инструкции по длине вектора, которые привносят новые функции AVX-512 в 128- и 256-битные регистры.
Мы поставляем более 20 новых проверок для рекомендаций C++ Core Guidelines в анализе кода C++. Они проверяют корректность интеллектуальных указателей, правильность использования глобальных инициализаторов и применение флагов конструкций, таких как goto
и bad_cast
.
Некоторые номера предупреждений, которые можно встретить в версии 15.3, больше не доступны в версии 15.5. Эти предупреждения были заменены более конкретными проверками.
Встроенная поддержка платформ Google Test и Boost.Test
Создавайте, обнаруживайте и выполняйте модульные тесты Google Test и Boost.Test в Visual Studio. Теперь по умолчанию обозреватель тестов поддерживает платформы Google Test и Boost.Test. Выполняя обновление с предыдущей установки Visual Studio, откройте Visual Studio Installer, нажмите кнопку "Изменить" в экземпляре Visual Studio и установите флажки "Адаптер тестов для Google Test" и "Адаптер тестов для Boost.Test" в разделе "Разработка классических приложений на C++". С легкостью создавайте новый проект Google Test: последовательно выберите Файл > Создать > Проект > Visual C++ > Тест > Google Test.
Дополнительные сведения см. на страницах Использование Google Test для C++ в Visual Studio и Использование Boost.Test для C++ в Visual Studio документации Майкрософт.
Веб-инструменты Visual Studio
- Улучшено форматирование синтаксиса Razor.
- Улучшена процедура публикации приложений ASP.NET на виртуальные машины Azure.
Инструменты работы с контейнерами Docker
- Инструменты Visual Studio для контейнеров Docker теперь поддерживают многоэтапные файлы Dockerfile, позволяющие упростить создание оптимизированных образов контейнеров.
- Если среда Visual Studio запущена на компьютере под управлением Windows 10 версии 1709 или Windows Server версии 1709, образы контейнера будут по умолчанию использовать Windows Server версии 1709. Это можно изменить путем редактирования файла Dockerfile. Обратите внимание, что образы контейнеров, использующие предыдущие версии Windows, будут выполняться только в Windows 10 версии 1709 и Windows Server версии 1709 в режиме изоляции Hyper-V. Дополнительные сведения см. на странице Совместимость версий контейнеров Windows.
- По умолчанию Visual Studio будет автоматически извлекать, собирать и запускать необходимые образы контейнеров в фоновом режиме при открытии проекта, который поддерживает Docker. Это поведение можно отключить с помощью параметра Автоматически запускать контейнеры в фоновом режиме в Visual Studio.
Усовершенствования TypeScript и JavaScript
Поддержка Angular 2
Разработчики на Angular2 теперь могут просматривать ошибки, завершения и выполнять переходы по коду во встроенных шаблонах и NGTML-файлах шаблона. Общие сведения и инструкции см. в примере проекта.
Повышение производительности
На страницу параметров проекта текстового редактора JavaScript/TypeScript добавлен флажок Анализировать только те проекты, которые содержат файлы, открытые в редакторе. Этот параметр предназначен для повышения производительности и надежности в больших решениях. Обратите внимание, что когда этот флажок установлен, потребуется выполнить сборку решения, чтобы увидеть полный список ошибок TypeScript во всех файлах.
Исправлена проблема, из-за которой языковой службе TypeScript и JavaScript приходилось использовать больше памяти, чем предусмотрено, и которая могла привести к загрузке неправильной версии TypeScript в решениях для нескольких проектов.
Инструменты Windows Communication Foundation (WCF)
Поставщик подключенной службы WCF Web Service Reference(рис. 5) теперь входит в состав Visual Studio 15.5.
Чтобы использовать это средство, щелкните правой кнопкой мыши элемент проекта зависимостей в проекте .Net Core, выберите параметр "Добавить подключенную службу" и введите адрес веб-службы, для которой требуется создать код. Созданный код прокси клиента WCF сохраняется в файле C#, который автоматически добавляется в проект. Это позволяет коду .NET Core легко взаимодействовать с веб-службой.
Дополнительные сведения см. в заметках к выпуску WCF Web Service Reference на сайте GitHub.
Отладка и диагностика
Отладка рабочих приложений с помощью отладчика моментальных снимков
Теперь вы можете использовать точки прикрепления (Snappoint) и точки ведения журнала (Logpoint) для отладки приложений ASP.NET и ASP.NET Core, работающих в службах приложений Azure, с минимальным воздействием на приложение.
- Задавайте точки прикрепления (рис. 6), чтобы записывать состояние своего приложения, включая локальные переменные, контрольные значения и стек вызовов. В отличие от точек останова приложение не будет останавливаться по достижении точки моментальных снимков.
- Используйте точки ведения журнала (рис. 7), чтобы записывать в журнал новые сообщения от вашего приложения без необходимости добавлять код или выполнять повторное развертывание.
Поддержка внедренного источника и внедренного PDB-файла
С помощью внедренного источника отладчик Visual Studio теперь может получать и использовать исходные файлы для управляемых двоичных файлов непосредственно из PDB-файлов. Используйте внедренный источник вместе с внедренным PDB-файлом для создания полностью автономных библиотек с поддержкой отладки. Узнайте больше об использовании параметра компилятора /embed.
Теперь при построении с использованием внедренных PDB-файлов можно выполнять отладку с помощью функции "Изменить и продолжить" для управляемого кода.
Переход назад во время отладки с помощью IntelliTrace
С новой функцией Переход назад во время отладки IntelliTrace автоматически создает моментальный снимок приложения на каждой точке останова и на каждом шаге отладчика. Это позволяет возвращаться к ним и просматривать предыдущее состояние приложения.
Эта функция доступна для юбилейного обновления Windows 10 и более поздних версий. Сейчас она поддерживает отладку ASP.NET, WinForms, WPF, управляемых консольных приложений и управляемых библиотек классов (рис. 8). Чтобы включить ее, выберите Сервис>Параметры>Параметры IntelliTrace, а затем выберите События и моментальные снимки IntelliTrace.
Доступ к ресурсам Azure из Visual Studio с помощью включенного условного доступа
Теперь Visual Studio поддерживает доступ к ресурсам Azure, для которых включен условный доступ, требующий выполнять двухфакторную проверку подлинности, даже если сама ваша учетная запись не требует такого типа проверки. Ранее, если для входа в вашу учетную запись требовалось пройти двухфакторную проверку подлинности, в Visual Studio выводился запрос на двухфакторную проверку подлинности, после чего вы могли обращаться к ресурсам, требующим двухфакторную проверку подлинности. Но если для вашей учетной записи не требовалась двухфакторная проверка подлинности, Visual Studio не удавалось получить доступ к этим ресурсам.
Теперь, если учетным записям не требуется двухфакторная проверка подлинности, но она требуется ресурсам, можно проверять подлинность вашей учетной записи в Visual Studio без двухфакторной проверки подлинности, и при первой попытке доступа к ресурсу Azure, который требует двухфакторную проверку подлинности, Visual Studio предложит повторно пройти проверку подлинности, и для доступа к ресурсу будет необходима двухфакторная проверка подлинности.
Поддержка инструментов Office для Office в Магазине Windows
Проекты для веб-надстроек Office и проекты VSTO теперь поддерживают разработку с помощью Office в Магазине Windows. Используя Office в Магазине Windows, можно создавать проекты для веб-надстроек Office и проекты VSTO, выполнять их сборку, отладку и публикацию.
- Для работы с инструментами Office с Office в Магазине Windows требуется обновление Fall Creators Update (версия 1709) для Windows 10 или Windows Server 2016.
Набор средств Visual Studio для Unity
- Проекты Unity теперь автоматически повторно загружаются в Visual Studio при добавлении или удалении скриптов Unity.
- Исправлено. Создание проекта проигрывателя при работе над игрой UWP с использованием серверной среды IL2CPP/.NET 4.6.
- Появилась возможность использовать отладчик Mono, общий для Xamarin и Visual Studio для Mac, для отладки редактора Unity.
Динамическое модульное тестирование
- Сборки Live Unit Testing теперь являются внепроцессными, что улучшает использование памяти в Visual Studio.
Упаковка Windows
Добавлена поддержка в проект упаковки, позволяющая включать приложения и компоненты UWP для использования новейших возможностей Windows 10 из существующих классических приложений. Для включения компонентов UWP можно Add Reference
в приложение UWP (рис. 9).
Мастер хранения пакетов можно использовать для создания файлов, необходимых для отправки приложения моста для классических приложений в хранилище, как и в случае с существующими проектами UWP.
Visual Studio 2017 версии 15.5.1
Выпущено 7 декабря 2017 г.
Основные проблемы, исправленные в версии 15.5.1
Эти проблемы, о которых сообщили клиенты, исправлены в этом выпуске.
- В шаблоне указана неправильная версия
xamarin.forms
. - Переключение ветвей в Git нарушает работу IntelliSense.
- Выводятся сообщения об ошибках при их полном отсутствии (проекты Visual Basic).
- Xamarin теперь поддерживает Xcode 9.2:
- Это позволяет устранить проблемы клиентов с раскадровками и удаленным симулятором.
Visual Studio 2017 версии 15.5.2
Выпущено 14 декабря 2017 г.
Основные проблемы, исправленные в версии 15.5.2
Эти проблемы, о которых сообщили клиенты, исправлены в этом выпуске.
- Не удается выполнить сборку проекта Xamarin Android, так как используется
R$anim.class
. - Не удалось загрузить пакет
MonoAndroidDesignerPackage
. - Crypto++ с оптимизациями по умолчанию переходит в бесконечную компиляцию при попытке оптимизировать blake2.cpp.
- Миграция с Visual Studio 2017 15.4 на версию 15.5 вызывает ошибку CS026 "Не удалось найти имя типа или пространства имен XXX...".
- Установка Visual Studio 2017 Community 15.5 с
Option Strict On
вызывает ошибки Intellisense в проектах VB. - Бесконечное время компиляции при попытке оптимизировать blake2.cpp.
- Сбой случайной подсистемы в оптимизаторе Visual Studio 15.5.
- При миграции на Visual Studio 15.5 (с 15.4) не удается скомпилировать
mhook:disasm_x86.c
. - В результате установки Unity и новой Visual Studio Community 15.5 не распознается пространство имен.
Visual Studio 2017 версии 15.5.3
Выпущено 9 января 2018 г.
Общие сведения об обновлениях в версии 15.5.3
Советы по обеспечению безопасности Майкрософт для .NET Core
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.
Основные проблемы, исправленные в версии 15.5.3
Эти проблемы, о которых сообщили клиенты, исправлены в этом выпуске.
- Ошибка C3821
xlocale
в c++/clr. - Использование заголовка в секции неуправляемого кода в управляемом проекте C++/CLI больше не позволяет выполнить сборку.
- Сбой VS2017 с WDK 10 при удаленной подготовке режима ядра.
- Инструменты Visual Studio для Unity не преобразуют символы отладки после обновления до VS 15.5.
- См. новые сведения о Советах по безопасности Майкрософт для .NET Core.
Visual Studio 2017 версии 15.5.4
Выпущено 16 января 2018 г.
Основные проблемы, исправленные в версии 15.5.4
Эти проблемы, о которых сообщили клиенты, исправлены в этом выпуске.
- Отладчик не может продолжить выполнение процесса. Операция не поддерживается. Неизвестная ошибка: 0x9233000b.
- Последние проекты и решения не заполняются после выполнения.
- В версии 15.5 каждый раз выполняется полная сборка.
- В проектах Visual Basic в VS 15.5.2 по-прежнему отображаются неверные ошибки IntelliSense.
- Не разрешаются ссылки, когда включено "Разрешить параллельную инициализацию проекта" в VS2017 15.5.2.
- Обновление до 15.5.2: не удается запустить или исправить VS.
- Проблема с установкой VS2017.
- При установке возникает ошибка "синий экран".
Visual Studio 2017 версии 15.5.5
Выпущено 25 января 2018 г.
Общие сведения об обновлениях в версии 15.5.5
- В компилятор MSVC добавлена поддержка параметра /Qspectre, который автоматически ставит барьер на упреждающее выполнение, если компилятор обнаруживает экземпляры первого варианта Spectre. Дополнительные сведения о /Qspectre см. в блоге команды разработчиков Visual C++.
Основные проблемы, исправленные в версии 15.5.5
Эти проблемы, о которых сообщили клиенты, исправлены в этом выпуске.
- Приложение Xamarin выдает ошибку
Cannot access a disposed object. Object name: 'MobileAuthenticatedStream'
. - Приложение Xamarin.Android вызывается
ClassNotFoundException
при производных отApplication
классах. - Обновление может вызвать удаление ранее установленных пакетов SDK для Windows и Android.
- Пакет JDK 8 обновлен до последней версии для предотвращения сбоев загрузки с веб-сайта Oracle.
Visual Studio 2017 версии 15.5.6
Выпущено 29 января 2018 г.
Общие сведения об обновлениях в версии 15.5.6
Visual Studio 2017 версии 15.5.7
Выпущено 20 февраля 2018 г.
Общие сведения об обновлениях в версии 15.5.7
- Поддержка TLSv1.2 в Team Explorer. Мы обновили компоненты Git и Git Credential Manager, которые предоставляются в Visual Studio. Дополнительный компонент Git для Windows также обновлен. Это обновление позволяет Git подключаться к службам, которые больше не поддерживают TLSv1 и TLSv1.1, но поддерживают TLSv1.2.
Основные проблемы, исправленные в версии 15.5.7
Эти проблемы, о которых сообщили клиенты, исправлены в этом выпуске.
- Проекты, предназначенные для .NET Core 2.1 или более новой версии, не поддерживаются в Visual Studio 2017 версии 15.5.
- Исправлена проблема, когда установка пакета SDK для .NET Core 2.1 или более поздней версии приводила к инактивации параметра создания веб-приложений ASP.NET Core 2.0.
Известные проблемы
Мы серьезно относимся к вашим отзывам. Чтобы найти список последних проблем, сообщить о новых проблемах и проголосовать за решение существующих проблем, зайдите на сайт сообщества разработчиков.
Узнайте обо всех известных проблемах и доступных решениях в Visual Studio 2017 версии 15.5.
Отзывы и предложения
Мы будем рады узнать ваше мнение! Вы можете сообщить о проблемах, щелкнув пункт Сообщить о проблеме в правом верхнем углу установщика или самой IDE-среды Visual Studio. Значок находится в правом верхнем углу. Вы можете предлагать для продукта новые функции, задавать вопросы, находить ответы и отслеживать решение своих проблем в сообществе разработчиков Visual Studio. Кроме того, вам доступна бесплатная поддержка в чате по вопросам с установкой.
Блоги
Воспользуйтесь аналитикой и рекомендациями с сайта Developer Tools Blogs. Там вы найдете актуальные сведения обо всех новых выпусках и сможете читать публикации с подробным анализом самых разных функций.
Журнал заметок о выпусках Visual Studio 2017
Дополнительные сведения по предыдущим версиям Visual Studio 2017 см. на странице Журнал заметок о выпуске Visual Studio 2017.