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


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



Примечание

Этот выпуск — не последняя версия Visual Studio. Вы можете скачать последний выпуск на странице заметок о текущем выпуске для Visual Studio 2019.


Чтобы скачать Visual Studio 2017, нажмите кнопку "Скачать" и войдите в свою подписку на Visual Studio при появлении соответствующего запроса. Если у вас нет подписки на Visual Studio, вы можете создать ее бесплатно, перейдя по ссылке "Создать учетную запись Майкрософт" на странице входа. Рекомендуем использовать Visual Studio 2019, чтобы получить доступ к последним версиям компонентов и исправлениям ошибок.

Другие продукты Visual Studio 2017 можно скачать на странице предыдущих версий.


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

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

Выпуски Visual Studio 2017 версии 15.8

Важно!

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

Сводка по новым возможностям в 15.8

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

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

Просмотрите все проблемы, о которых сообщили клиенты и которые были исправлены в Visual Studio 2017 версии 15.8.

The Developer Community Portal


Подробные сведения о новых возможностях в версии 15.8

Release Notes Icon Visual Studio 2017 версии 15.8.0

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

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

Установка

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

  • Чтобы использовать ее, выберите параметр "Скачать все и установить" в установщике (рис. 1) . Мы советуем использовать этот параметр, если у вас медленное подключение к Интернету.
  • Параметр по умолчанию — по-прежнему "Установить во время загрузки"; здесь в параллельном режиме ведутся скачивание и установка.
Download Otion
Рис. 1. Вариант загрузки

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

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

  • Переключение ветвей для проектов на C#, VB и C++ выполняется в больших решениях гораздо быстрее, так как перезагружать решение больше не требуется.
  • Мы сократили время выгрузки и повторной загрузки подмножества проектов на C# и VB в крупных решениях с минут до нескольких секунд.
  • Мы добавили отключение возможности заново открывать документы, которые были открыты в предыдущем сеансе, так как повторное открытие определенных типов файлов или конструкторов может вызвать задержку при загрузке решения.
    • Этот параметр находится в меню Сервис > Параметры > Проекты > Решения > Общие.

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

Мы значительно повысили скорость выполнения нескольких тестов в большом решении с несколькими тестовыми проектами. В лабораторных условиях у решения более чем с 10 000 тестами MSTest одиночный тест выполняется до 82 % быстрее!

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

Visual Basic теперь обеспечивает значительное улучшение производительности при использовании шаблона CInt(Fix(number)) для преобразования из нецелочисленных типов в целые числа.

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

Выпуск содержит следующие улучшения в области производительности профилирования:

  • Мы добавили возможность начать профилирование в приостановленном состоянии:

    • средство использования ЦП в профилировщике производительности (ALT-F2) теперь можно запустить в приостановленном состоянии (рис. 2) . Это может быть полезно в ожидании сценария, который заслуживает изучения использования ЦП. Если сбор сведений об использовании ЦП отключен при запуске, профилировщик производительности не собирает какие-либо образцы стека данных ЦП, пока сбор сведений не будет явно включен. В результате итоговый объем данных, которые приходится собирать и анализировать, становится меньше, и исследование производительности будет более эффективным.

    • Чтобы начать сеанс с отключенным сбором примеров использования ЦП, щелкните значок шестеренки рядом с пунктом Использование ЦП на странице запуска профилировщика производительности. На странице свойств использования ЦП снимите флажок Включить профилирование ЦП (выборка) и нажмите кнопку ОК для сохранения настроек.

      CPU Usage Tool settings page
      Рис. 2. Параметры средства загрузки ЦП
    • Когда вы запустите целевое приложение (нажмите кнопку Пуск на странице запуска профилировщика производительности), вы увидите график использования ЦП (рис. 3) , который позволяет управлять профилированием ЦП. Чтобы включить сбор образцов данных использования ЦП, нажмите Включить профилирование ЦП в средней части представления или нажмите кнопку Запись профиля ЦП под графиком использования ЦП. Можно нажать кнопку Запись профиля ЦП, чтобы включить или отключить сбор образцов данных, столько раз, сколько захотите. Цвет графика использования ЦП изменяется, указывая, включен ли сбор образцов в определенный момент времени.

      CPU Usage Tool monitoring view
      Рис. 3. График использования ЦП
  • Мы добавили средство отслеживания выделения объектов .NET:

    • Средство отслеживания выделения объектов .NET дополняет семейство средств, доступных из профилировщика производительности. Вызов этого средства для сеанса анализа производительности в профилировщике вызывает сбор трассировки стека при каждом выделении объектов .NET, которое происходит в целевом приложении. Эти данные из стека анализируются вместе с информацией о типе и размере объекта, чтобы можно было отобразить сведения о действиях приложения в памяти. Можно быстро определить шаблоны выделения памяти в коде и выявлять отклонения. Кроме того, для событий сборки мусора можно легко определить, какие объекты собираются и сохраняются, быстро определяя типы объектов, которые сильнее всего могут влиять на использование памяти приложением.
    • Это особенно полезно для модулей записи API, чтобы свести к минимуму выделения. В большом количестве приложений произойдет переполнение буфера сбора диагностических данных, но небольшие тестовые приложения, использующие ключевые сценарии работы API, можно диагностировать весьма неплохо. Во время выполнения тестового приложения профилировщик производительности отображает линейный график действующих объектов (число), а также гистограмму изменения объектов (процент изменения).
    • Чтобы использовать средство отслеживания выделения объектов .NET, на странице запуска профилировщика производительности (рис. 4) , выберите целевой профиль (целевой объект по умолчанию — запускаемый проект в решении), проверьте, есть ли отслеживание выделения объектов .NET в списке доступных средств, затем нажмите Пуск.
    Performance Profiler launch page
    Рис. 4. Страница запуска профилировщика производительности

Профилирование производительности (использование ЦП)

Этот выпуск содержит следующие улучшения в средстве использования ЦП из профилировщика производительности (доступ по ALT-F2):

  • Представление дерева вызовов теперь по умолчанию отображает асинхронное выполнение по стеку логических вызовов. Это поведение можно отключить, сняв флажок Совмещение асинхронного кода в раскрывающемся списке "Фильтр" в основном представлении загрузки ЦП.
  • Добавлено представление модулей и функций, в котором отображается информация о производительности по модулям (DLL) и функциям в модуле. Отобразить представление модулей и функций можно через контекстное меню при выборе функции в главном представлении использования ЦП или через раскрывающийся список представлений в дереве вызовов или представлении "Вызывающий/вызываемый".
  • На график использования ЦП в главном представлении средства использования ЦП добавлено указание экземпляра. Вы можете просмотреть экземпляры при выполнении функции (например, в стеке), дважды щелкнув функцию, указанную в любом из представлений средства использования ЦП.

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

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

  • Можно вести дополнительную очистку кода при помощи команды Форматировать документ (Ctrl + K, D или Ctrl + E, D) для разработки на языке C#. Настроить очистку можно в разделе Сервис > Параметры > Текстовый редактор > C# > Стиль кода > Форматирование > Общие.
  • Мы добавили дополнительный рефакторинг и быстрые действия с помощью Ctrl + . или ALT + ВВОД:
    • Обратить If позволяет обратить логику в инструкциях if-else. Поместите курсор на ключевое слово if для активации этого способа рефакторинга.
    • Добавление параметра с места вызова метода позволяет добавить параметр к методу, добавив аргумент в месте вызова метода и активировав Быстрые действия и рефакторинг.
    • Удаление ненужных скобок удаляет вокруг бинарных операторов круглые скобки, которые не нужны для компиляции. Можно настроить это правило стиля в меню Сервис > Параметры > Текстовый редактор > C# > Стиль кода > Общие или файле EDITORCONFIG:
      • dotnet_style_parentheses_in_arithmetic_binary_operators
      • dotnet_style_parentheses_in_relational_binary_operators
      • dotnet_style_parentheses_in_other_binary_operators
      • dotnet_style_parentheses_in_other_operators
    • Использовать троичные условные операторы в присваиваниях и операторах "return"  — эту функцию также можно настроить в качестве правила стиля в меню Сервис > Параметры > ... или файле EDITORCONFIG:
      • dotnet_style_prefer_conditional_expression_over_assignment
      • dotnet_style_prefer_conditional_expression_over_return
  • Мы добавили новые команды и улучшения в окне Перейти к общему списку:
    • Перейдите к включающему блоку (CTRL + ALT + ВВЕРХ), чтобы быстро перейти к началу кода включающего блока.
    • Перейдите к следующей или предыдущей проблеме (ALT + PGUP/PGDN), чтобы найти следующую или предыдущую проблему (ошибка, волнистая линия, лампочка).
    • Переход к элементу (Ctrl + T, M) теперь по умолчанию ограничен файлом. Выбор по умолчанию можно изменить на решение, переключив область текущего документа (CTRL + ALT + C).
  • Теперь можно создавать точки вставки и выбора в нескольких произвольных местах в файлах с поддержкой нескольких курсоров. Это позволяет добавлять, изменять или удалять текст в нескольких местах одновременно.
    • Вставить курсор можно сочетанием CTRL + ALT + левая кнопка мыши.
    • Добавить в следующее расположение, соответствующее текущему выбору, выделение и курсор можно сочетанием SHIFT + ALT + INS.
    • См. полный список действий в разделе Правка > Несколько курсоров.
  • Доступ к контекстному меню навигации — ALT + ` .
  • Обеспечьте согласованность сочетаний клавиш с помощью двух новых профилей клавиатуры: Visual Studio Code и ReSharper (Visual Studio) . Вы найдете эти схемы в разделе Инструменты > Параметры > Среда > Клавиатура в верхнем раскрывающемся меню.

Отладка

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

  • Если в системе установлено больше одного экземпляра Visual Studio 2017, можно выбрать экземпляр для развертывания при отладке (рис. 5) . Это позволяет выполнять разработку, например в канале выпуска Visual Studio во время отладки в канале предварительного просмотра.

    Select your debug instance
    Рис. 5. Выбор экземпляра отладки
  • Snapshot Debugger теперь можно прикреплять прямо на странице сводки публикации (рис. 6) .

    Attach Snapshot Debugger from Publish Summary page
    Рис. 6. Прикрепление Snapshot Debugger со страницы сводки публикации
  • Добавлена поддержка просмотра управляемых задач в окне задач при отладке минидампов с кучей.

Инструменты для разработчиков универсальной платформы Windows

Мы внесли множество важных улучшений в конструктор XAML для проектов, предназначенных для универсальной платформы Windows с версией целевой платформы Windows 10 Fall Creators Update (сборка 16299) или более поздней версии. в том числе следующих.

  • Коллекции теперь можно изменять в инспекторе свойств.
  • Конструктор теперь позволяет редактировать шаблоны, в том числе при определении этих сущностей в других документах.
  • Свойства типа IconElement (например, значок в AppBarButton) теперь имеют настраиваемый редактор в инспекторе свойств, что упрощает задание этих свойств.
  • Конструктор, редактор и функция "Изменить и продолжить" теперь должны корректно работать с x:DefaultBindMode.
  • Диспетчер визуальных состояний задачи в Blend теперь поддерживает AdaptiveTrigger.

Инструменты F# 4.5 и F# для Visual Studio

В этом выпуске мы представили язык F# версии 4.5, а также новое семейство FSharp.Core версии 4.5.x (основную версию F#). Спецификации каждого из этих изменений см. в репозитории F# RFC. Кроме того, в этом выпуске представлено множество улучшений в инструментах F# для Visual Studio.

F# 4.5

Ниже представлены некоторые ключевые элементы языка F# версии 4.5:

Поддержка Span <'T>

Мы реализовали Span<'T> и связанные компоненты, что обеспечивает эффективное использование и производство API с помощью конструкций Span, Memory и ref с F#. В число связанных компонентов входят:

  • Новый тип voidptr.
  • Новые компоненты NativePtr.ofVoidPtr и NativePtr.toVoidPtr в FSharp.Core.
  • Новые типы inref<'T> и outref<'T>, которые представляют собой соответственно массивы byrefs только для чтения и массивы byrefs только для записи. Это соответствует in ref и out ref в C#.
  • Возможность создавать структуры ByRefLike (такие как Span и ReadOnlySpan).
  • Возможность создавать структуры IsReadOnly.
  • Неявные разыменования возвращаемых из методов значений byref и inref.
  • Возможность создавать члены расширений в byref/inref/outref.

Этот набор функций исправляет ошибку в первоначальной конструкции возвращаемых значений byref на языке F# 4.1, где функции, методы и свойства, возвращающие byref, не осуществляли прямое разыменование возвращаемого значения. Мы внесли это изменение, чтобы привести этот компонент в соответствие с тем, как C# обрабатывает возвращаемые значения ref. Сообщение об ошибке используется, если аннотация типа указывает, что неявное разыменование возвращаемых значений ref сейчас используется.

Кроме того, эта функция также исправляет ошибку в компиляторе F#, которая вызывала "замену вредоносной структуры", т. е. вызов метода в структуре F# может заменять фактическую структуру, вызываемую с помощью другого метода. Параметр this в структуре теперь рассматривается как inref<MyStruct> и при попытке изменения структуры вызывает ошибку, предполагающую, что вы добавляете изменяемое поле.

Дополнительные сведения о конструкциях вида span и ref см. в RFC для этой набора компонентов.

Match! в вычислительных выражениях

В F# 4.5 появилось match!, новое ключевое слово для использования в вычислительных выражениях, прямо указывающее на Джона Уостенберга. Этот синтаксический прием эквивалентен let!, за которым в результате следует match. Дополнительные сведения см. в RFC для match!.

Уменьшена необходимость в восходящем приведении с yield в последовательностях, списках и выражениях массива

В F# 4.5 ослаблены требования в некоторых случаях, когда раньше для конвертации подтипа в супертип требовалось использование yield. Это ограничение не требовалось для этих выражений, начиная с F# 3.1, если при этом не использовался yield, поэтому данное обновление обеспечивает еще более высокую согласованность с существующим поведением. Дополнительные сведения см. в RFC для этого компонента.

Разрешено использование отступов в скобках списков и массивов

В F# 4.5 ослаблено правило отступа в скобках списков и массивов, которые раньше при указании на отдельной строке должны были отступать на одну область. Это прежнее требование всегда было довольно запутанным, особенно для новичков в F#. Отступ также не требуется для последовательностных выражений F#. Это также переводит выражения массивов и списков в такое же состояние, как у последовательностных выражений. Дополнительные сведения см. в RFC для этого компонента.

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

Теперь F# 4.5 выдает случаи перечисления как общедоступные при любых обстоятельствах в соответствии с тем, как выдает случаи перечисления C#. Это также упрощает для средств профилирования анализ журналов из кода F#, где выдается значение, а не имя метки. Дополнительные сведения см. в RFC для этого компонента.

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

Усовершенствования компилятора F# дополняют указанные выше языковые компоненты F# 4.5. Сюда входит следующее.

  • Мы улучшили производительность компилятора, убрав до 2,2 % всех распределений в компиляторе F# (в различных сценариях).
  • Мы исправили ошибку, которая вызывала AccessViolatioNException при использовании yield! с перечислимыми объектами на основе структур.
  • Возвращена возможность наследования из FSharpFunc.
  • Вызовы с префиксом tail для отладочных сборок F# для .NET Core по умолчанию отключены. Они включены для выпуска, что соответствует параметрам настольного компилятора F#.
  • Нормализации ссылок в F# исправлена и теперь позволяет управлять ссылками на транзитивные сборки, записываемые в выходной файл. Это работает как перенаправление сборки на платформе .NET Core.
  • Мы исправили ошибку, из-за которой сообщение об ошибке, возникавшее при попытке использовать динамический вызов для встроенных функций, игнорировалось. Теперь сообщение об ошибке распространяется.
  • F# теперь учитывает флаг WarningsNotAsErrors, который можно установить в файлах проекта.
  • Исаак Абрахам обновил сообщение об ошибке, которое появляется в случаях, если соотнесение ветвей шаблона не возвращает одинаковый тип, и сделал его более понятным.
  • Стеффен Форкманн устранил проблему, из-за которой при компиляции реализации интерфейса без реализации перегруженного метода возникала внутренняя ошибка.
  • Готье Сегэй удалил ненужное копирование массивов на этапе лексического анализа в компиляторе.
  • При неполных совпадениях перечислений F# с шаблоном теперь выдаются подробные предупреждение с примером ситуации, который предоставил Джон Уостенберг.
  • Благодаря Матиасу Дитриху `#nowarn "2003" теперь учитывается,.
  • Стивен Форкманн исправил ошибку, из-за которой использование методов расширения в C# могло не работать в разрешении перегрузки F#.
  • Стеффен Форкманн исправил внутреннюю ошибку структуры данных QueueList.
  • Стеффен Форкманн, Евгений Аудучинок и ncave провели работу по оптимизации и очистке кода.

Основная библиотека F# 4.5.x

Доступны следующие дополнения к основной библиотеке F#:

  • Проделан значительный объем работы по улучшению трассировки стека для выражений вычисления async { }. Теперь в трассировках стека можно увидеть пользовательский код и пользовательские номера строк. Дополнительные сведения см. в RFC для этого компонента.
  • API-интерфейсы FuncConvert.FromFunc и FuncConvert.FromAction, которые вводят перегрузки System.Func и System.Action, облегчая взаимодействие с C#. Дополнительные сведения см. в RFC для этого компонента.
  • ValueOption — это новый тип, первый из ряда будущих компонентов, предназначенных для повышения производительности активных шаблонов. Дополнительные сведения см. в RFC для этого компонента.
  • TryGetValue — теперь новый член типа сопоставления F#. Дополнительные сведения см. в RFC для этого компонента.
  • Мы устранили проблему высокой загрузки ЦП при первом вызове MailboxProcessor.TryReceive.
  • Для сравнения по bool теперь используется быстрое универсальное сравнение, реализованное Василием Кириченко.
  • Патрик Макдональд исправил текст сводки для Array.allPairs.

Усовершенствования в инструментах F#

В этом выпуске значительно улучшены инструменты F# — повышена производительность и добавлены некоторые новые возможности редактора. Как всегда, в работе активно использовались материалы сообщества по работе с открытым кодом F#. Вот некоторые основные моменты:

  • Мы улучшили производительность IntelliSense для всевозможных проектов типа пакетов SDK для .NET, включая проекты с поддержкой нескольких целевых версий.
  • В работе сообщества по анализу и улучшению производительности IntelliSense для очень больших файлов приняли участие Василий Кириченко, Стеффен Форкманн и Готье Сегэй. IntelliSense в очень больших файлах (больше 10 тысяч строк кода) теперь работает вдвое быстрее.
  • Предупреждение об устаревшем FSharp.Core (несмотря на устанавливаемый пакет) больше не появляется в проектах типа пакетов SDK для .NET.
  • Подсказка к описанию, в которой отображается XML-документация для элемента после . в IntelliSense больше не имеет срока действия в 10 секунд.
  • Устранена ошибка, которая не позволяла задавать точки останова в аргументах конструктора объектов.
  • Устранена ошибка, из-за которой переименованный символ, который являлся общим параметром, мог дублироваться.
  • Шаблоны для .NET Framework (классические шаблоны F#) теперь используют FSharp.Core из пакета NuGet, чтобы соответствовать шаблонам .NET SDK F#.
  • Автоматическое закрытие скобок теперь доступно для пар скобок (), [], {}, [||] и [<>]. Эта функция была разработана в сотрудничестве с Джибраном Роза.
  • Теперь можно перейти к определению с помощью комбинации CTRL + щелчок на символе F#. Параметры для этого жеста также учитываются в окне Сервис > Параметры.
  • Возможности пользовательского интерфейса IntelliSense были улучшены, чтобы разрешить настройку устаревших сведений о проверке типов для различных функций IDE. Описания для каждого параметра отображаются во всплывающих подсказках параметров.
  • Выделение соответствующих скобок теперь работает правильно. Исправлено в сотрудничестве с Василием Кириченко.
  • Переход к определению теперь происходит корректно, если тип определяется рекурсивно. Внесено Василием Кириченко.
  • Ошибка, когда автоматически импортируемое пространство имен не открывалось при пустом начале файла, исправлена Василием Кириченко.
  • Ошибка, когда спецификаторы printf, содержащие точки, выделялись не тем цветом, исправлена Василием Кириченко.
  • Ошибка, когда все импортируемые с помощью оператора open объекты считались неиспользуемыми внутри рекурсивного модуля, исправлена Василием Кириченко.
  • Производительность анализатора неиспользуемых импортов значительно повышена Василием Кириченко.
  • Автозавершение для атрибутов теперь предлагает только те варианты, которые фактически являются атрибутами. Внесено Василием Кириченко.
  • Всплывающие подсказки по сигнатурам для статических параметров поставщика типов теперь генерируются в месте вызова конструктора. Внесено Василием Кириченко.
  • Ошибка, когда типы значений, используемые в качестве единиц измерения, выделялись как ссылочные типы, исправлена Василием Кириченко.
  • Ошибка, когда семантическое выделение цветом в некоторых файлах пропадало при прокрутке, исправлена Василием Кириченко.
  • Добавлена экспериментальные реализация CodeLens, которую разработал Виктор Петер Рувен Мюллер. Ее можно включить, перейдя в Параметры > Текстовый редактор > F# > Code Lens.
  • Ошибка, когда служба компилятора F# ошибочно игнорировала имена модулей в XML-документации, была устранена Себастьеном Урбаном.
  • Код, использующий Dictionary с ContainsKey и последующими вызовами Item теперь использует TryGetValue. Изменение внес Евгений Аудучинок.
  • Также Якоб Майока внес вклад в процесс использования другого API во всплывающих подсказках.

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

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

  • Компилятор F#, входящий в состав Visual Studio, больше не устанавливается как отдельный компонент в папке пакета SDK для компилятора F#. Теперь он стал полностью параллельным с Visual Studio. Это означает, что параллельные установки Visual Studio, наконец, будут иметь по-настоящему параллельные инструментарий и языковые настройки языка F#.
  • Пакет NuGet FSharp.Core теперь является подписанным.
  • В инструментарий и компилятор F# добавлена возможность работы с журналом трассировки событий Windows.
  • Очень большие файлы control.fs/control.fsi в FSharp.Core разделены на файлы async.fs/async.fsi, event.fs/event.fsi, eventmodule.fs/eventmodule.fsi, mailbox.fs/mailbox.fsi и observable.fs/observable.fsi.
  • Мы добавили версии в стиле .NET SDK артефактов нагрузочных тестов производительности проекта.
  • Мы удалили Newtonsoft.json из базы кода, и теперь участникам OSS требуется скачивать на один пакет меньше.
  • Теперь мы используем последние версии System.Collections.Immutable и System.Reflection.Metadata.

Улучшения по соответствию стандартам и набора инструментов C++

Этот выпуск содержит следующие улучшения соответствию стандартам и набора инструментов C++:

  • Новый экспериментальный препроцессор на основе маркеров, соответствующий стандартам C++11 (включая возможности препроцессора C99), включается переключателем /experimental:preprocessor. Это контролируется с помощью макроса _MSVC_TRADITIONAL, которой равен 1 при использовании традиционного препроцессора и 0, при использовании нового экспериментального препроцессора, соответствующего стандартам.
  • Командная строка разработчика Visual Studio поддерживает включение первого варианта уменьшения рисков среды выполнения Visual C++ Spectre (-vcvars_spectre_libs = spectre). Дополнительные сведения об устранении рисков Spectre читайте в блоге команды разработчиков Visual C++.
  • Две новые функции оптимизатора SSA помогают в создании современного кода C++: исключение избыточных хранилищ и свертывание избыточных ветвей.
  • В компоновщике оптимизирована производительность MMIO для уменьшения времени компоновки.

Кроссплатформенная разработка на C++

В этом выпуске мы внесли следующие изменения и улучшения для кроссплатформенной разработки на C++:

  • Добавлен шаблон Добавить > Новый элемент для создания файла .clang-format в соответствии с соглашением по написанию кода, заданному для ClangFormat в разделе Сервис > Параметры. Если выбрано соглашение Visual Studio, созданный файл будет в максимально возможной степени соответствовать текущим настройкам пользователя Visual Studio по форматированию в разделе Сервис > Параметры.
  • Версия clang-format.exe в комплекте поставки обновлена до 6.0.0.
  • Шаблоны для упрощения добавления конфигурации в CppProperties.json.
  • Добавлены шаблоны для упрощения добавления конфигурации в CMakeSettings.json (рис. 7) .
Configuration templates for CMake
Рис. 7. Шаблоны конфигурации для CMake

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

Мы внесли следующие улучшения и усовершенствования для повышения производительности C++:

  • Подсказки к макросам C++ теперь содержат сведения о том, что они расширяют, а не просто их определение. Это особенно полезно для сложных макросов, которые ссылаются на другие макросы, так как это поясняет, чем будет заменен идентификатор макроса при обработке препроцессором.
  • В качестве нового средства для модернизации кода добавлена новая лампочка быстрого исправления для преобразования базового макроса в constexpr.
  • IntelliSense для шаблонов предоставляет больше сведений об аргументах шаблона, чтобы воспользоваться всеми преимуществами технологии IntelliSense в теле шаблона (рис. 8) .
Template IntelliSense
Рис. 8. Шаблон IntelliSense
  • Мы работаем над обновлением процедуры анализа кода. Теперь можно включать новые, находящиеся в процессе разработки, функции в разделе Сервис > Параметры > Текстовый редактор > C++ > Экспериментальные > Анализ кода. Анализ кода можно выполнять в фоновом режиме при открытии или сохранении файлов, и результаты будут отображаться в списке ошибок, а также в виде зеленых волнистых линий в редакторе (рис. 9) .
In-editor code analysis
Рис. 9. Анализ кода в редакторе

Усовершенствования отладки C++

Мы внесли следующие улучшения отладки:

  • Функция Только мой код теперь позволяет выполнять обход кода в системе или библиотеках C++ сторонних производителей в дополнение к свертыванию этих вызовов в окне стека вызовов. Этим поведением можно управлять в любых библиотеках C++, если код компилируется с параметром /JMC и в файле .natjmc заданы пути библиотек, не принадлежащих пользователю. Если системная библиотека вызывается в пользовательском коде при пошаговом выполнении, отладчик пропустит весь системный код и остановится на первой строке пользовательского кода при обратном вызове (рис. 10) .
Just My Code
Рис. 10. Только мой код
  • Точки останова в данных теперь можно задать в окнах контрольных значений, быстрой проверки, видимых и локальных переменных, позволяя прерывать выполнение при изменении хранящегося в памяти значения буквально в несколько кликов.
  • Ссылка на источник позволяет внедрять сведения об исполняемом файле или исходном коде библиотеки в PDB-файл во время компиляции.
  • При отладке окно консоли теперь по умолчанию остается открытым при завершении работы программы (аналогично при запуске программы без отладчика). Автоматическое закрытие консоли можно снова включить в разделе Сервис > Параметры > Отладка > Общие.

Улучшения JavaScript и TypeScript

TypeScript 3.0

Visual Studio 2017 версии 15.8 теперь включает в себя TypeScript 3.0 по умолчанию. Дополнительные сведения об этом выпуске см. в разделе объявление о выпуске TypeScript 3.0.

Улучшенная поддержка Vue.js

Была улучшена поддержка библиотеки Vue.js, в частности поддержка VUE-файлов, также известных как однофайловые компоненты. Это удобно при редактировании блоков скриптов во VUE-файлах, включая поддержку блоков скриптов, созданных в TypeScript через атрибут lang="ts" в элементе скрипта. (Примечание: Необходимо использовать процесс сборки с WebPack или аналогичной технологией для преобразования VUE-файлов в файлы HTML и JS, необходимые во время выполнения. Дополнительные сведения см. на странице об однокомпонентных файлах.)

Если установлена рабочая нагрузка Node.js, будут отображаться шаблоны "Базовое веб-приложение Vue.js" по пути "JavaScript / Node.js" или "TypeScript / Node.js" в диалоговом окне "Новый проект". Ниже показан пример редактирования кода TypeScript внутри блока скрипта во VUE-файле (рис. 11) .

Editing a .vue file
Рис. 11. Редактирование VUE-файлов

Улучшения ESLint

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

  • Вместо того чтобы проверять только сохраненные файлы, Visual Studio теперь проверяет качество файлов JavaScript прямо во время их редактирования.
  • Результаты можно получить для всех файлов JS в проекте, не только для открытых файлов. Если есть части проекта, которые вы не хотите проверять, можно указать эти каталоги и файлы в файле .eslintignore.
  • ESLint был обновлен и теперь использует ESLint 4 по умолчанию, но если в проекте есть локальная установка ESLint, он будет использовать эту версию.

ESLint можно отключить глобально в Visual Studio, сняв флажок Включить ESLint в разделе **Сервис > Параметры > Текстовый редактор > Javascript/Typescript > Анализ ** (Рис. 12) .

ESLint Options
Рис. 12. Параметры ESLint

Улучшения сценария "Открыть папку" для Node.js

Существуют многочисленные улучшения при работе с JavaScript и TypeScript в сценарии открытия папки, если установлена рабочая нагрузка Node.js. Например, управление пакетами NPM, сборки TypeScript, запуск и отладка с Node.exe, выполнение сценариев NPM и запуск модульных тестов.

Дополнительные сведения см. в разделе Разработка кода JavaScript и TypeScript в Visual Studio без решений или проектов.

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

В предыдущих выпусках все операции языковых служб JavaScript и TypeScript обслуживались одним процессом Node.js. Это замедляло работу редактора, если отправлялись команды, которые влияют на осуществление пользователем ввода (например, автоматическое форматирование после новой строки), пока потенциально длительная операция была уже в процессе (например, анализ кода на ошибки). Чтобы избежать этого, теперь используется отдельный процесс для операций, которые значительно влияют на редактирование. Этот процесс тратит значительно меньше системных ресурсов, чем существующий процесс языковой службы. Но если вы хотите отключить новый процесс, поставьте флажок Отключить выделенный синтаксический процесс в разделе Сервис > Параметры > Текстовый редактор > JavaScript/TypeScript >Языковая служба.

Веб-инструменты Visual Studio

Диспетчер библиотек — это новая функция в составе Visual Studio 2017. Она помогает управлять клиентскими библиотеками в веб-проектах.

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

Мы добавили новый изолированный проект Docker container experience для веб-проектов ASP.NET Core. Этот проект дополняет существующие средства контейнеров на основе Docker Compose и предоставляет более простой и удобный способ создания, отладки и сборки контейнеров Docker прямо из Visual Studio.

При создании проекта можно добавить поддержку Docker (рис. 13):

Enable Docker Support
Рис. 13. Включение поддержки Docker

Также поддержку Docker можно включить в существующем проекте через контекстное меню проекта в обозревателе решений (рис. 14) . После этого Visual Studio создаст в проекте один Dockerfile. У вас есть возможность выбора ОС: Windows или Linux.

Add Docker Support
Рис. 14. Добавление поддержки Docker

Visual Studio также добавляет профиль запуска отладчика (рис. 15) для Docker, чтобы можно было проводить отладку проекта во время выполнения в контейнере.

Docker Launch Profile
Рис. 15. Профиль запуска Docker

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

Настроив запуск контейнерных проектов под ваши нужды, можно кликнуть правой кнопкой мыши на проекте и выбрать Сборка образа Docker для сборки образа локально, когда все будет готово для отправки в реестр контейнеров Azure или DockerHub.

Можно также добавить существующие функциональные возможности на основе Docker Compose в веб-проект ASP.NET Core посредством нового параметра Поддержка оркестратора контейнеров (рис. 16) . Щелкните правой кнопкой мыши на веб-проекте ASP.NET Core в обозревателе решений, выберите Добавить > Поддержка оркестратора контейнеров и затем в раскрывающемся меню выберите Docker Compose.

Add Container Orchestrator Support
Рис. 16. Добавление поддержки оркестрации

Усовершенствования для публикации

Выпуск содержит следующие улучшения для публикации:

  • При публикации контейнера Docker в реестр контейнеров теперь можно настроить тег для образа. Можно добавить тег вручную (значение по умолчанию — "latest") или использовать автоматический создаваемый тег, чтобы гарантировать его уникальность.
  • При создании новой службы приложений Azure можно также настроить Application Insights для автоматического сбора данных телеметрии. Если вы выберете регион, который также имеет Application Insights, он включается по умолчанию. Если выбрать регион, который еще не содержал Application Insights, можно вручную выбрать другой регион для ресурса Application Insights из раскрывающегося списка.
  • При публикации проектов функций Azure можно использовать новую функцию запуск из ZIP-файла.

Инструменты Visual Studio для Xamarin

Этот выпуск содержит следующие обновления для Xamarin:

  • Мы добавили поддержку Xcode 9.4.
  • При создании нового проекта Xamarin.Forms параметром общего доступа к коду по умолчанию теперь является .NET Standard. Параметр общего проекта по-прежнему доступен.
  • Мы улучшили инкрементную сборку Xamarin.Android. Xamarin.Android использует файлы, созданные в каталоге промежуточных выходных данных для получения добавочных сборок, которые работают быстрее, чем полные сборки. Ранее изменение целевой платформы проекта делало файлы недействительными и приводило к созданию полной сборки при следующем запуске. В этом выпуске файлы хранятся в папках по платформам, чтобы вы могли переключаться между разными целевыми платформами и одновременно пользоваться преимуществами инкрементных сборок. Очистка проекта позволяет освободить дисковое пространство, которое используется сохраненными файлами.
  • В Visual Studio 2017 мы добавили минимальную поддержку проектов привязки Xamarin.Mac. Это позволяет использовать Visual Studio для загрузки и распознавать связанные проекты Xamarin.Mac. Вы можете также выполнять сборку проектов с привязкой Xamarin.Mac. Однако процесс сборки выполняется локально, без использования собственной цепочки инструментов Mac, так что создаваемые сборки IL невозможно использовать для запуска или отладки в приложениях.

Поддержка эмулятора Hyper-V Android

В этом выпуске добавлена поддержка эмулятора Google Android, совместимого с Hyper-V, при выполнении в Windows с обновлением от 10 апреля 2018 года (рис. 17) . Это позволяет использовать эмулятор Google Android параллельно с другими технологиями на базе Hyper-V, включая виртуальные машины Hyper-V, инструменты для работы с Docker, эмулятор HoloLens и многое другое. У разработчиков мобильных приложений, которые используют Hyper-V, теперь есть доступ к быстрому эмулятору Android, который всегда поддерживает последние версии API Android, работает с сервисами Google Play без дополнительной настройки, а также поддерживает все компоненты эмулятора Android, включая камеры, геолокацию и быструю загрузку.

Screenshot of both the Google Android emulator and HoloLens emulator running at the same time.
Рис. 17. Эмулятор Google Android и эмулятор HoloLens

Xamarin.Android Designer

Мы внесли значительные улучшения в среду разработки Xamarin.Android. Основные моменты:

  • Добавлен редактор с разделенным экраном, позволяющий одновременно создавать, редактировать и просматривать макет (рис. 18) .
Screenshot of the Xamarin.Android split-view editor.
Рис. 18. Редактор Xamarin.Android с разделенным экраном
  • Улучшенные возможности IntelliSense и надежность пользовательских элементов управления.
  • Поддержка образцов данных для значений, предоставляемых системой.

Средство предварительного просмотра Xamarin.Forms

Средство предварительного просмотра Xamarin.Forms теперь включает поддержку панели инструментов при использовании Xamarin.Forms 3.1.0.583944 или более поздней версии. На панели инструментов появляются элементы управления Xamarin.Forms, что облегчает работу с ними для тех, кому это программное обеспечение в новинку. Элементы управления можно перетаскивать в редактор кода XAML, чтобы добавить их на страницу. Средство предварительного просмотра Xamarin.Forms теперь входит в редактор XAML. Его можно открыть и закрыть с помощью значка "Развернуть" на краю панели редактора.

Python

В этом выпуске добавлены следующие усовершенствования для разработчиков Python:

  • Python IntelliSense теперь использует определения typeshed, что позволяет предоставлять более подробные результаты для библиотек, где статический анализ не предполагает автозавершения.
  • Экспериментальный отладчик, впервые представленный в предварительной версии 15.7, теперь является обработчиком отладки по умолчанию, который используется для Python и обеспечивает более быструю и надежную отладку для кода Python.
  • Мы добавили поддержку Python 3.7, включая исправления, обеспечивающие прикрепление отладки, профилирование и отладку в смешанном режиме (на разных языках).
  • Дополнительные сведения о перечисленных выше компонентах см. в нашей записи блога Python в Visual Studio 2017 версии 15.8.

Перенос параметров локальной функции Azure

Диалоговое окно "Параметры управляемого приложения", доступное на странице сводки публикации, теперь включает значения из файла local.settings.json и позволяет выполнять миграцию значений в удаленное приложение функции Azure, размещенное в Azure.

Подключенные службы

Теперь для функций Azure можно настроить непрерывную поставку напрямую из Visual Studio 2017 для решений с проектами функции Azure.

Улучшения в обозревателе тестов

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

Новые функции расширяемости

Протокол языкового сервера

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

Шаблон AsyncPackage

Авторы расширений теперь могут использовать шаблоны элементов для создания асинхронных пакетов для оптимизации производительности их расширения. Узнайте больше об AsyncPackages.

Пакеты расширений

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

Публикация расширения из командной строки

Публикуйте расширения в Visual Studio Marketplace с помощью командной строки.

Пакет SDK для .NET Core 2.1.400

Visual Studio 2017 версии 15.8 включает пакет SDK для .NET Core 2.1.400. Новый пакет SDK включает следующие новые функции:

  • Добавлены шаблоны NUnit
  • Добавлена поддержка глобальных инструментов со знаком
  • Текст справки был улучшен и стал более понятным

Устранено 32 проблемы в интерфейсе командной строки .NET Core.
Устранено 20 проблем в пакете SDK для .NET Core.

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

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

Расширение адаптера тестов .NET

Адаптер тестов .NET подвергся следующему критическому изменению и устареванию:

  • Критическое изменение: Все тестовые проекты должны содержать ссылку NuGet на адаптер тестов .NET в CSPROJ-файле. Если это не так, результаты тестов появятся в проекте, если поиск с помощью расширения адаптера тестов запускается после сборки или в случае, если пользователь пытается запустить выбранные тесты:
    • Тестовый проект {<Full path of test project>} не ссылается ни на один адаптер .NET NuGet. Обнаружение или выполнение тестов для этого проекта могут не работать. Рекомендуется в проект каждого теста в этом решении включать ссылку на адаптеры тестов NuGet.
  • Платформы тестирования .NET выпустили свои адаптеры в пакетах NuGet и уходят от расширений Visual Studio. Поддержка адаптеров тестов .NET, доставляемых через расширение, устарела, но все еще имеется. Это означает, что в меню Сервис > Параметры > Тест доступно два новых параметра.
    • Первый параметр позволяет Visual Studio использовать адаптеры теста, только если он находится в папке сборки теста (определяется по ссылке NuGet на адаптер теста) или по адресу, указанному в файле runsettings.
    • Второй параметр позволяет Visual Studio отменять предыдущее поведение и искать расширения адаптеров тестов для проектов, не имеющих ссылки NuGet на адаптер теста. Оба параметра по умолчанию выбраны, так что поведение по умолчанию в этом выпуске не меняется.
  • Примечание. Это изменение не затрагивает адаптеры тестов без использования .NET.

Поддержка секретов ASP.NET .NET Framework

Для проектов ASP.NET .NET Framework, предназначенных для .NET Framework 4.7.1 или более поздней версии, теперь можно открывать и сохранять секреты, которые вы не хотите использовать в исходном коде, в файле usersecrets.xml, щелкнув проект правой кнопкой мыши и выбрав команду "Управляемые секреты пользователя".

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

Если указанный по ссылке пакет .NET Compiler в проекте ASP.NET .NET Framework устарел, Visual Studio предложит обновить его при открытии проекта, чтобы повысить производительность сборки.

.NET Framework 4.7.2

Visual Studio 2017 версии 15.8 теперь содержит инструменты разработки .NET Framework 4.7.2 для всех поддерживаемых платформ и включает среду выполнения версии 4.7.2. Платформа .NET Framework версии 4.7.2 включает несколько новых функций и улучшений, а также многочисленные улучшения надежности, стабильности, безопасности и исправления ошибок.

Дополнительные сведения о .NET Framework 4.7.2 см. в этих статьях:

Задержка загрузки пакетов

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


---

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

Служебное обновление Visual Studio 2017 версии 15.8.7 — выпущено 10 октября 2018 г.

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

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

Служебное обновление Visual Studio 2017 версии 15.8.4 — выпущено 11 сентября 2018 г.

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

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

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

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

Visual Studio 2017 версии 15.8 — выпущено 14 августа 2018 г.

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

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

Visual Studio 2017 версии 15.8, предварительная версия 4 — выпущено 10 июля 2018 года

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 возникает в случае, когда число неверных попыток входа не проверяется, и злоумышленник может предпринимать неограниченное количество попыток проверки подлинности. Это обновление устраняет уязвимость, проверяя число неверных попыток входа.

Visual Studio 2017 версии 15.8, предварительная версия 3  — выпущено 26 июня 2018 года

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

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

Visual Studio 2017 версии 15.8, предварительная версия 1  — выпущено 8 мая 2018 года

CVE-2018-0765 Советы по безопасности корпорации Майкрософт для уязвимости "отказ в обслуживании" .NET Core

  • Корпорация Майкрософт выпускает этот совет по безопасности, чтобы предоставить сведения об уязвимости в .NET Core и .NET Native версии 2.0. Он также включает указания для разработчиков по корректному обновлению их приложений для устранения этой уязвимости.
  • Корпорации Майкрософт известно об уязвимости "отказ в обслуживании", связанной с неправильной обработкой XML-документов в .NET Framework и .NET Core. Воспользовавшись этой уязвимостью, злоумышленник может вызвать отказ в обслуживании для приложения .NET Framework, .NET Core или .NET Native.
  • Обновление устраняет уязвимость, исправляя способ обработки XML-документов в приложениях .NET Framework, .NET Core или .NET Native.
  • Если используется приложение ASP.NET Core, разработчикам также рекомендуется выполнить обновление до ASP.NET Core 2.0.8.

Release Notes Icon Visual Studio 2017 версии 15.8.1

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

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

В версии 15.8.1 исправлены следующие проблемы.

  • Устранена проблема, при которой Visual Studio неожиданно закрывалась, когда закрывалось окно браузера при отладке веб-проекта.

Release Notes Icon Visual Studio 2017 версии 15.8.2

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

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

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


Release Notes Icon Visual Studio 2017 версии 15.8.3

Выпущено 6 сентября 2018 г.

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

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


Release Notes Icon Visual Studio 2017 версии 15.8.4

Выпущено 11 сентября 2018 г.

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

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

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


Release Notes Icon Visual Studio 2017 версии 15.8.5

Выпущено 20 сентября 2018 г.

Сводка новых возможностей в версии 15.8.5

  • Инструменты Visual Studio для Xamarin теперь поддерживают Xcode 10.

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

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

Подробные сведения о новых возможностях в версии 15.8.5

Инструменты Visual Studio для Xamarin

Теперь Инструменты Visual Studio для Xamarin поддерживают Xcode 10, позволяя создавать и отлаживать приложения для iOS 12, tvOS 12 и watchOS 5. Дополнительные сведения о новых возможностях см. в разделах Как выполнить подготовку для iOS 12 и Введение в iOS 12.


Release Notes Icon Visual Studio 2017 версии 15.8.6

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

Сводка новых возможностей в версии 15.8.6

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

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

Подробные сведения о новых возможностях в версии 15.8.6

Последний пакет SDK Windows 10 для разработчиков универсальной платформы Windows

Последняя версия пакета SDK Windows 10 (сборка 17763) теперь доступна в качестве дополнительного компонента в рабочей нагрузке по разработке для универсальной платформы Windows. Этот пакет SDK можно добавить в рабочую нагрузку, установив флажок Windows 10 SDK (10.0.17763.0) .


Release Notes Icon Visual Studio 2017 версии 15.8.7

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

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

Azure DevOps

Visual Studio Team Services теперь называются Azure DevOps! Это новое название будет отображаться в Team Explorer и ссылках в Visual Studio.

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

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


Release Notes Icon Visual Studio 2017 версии 15.8.8

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

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

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


Release Notes Icon Visual Studio 2017 версии 15.8.9

Выпущено 2 ноября 2018 г.

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

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


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

Узнайте обо всех известных проблемах и обходных решениях в Visual Studio 2017 версии 15.8.

Visual Studio 2017 Known Issues


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

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


Блоги

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

Developer Tools Blogs


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

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


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