Visual Studio 2015 с обновлением 3

Last Update: 01.09.2017

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

Сегодня мы рады сообщить о выпуске обновлении 3 для Visual Studio 2015. Одной из основных проблем, о которых мы сообщали в обновлении 2, — большой объем потребления памяти. Мы исправили это в версии-кандидате обновления 3, связались с клиентами, которые сообщили о проблеме, и получили подтверждение ее исправления. В обновлении 3 появится много таких исправлений, внесенных на основе отзывов клиентов о производительности и стабильности. Если это не те заметки о выпуске, которые вы ожидали увидеть, обратите внимание, что перед вами заметки о выпуске для самой последней версии.

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

Скачать

Вы можете скачать Visual Studio 2015 по ссылке My.VisualStudio.com. My.VisualStudio.com требуется бесплатная подписка Dev Essentials или подписка Visual Studio.

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

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

Другие изменения

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

Обновление 3 для Visual Studio 2015 включает в себя обновление 10 для средств для Apache Cordova, в том числе улучшения ниже. Дополнительные сведения об этом выпуске см. в документе "Заметки о выпуске" для обновления 9 и обновления 10 средств для Apache Cordova. Последние новости о средствах доступны в нашем блоге разработчиков на GitHub.

  • Мы добавили поддержку Cordova 6.1.1; эта версия будет использоваться по умолчанию для новых проектов.
  • Мы удалили реестр подключаемых модулей Cordova, который использовался в Cordova версии 4.x. Это означает, что теперь для добавления подключаемых модулей требуется Cordova версии 5.x или более поздней версии.
  • Список базовых подключаемых модулей обновлен и теперь в него входят подключаемые модули для организаций (например, для таких ситуаций как: Intune, использование Azure, безопасность и локальное хранилище SQLite).
  • Теперь вы можете добавлять подключаемые модули из конструктора конфигурации по имени пакета NPM или по идентификатору.

plugin-byid

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

plugin-parameters

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

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

  • Добавили тренды Application Insights, средство для поиска тенденций в телеметрии из вашего приложения.
  • Новое Добавлена телеметрия исключений в CodeLens.
  • Данные о рабочей телеметрии добавлены в исключения в средствах диагностики.
  • Поддержка добавления Application Insights в проекты версии-кандидата 2 ASP.NET Core из Visual Studio.
  • События средств диагностики для проектов версии-кандидата 1 ASP.NET 5 RC1 и версии-кандидата 2 ASP.NET Core.
  • Автоматическое обновление поиска Application Insights при выборе расширенной фильтрации, временных диапазонов и событий.
  • Переход к коду из поисковых запросов.
  • Улучшенный вход в HockeyApp.

Дополнительные сведения см. в технических заметках о выпуске в документации по Microsoft Azure.

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

В обновление 3 добавлена поддержка средств диагностики для приложений, запущенных на устройствах OneCore, включая HoloLens и IOT.

Улучшения в возможности C++ "Изменить и продолжить"

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

Улучшения в пользовательском интерфейсе отладки XAML

  • Каждый раз при смене фокуса в приложении новая функция "Отслеживать фокус" динамического визуального дерева переместит выделение в дереве на элемент в фокусе.

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

Подписки и ключи продуктов

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

  • Вам больше не потребуется переходить по ссылке https://my.visualstudio.com для активации назначенной вам облачной подписки Visual Studio; вы можете начать использовать IDE Visual Studio сразу после назначения подписки.
  • Мы улучшили обработку ошибок при применении ключа продукта.
  • Все операции с учетной записью и лицензией пользователя теперь защищены с помощью HTTPS.
  • Мы сделали более удобным окно параметров учетной записи для активации подписки и ввода ключа продукта.
  • Новое Повторная проверка подлинности каждые 8 дней больше не требуется для поддержания учетной записи персонализации в активном состоянии и синхронизации перемещаемых настроек.

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

Обновление 3 для Visual Studio 2015 поставляется с несколькими улучшениями для средств для универсальных приложений Windows. Основное улучшение состоит в том, что при создании пакета для отправки в Магазин Windows вы можете войти в систему с помощью учетных данных Azure Active Directory для учетной записи хранилища AAD. После связи проекта с Магазином Windows входить в систему при создании пакета и его отправке в Магазин больше не потребуется.

.NET Native для универсальных приложений Windows

.NET Native 1.4 — это дополнительный выпуск для обслуживания, повышающий производительность, исправляющий несколько ошибок, о которых сообщили клиенты, и сокращающий время компиляции сборки выпуска для крупных приложений. В XAML-приложениях и играх на Unity, которые используют .NET Native 1.4, повысится производительность во время выполнения. Этих улучшений удалось достичь, ускорив вызовы API отражений и машинного кода.

Средства для разработки архитектуры

Мы удовлетворили просьбы клиентов о повышении производительности и надежности.

Доменные графические конструкторы (включая EDMX и DBML)

В Windows 10 среда Visual Studio теперь отвечает, когда вы открываете или пытаетесь изменить крупные схемы EDMX или DBML во время отображения экранной клавиатуры.

Представление кода

  • Visual Studio теперь отвечает, когда вы пытаетесь "Создать карту кода для решения" в решении, содержащем проекты установщика (VDPROJ).
  • Visual Studio теперь отвечает при запуске команды карты кода из редактора кода и закрытии окна "Карта кода" сразу после его появления.

Проверка слоев

  • При сборке решения, проект моделирования которого содержит схему слоев с действием проверки, ядро ЦП больше не используется после завершения сборки.
  • Теперь вы можете проверить схему слоев, когда родительский проект моделирования ссылается на библиотеки PCL (например, ODP.Net).

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

Новое Версия-кандидат Node.js Tools 1.2 для Visual Studio доступна для скачивания. Ожидается, что этот выпуск значительно повысит стабильность и производительность, в том числе сократит количество сбоев из-за нехватки памяти, возникавших в предыдущих выпусках.

Другие улучшения

  • Более быстрый и улучшенный ES6 IntelliSense
  • Более надежная отладка
  • Улучшенный интерфейс модульного тестирования (включая поддержку лент)
  • Команда .npm в еще большем количестве типов проектов

Полные сведения и файлы для скачивания см. на странице выпуска версии-кандидата Node.js Tools 1.2.

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

Для проектов веб-приложения ASP.NET процесс IIS Express больше не будет останавливаться при каждой остановке отладки, если установлен флажок "Включить функцию "Изменить и продолжить"".

Visual C++

В обновление 3 внесены такие улучшения, как новые проверки и предупреждения для компилятора C++, а также усовершенствования в сфере поддержки и производительности для программирования на C# и Visual Basic.

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

  • Теперь проверяется доступ для удаленного тривиального конструктора копирования или перемещения. Без этой проверки мы могли неправильно вызвать конструктор копирования по умолчанию (в котором могла быть неправильно сформирована реализация), что привело бы к потенциальным ошибкам в создаваемом коде среды выполнения.
  • Std::is_convertible теперь корректно обнаруживает присваивание типа класса самому себе, когда конструктор копирования удален или является закрытым.
  • В качестве последнего этапа завершения поддержки ATL с атрибутами в Visual Studio 2008 мы добавили новое предупреждение об устаревании в компилятор. Начиная с обновления 3 для Visual Studio 2015 при использовании кода ATL с атрибутами будет по умолчанию создаваться предупреждение уровня 1. C4467
  • При использовании PCH-файлов и неправильном включении каталогов с помощью -l в параметрах компилятора между -Yc и -Yu теперь будет создаваться новое предупреждение. C4599
  • При использовании PCH-файлов и неправильном использовании директив #include в исходных файлах между -Yc и -Yu теперь будет создаваться новое предупреждение. C4598

Дополнительные сведения о том, как эти изменения могут повлиять на существующий код, см. в статье Руководство по переносу и обновлению Visual C++ на сайте MSDN.

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

  • Восстановлена производительность режима отладки при удалении диапазонов тривиальных объектов, как например, в vector (производительность была снижена в обновлении 2).
  • Реализованы замены признаков в соответствии с предложением P0185 Добавление заменяемых признаков [nothrow-] рабочего плана C++17. Признаки (is_swappable, is_swappable_with, is_nothrow_swappable и is_nothrow_swappable_with) видимы, а ограничения std::swap активны только при компиляции с параметром /std:c++latest. Это новая, экспериментальная возможность C++17.
  • Удалены вызовы событий трассировки Windows из vcruntime140.dll и статических библиотек, которые ранее срабатывали при запуске процесса и dllmain.
  • Новое Удалена длина имени символа в общем оборудовании контейнеров STL, такая как std::vector, что сократило вероятность возникновения предупреждений C4503. Например, следующий тип больше не создает предупреждение: concurrency::concurrent_unordered_map<>>>>.

  • ATL/MFC/AMP/PPL: множество сопутствующих исправлений, связанных с двухфазным поиском.

    • _com_ptr_t теперь имеет конструктор перемещения и оператор присваивания перемещением.
    • MFC: исправлена обработка значений HMENU, которые иногда мешали правильному отображению меню в 64-разрядных приложениях.

    • ATL и MFC: следующие предупреждения больше не создаются.

    • Переопределение и скрытие функций: C4263, C4264, C4266
    • Несовпадение спецификации исключений: C4986
    • /analyze: C6386

    • ATL: все виды AtlThrow теперь правильно отмечаются __declspec(noreturn). Это предотвращает появление ошибочных предупреждений SAL.

    • ATL: исправлены и улучшены некоторые заметки SAL.

    • /std:c++latest обеспечивает работу следующих новых возможностей: P0025R1 "clamp()", P0185R1 "is_swappable, is_nothrow_swappable" и P0272R1 "Non-const basic_string::data().".

    • /std:c++latest также управляет удалением следующих старых возможностей: N4190 "Удаление auto_ptr, random_shuffle() и старых функций ", P0004R1 "Удаление устаревших псевдонимов потоков ввода/вывода", LWG 2385 "Аргумент распределителя function::assign не имеет смысла" и различных нестандартных возможностей (пространство имен std::tr1, некоторые механизмы TR1 и структура std::identity).

    • Исправлена ошибка при автоматической неправильной генерации кода atomic/atomic в x86.

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

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

  • Сопрограммы

    • Не рекомендуется использовать следующие ключевые слова: __yield_value & __await. Взамен рекомендуется использовать co_await / co_yield .
    • В элементы to_address и from_promise класса coroutine_handle добавлено уведомление об устаревании. Вместо coroutine_handle::to_address() используйте coroutine_handle::address().
    • Вместо coroutine_handle::from_promise(Promise *P) используйте coroutine_handle::from_promise(Promise &P).
  • Улучшена производительность следующих параметров: std::equal и std::lexicographical_compare путем более активной диспетчеризации в memcmp и memchr, что привело к существенному повышению производительности в некоторых ситуациях. Например: equal(char,char,char, char) в 64-разрядных платформах.

    • Производительность сборок для отладки существенно улучшилась благодаря уменьшению числа вызовов функции регистрации в нашем итерационном механизме отладки.
    • Производительность string::push_back улучшилась еще на 40 % по сравнению с обновлением 2 в сборках для выпуска и показала еще более значительные улучшения в сборках для отладки. (Это улучшение дополняет существенное повышение производительности в обновлении 2.)
    • Сборки для отладки существенно улучшились для всех стандартных алгоритмов за счет исключения нескольких типов вызовов для поддержки пустых шаблонов метапрограммирования (например, _Iter_cat) для всех алгоритмов, использующих предикаты, путем уменьшения числа копий предиката.
    • std::mismatch в _ITERATOR_DEBUG_LEVEL 1 и 2 путем проверки второго диапазона перед итерацией, где это возможно.
  • Улучшена диагностика для сообщений _SCL_INSECURE_DEPRECATE для оставшихся алгоритмов (в обновлении 2 с новым механизмом устаревания было связано лишь небольшое число алгоритмов). Это также способствует улучшению отладки для стандартных алгоритмов, так как больше не существует никаких взаимодействий препроцессора _ITERATOR_DEBUG_LEVEL, которые объявляют несколько копий стандартных алгоритмов. Мы также устранили следующие проблемы.

    • Исправлена невозможность компиляции некоторых функций, таких как mismatch(iter, iter, T[]), из-за взаимодействия между нашим нестандартным алгоритмом _ITERATOR_DEBUG_ARRAY_OVERLOADS и алгоритмом с двойным диапазоном.
  • Исправлены нарушения отключенного по умолчанию предупреждения C4242 в STL.
  • Исправлена возможная ошибка переполнения для целых чисел в std::pop_heap.
  • Исправлено потенциальное зависание /clr:pure из-за вставленных в CLR вызовов LoadLibrary при блокировке языкового стандарта.

Отладка C++/CLI

  • Новое Оценщик выражений C++/CLI теперь поддерживает функции отладчика, такие как Natvis, которые раньше поддерживались только для полностью нативных приложений. Теперь, когда объекты в смешанном управляемом нативном приложении отображаются в окне переменных (или в виде совета), они будут развернуты так же, как в полностью нативном приложении в соответствии с визуализаторами типов.

plugin-byid

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

Мы интегрировали Clang 3.8 в Clang и C2 и предоставили размещаемый 64-разрядный набор средств.

C++ MDD

Мы обеспечили поддержку последней версии Android NDK R11C и добавили возможность обновления текущих проектов до последней версии NDK.

TypeScript

Новое Visual Studio 2015 с обновлением 3 включает TypeScript 1.8.34. Исправлена ошибка нехватки памяти в некоторых крупных проектах TypeScript, которые используют AngularJS.

C# и Visual Basic

Новое Уменьшен объем памяти и повышена производительность диагностики кода. Это позволит уменьшить количество сбоев из-за нехватки памяти в предыдущих выпусках. Мы улучшили производительность диагностики кода в рамках всего решения. Дополнительные сведения о повышении производительности диагностики кода описаны на странице Практическое руководство. Включение и отключение анализа всего решения для управляемого кода на сайте MSDN.

К дополнительным улучшениям относятся следующие.

  • Параметр для добавления ссылки на пакет NuGet, добавленный в качестве небольшого исправления:

plugin-byid

Этот параметр можно включить в меню "Сервис" > "Параметры" > "Текстовый редактор" > "C#" > "Дополнительно" в разделе "Директивы Using":

plugin-byid

  • Улучшена поддержка переносимых библиотек классов для различных версий платформы .NET Standard.
  • Повышена производительность возможностей C# "Перейти к" и "Найти все ссылки". Вы можете использовать эти возможности, выбрав объект, щелкнув его правой кнопкой мыши и выбрав возможность в меню.
  • При применении действия "Исправить все" к документу, проекту или решению теперь будет отображаться индикатор хода выполнения.
  • Новое Повышена производительность при перезагрузке проектов C# и VB в крупных решениях. Дополнительные сведения и советы см. в статье Рекомендации по производительности для крупных решений.

Team Explorer

Новое Исправлено несколько ошибок в Team Explorer:

  • Не удалось просмотреть содержимое файла, удаленного из репозитория Git.
  • При просмотре журнала ветви значок "Перейти к дочернему объекту" должен быть отключен, если в фокусе находится последняя фиксация.
  • При смене ветвей с помощью Git.exe может произойти сбой Visual Studio или его переход в неизвестное состояние.
  • При просмотре журнала ветви в репозитории Git в графике журнала могут возникать ошибки выделения.
  • При создании ветви в Team Explorer клавиши ALT+B для кнопки "Создать ветвь" конфликтуют с меню "Сборка".
  • В случае использования большого объема памяти при попытке распаковать объект, объем которого превышает объем доступной памяти, Git выдает ошибку "Не удалось найти объект — нет соответствующего свободного объекта ()" вместо ошибки нехватки памяти.
  • Опечатка в сообщении об ошибке "... Чтобы открыть это решение, ...".
  • При просмотре журнала ветви и щелчка правой кнопкой мыши первой сборки в журнале выборочный отбор отключен.
  • При создании запроса на включение внесенных изменений из Team Explorer в контекстном меню на странице ветвей используется текущая ветвь вместо выбранной.

Xamarin для Visual Studio

Новое Visual Studio 2015 с обновлением 3 теперь включает Xamarin 4.1. В дополнение к ряду исправлений ошибок этот выпуск добавляет поддержку для tvOS, улучшает поддержку ресурсов iOS, улучшает возможности редактирования XML и добавляет селекторы для реализации SSL/TLS и HttpClient при создании приложений iOS. Дополнительные сведения см. в заметках о выпуске Xamarin.

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

Полное описание известных проблем в этом выпуске см. в следующей статье MSDN: Известные проблемы в Visual Studio с обновлением 3