Заметки о выпуске Visual Studio 2015 с обновлением 3
Условия лицензионного соглашения | в Блоге | Visual Studio Сообщество разработчиков
Примечание.
Этот выпуск — не последняя версия Visual Studio. Вы можете скачать последний выпуск на странице заметок о текущем выпуске для Visual Studio 2019.
Выпуски Visual Studio 2015
Заметки о выпуске можно просмотреть для всех версий Visual Studio 2015:
- 27 июня 2016 г. — Visual Studio 2015 с обновлением 3
- 30 марта 2016 г. — Visual Studio 2015 с обновлением 2
- 30 ноября 2015 г. — Visual Studio 2015 с обновлением 1
- 20 июля 2015 г. — Visual Studio 2015
Скачивание Visual Studio 2015
Вы можете скачать Visual Studio 2015 по ссылке My.VisualStudio.com. My.VisualStudio.com требуется бесплатная подписка Dev Essentials или подписка Visual Studio.
Visual Studio 2015 с обновлением 3
Дата выпуска: 27 июня 2016 г.
Сводка о новых возможностях в этом выпуске
- Средства для Apache Cordova
- Средства анализа для разработчиков
- Отладка и диагностика
- Интегрированная среда разработки Visual Studio
- Средства для универсальных приложений для Windows
- Средства для разработки архитектуры
- Visual C++
- Инструменты Node.js для Visual Studio
- Средства для веб-разработчиков
- TypeScript
- C# и Visual Basic
- Team Explorer
- Xamarin
Связанные выпуски
Новые возможности этого выпуска
Средства для Apache Cordova
Примечание.
Версия Node.js, установленная с visual Studio 2015 с обновлением 3, устарела. Чтобы обновить до более нового выпуска, узнайте больше о том, как безопасно обновить Node.js.
Обновление 3 для Visual Studio 2015 включает в себя обновление 10 для средств для Apache Cordova, в том числе улучшения ниже. Также см. сведения об обновлении 10. Последние новости о средствах доступны в нашем блоге разработчиков на GitHub.
- Мы добавили поддержку Cordova 6.1.1; эта версия будет использоваться по умолчанию для новых проектов.
- Мы удалили реестр подключаемых модулей Cordova, который использовался в Cordova версии 4.x. Это означает, что теперь для добавления подключаемых модулей требуется Cordova версии 5.x или более поздней версии.
- Список базовых подключаемых модулей обновлен и теперь в него входят подключаемые модули для организаций (например, для таких ситуаций как: Intune, использование Azure, безопасность и локальное хранилище SQLite).
- Теперь вы можете добавлять подключаемые модули из конструктора конфигурации по имени пакета NPM или по идентификатору.
- Вы можете также добавлять подключаемые модули, требующие использования параметров из конструктора конфигураций.
Средства анализа для разработчиков
Мы внесли следующие улучшения в средства анализа для разработчиков 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. Можно приступать к работе с Visual Studio IDE сразу после назначения подписки.
- Мы улучшили обработку ошибок при применении ключа продукта.
- Все операции с учетной записью и лицензией пользователя теперь защищены с помощью 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++
Мы восстановили производительность режима отладки при уничтожении диапазонов тривиальных объектов, которые регрессии в обновлении 2, как и в векторной<диаграмме>.
Мы реализовали заменяемые признаки из рабочего документа C++17 из предложения P0185 Добавление [nothrow-]заменяемых признаков. Признаки (
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. Например, следующий тип больше не создает предупреждение: параллелизм::concurrent_unordered_map<wstring, пары<векторов uint64_t, векторные<<uint8_t>>>>.
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 "Удаление устаревших псевдонимов Iostreams", LWG 2385 "function::assign allocator argument не имеет смысла", а также различные нестандартные функции (пространство имен std::tr1, некоторые механизмы только для TR1 и структуру std::identity).
Неумолимый неправильный кодеген в атомарных<int64_t/атомарных<uint64_t>> на 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::p ush_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
и алгоритмом с двойным диапазоном.
- Исправлена невозможность компиляции некоторых функций, таких как mismatch(iter, iter, T[]), из-за взаимодействия между нашим нестандартным алгоритмом
Исправлены нарушения отключенного по умолчанию предупреждения C4242 в STL.
Исправлена возможная ошибка переполнения для целых чисел в std::pop_heap.
Исправлено потенциальное зависание /clr:pure из-за вставленных в CLR вызовов LoadLibrary при блокировке языкового стандарта.
Отладка C++/CLI
- Оценщик выражений C++/CLI теперь поддерживает функции отладчика (например, Natvis), которые раньше поддерживались только для полностью нативных приложений. Теперь, когда объекты в смешанном управляемом нативном приложении отображаются в окне переменных (или в виде совета), они будут развернуты так же, как в полностью нативном приложении в соответствии с визуализаторами типов.
Набор средств платформы 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, добавленный в качестве небольшого исправления:
- Этот параметр можно включить в текстовом редакторе > параметров > инструментов > C# > дополнительно в разделе "Директивы using":
- Улучшена поддержка переносимых библиотек классов для различных версий платформы .NET Standard.
- Повышена производительность возможностей C# "Перейти к" и "Найти все ссылки". Вы можете использовать эти возможности, выбрав объект, щелкнув его правой кнопкой мыши и выбрав возможность в меню.
- При применении действия "Исправить все" к документу, проекту или решению теперь будет отображаться индикатор хода выполнения.
- Повышена производительность при перезагрузке проектов C# и VB в крупных решениях. Дополнительные сведения и советы см. в статье Рекомендации по производительности для крупных решений.
Team Explorer
Исправлено несколько ошибок в Team Explorer:
- Не удалось просмотреть содержимое файла, удаленного из репозитория Git.
- При просмотре журнала ветви значок "Перейти к дочернему объекту" должен быть отключен, если в фокусе находится последняя фиксация.
- При смене ветвей с помощью Git.exe может произойти сбой Visual Studio или его переход в неизвестное состояние.
- При просмотре журнала ветви в репозитории Git в графике журнала могут возникать ошибки выделения.
- При создании ветви в Team Explorer клавиши ALT+B для кнопки "Создать ветвь" конфликтуют с меню "Сборка".
- При попытке распаковки объекта, превышающего доступную память, Git дает ошибку "Объект не найден - не соответствует свободному объекту (<sha1>)" вместо ошибки без памяти.
- Опечатка в сообщении об ошибке "... Чтобы открыть это решение..."
- При просмотре журнала ветви и щелчка правой кнопкой мыши первой сборки в журнале выборочный отбор отключен.
- При создании запроса на включение внесенных изменений из Team Explorer в контекстном меню на странице ветвей используется текущая ветвь вместо выбранной.
Xamarin для Visual Studio
Visual Studio 2015 с обновлением 3 теперь включает Xamarin 4.1. В дополнение к ряду исправлений ошибок этот выпуск добавляет поддержку для tvOS, улучшает поддержку ресурсов iOS, улучшает возможности редактирования XML и добавляет селекторы для реализации SSL/TLS и HttpClient при создании приложений iOS. Дополнительные сведения см. в заметках о выпуске Xamarin.