Visual Studio Icon Visual Studio 2017 version 15.7 Release Notes


| Developer Community | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Known Issues |


Note

If you are accessing this page from a non-English language version, and want to see the most up-to-date content, please visit this Release Notes page in English. You can change the language of this page by clicking the icon in the page footer and selecting your desired language.


Click a button to download the latest version of Visual Studio 2017. For instructions on installing and updating Visual Studio 2017, see Update Visual Studio 2017 to the most recent release. Also, see instructions on how to install offline.


What's New in 15.7

The Visual Studio Blog is the official source of product insight from the Visual Studio Engineering Team. You can find in-depth information about the Visual Studio 15.7 releases in the following posts:

Visual Studio 2017 version 15.7 Releases

Visual Studio 2017 version 15.7 Announcements

Summary of Notable New Features in 15.7


Top Issues Fixed in 15.7

These are the customer-reported issues addressed in 15.7:

See all customer-reported issues fixed in Visual Studio 2017 version 15.7.

The Developer Community Portal


Details of What's New in 15.7

Release Notes Icon Visual Studio 2017 version 15.7.0

released on May 07, 2018

New Features in 15.7

Performance

  • In this release, we improved solution load time for C# and VB projects by an average of 20%.
  • In large .NET Core projects, we reduced the time to load IntelliSense by 25%.
  • When switching branches in Git, the modal progress dialog has been removed when solutions and projects do not need to be reloaded.

Installing Visual Studio

  • The update dialog provides more details about your update, such as what's new, the download size, and the latest update version.
  • Improved save experience: Before you update Visual Studio, all pending changes will be saved locally first -- before starting the update. The update dialog, will show a Save All & Update button instead of Update Now.
  • We reduced the installation footprint on the system drive by moving the download cache, shared components, some SDKs, and tools to different drives (Figure 1).
Install Locations
(Figure 1) Choose install locations

There are three locations you can manage, and these locations can only be set with your very first installation:

  • Visual Studio core product: This location is for files that are specific to the version of Visual Studio you selected to install.
  • Download cache: Installation files and manifests will be downloaded to this location. If you decide not to keep the download cache by unchecking the check box, the files will be removed after installation completes.
  • Shared components, tools, and SDKs: This location is for files that are shared by side-by-side Visual Studio installations.

Note

Tools and SDKs that have different rules as to where they are installed, won’t be installed to this drive. The tool/SDK specific rules take precedence.

Note

Users can disable the package cache and set the location.

Visual Studio IDE

The dialog window (Figure 2) that indicates which long running operation is keeping Visual Studio busy, is now screen reader accessible (for example, NVDA, Narrator, etc.). When the dialog is shown by Visual Studio, the screen reader plays an audio cue indicating new information is visible on the screen. Users can read the contents of the dialog or interact with the Cancel button when available by invoking the Change View command in Narrator.

Wait dialog
(Figure 2) Loading dialog window, now screen reader accessible

Note

For full Narrator support, you must be using Windows 10 Redstone 4 (RS4) builds.

Visual C++ Improvements

  • This release contains a fix for a local information disclosure vulnerability in PDB files as described in CVE-2018-1037.
  • C5045 is a new compiler diagnostic that lets you see code patterns where the compiler would have inserted a Spectre mitigation.
  • Visual Studio's bundled CMake installation has been upgraded from 3.10 to 3.11.
  • CMake projects support static analysis of C++ code, such as VCXProj.
  • MSVC supports the C++17 feature P0426R1 "constexpr for std::char_traits," which makes std::string_view much more usable at compile time.
  • Use CodeLens above each of your unit tests to Run, Debug, and view Test Status (Figure 3).
Use CodeLens above each of your unit tests
(Figure 3) Use CodeLens above each of your unit tests
  • We updated the Visual Studio iOS development tools for C++ to work with Xcode 9.
  • We added /analyze:ruleset option to cl.exe for filtering down warnings in the C++ Code Analysis tools based on ruleset configuration. This results in a consistent experience between standalone invocations of the compiler and the IDE and improves performance by running only the rules mentioned in ruleset.
  • Inheriting a constructor now works the same as inheriting any other base class member. Previously, this worked by declaring a new constructor that delegates to the original; with this change, base class constructors are visible in a derived class as if they were derived class constructors, improving consistency in C++.
  • Templates that are designed to take any type as a non-type parameter can now use the auto keyword in the template parameter list. This allows instantiations to use any type instead of needing to determine and supply the type of template parameter at the point of instantiation.
  • std::launder is now supported.
  • Two-phase name lookup operates correctly in almost all cases. Some edge cases, such as non-dependent function calls to overloaded operators, will be fixed in a future update.
  • The MSVC compiler toolset conforms with the C++ 17 Standard. When compiling with the /Zc:__cplusplus switch, the value of the __cplusplus macro reflects the correct Standard version numbers.
  • The Visual C++ Runtime supports mitigations for the Spectre variant 1 vulnerability. The toolset includes mitigated and non-mitigated versions of the DLLs. Enabling the Spectre Mitigation feature in the Code Generation property page will also cause linking to the mitigated version of the DLL. More information about Spectre mitigations is available on the Visual C++ Team Blog.
  • Enabled compiler support for Spectre mitigations in non-optimized builds (/Od).
  • The /Zf switch is now enabled by default, which enables faster PDB generation when using multiple compilation processes.
  • We significantly improved the code generation for /await. We re-implemented coroutines in the code generator to improve reliability, fixing the vast majority of bugs.
  • The CMake Targets View provides an alternative way to view a CMake project's source in the Solution Explorer; instead of a folder-based view, it organizes the code into individual CMake targets (Figure 4). The organization is similar to the organization of the Project and Solution files created by the CMake "Visual Studio" generator.
CMake Targets View
(Figure 4) CMake Targets View
  • Source files (.cpp) belonging to CMake projects can be built individually via the CMake menu or by right-clicking on a source file in the Solution Explorer.
  • Unknown macros that cause tag-parsing errors are now underlined with green squiggles. A quick action is available to automatically add the macro to a C++ Hint file to resolve the issue. All tag-parsing errors in the Solution or folder can be listed by clicking Display Tag Parser Errors on the Project menu.
  • Add headers to the CppProperties.json include path with quick actions in Open Folder.
  • Headers from Linux and Unix-like systems are now automatically downloaded for use by IntelliSense on Windows. These are also used to provide an enhanced IntelliSense experience for Linux native Platform development.
  • We added five new rules enforcing items from the C++ Core Guidelines regarding use of the Guidelines Support Library.
  • We allow public base classes in aggregate types, so that they can be initialized using aggregate initialization syntax without writing boilerplate constructors. In the braced initializer list, bases are initialized first, followed by data members.
  • Extend template argument deduction for functions to constructors of template classes; when you construct a class template, it is no longer necessary to specify the arguments.
  • C++17 has changed the definition of qualification conversions. Previously, these were permitted between multi-level pointers and mixed pointers, such that qualifiers could often be added at levels other than the first; however, this did not similarly apply to arrays.
  • Refined the expression evaluation order for major C++ operators that were previously left to compiler implementation detail, for example, member access, assignment, and array index.
  • Expand the using declaration to support pack expansion semantics for variadic base class members, which can then be used inside the derived class.
  • We are now complete with the full implementation of Expression SFINAE, and made the corresponding Standard Template Library changes.
  • We implemented parallel algorithms conforming to the ISO C++17 standard. See the source file located at [VSInstallDir]\VC\Tools\MSVC\<ver>\include\yvals.h for additional details.
  • In /std:c++17 mode, the warning level of C4834 ("discarding return value of function with 'nodiscard' attribute") is increased from W3 to W1. In addition, the compiler can now deduce the type of a non-type template argument that is declared with auto.
  • Debugging large solutions with /Debug:fastlink PDBs is more robust. Changes in the PDB lead to reduced latency and a 30% reduction in heap memory consumption in the VS Debugger.
  • C++ Core Check is now part of the default toolset for native code analysis. Whenever code analysis is executed over a project, a subset of rules is enabled from C++ Core Check in addition to default recommended rules.
  • We added parallel compilation support for Linux projects, which may significantly improve build times. This can be enabled via Property Pages > C/C++ > Max Number of Parallel Compilation Jobs.
  • The "Public Project Include Directories" Linux project property has been added to improve consumption of includes from project-to-project references in Linux solutions.
  • We added ClangFormat support for C++ developers in the IDE. Similar to EditorConfig, you can use ClangFormat to automatically style and format your code as you type, in a way that can be enforced across your development team.

C# Compiler

In addition to bug fixes, this release brings the following C# 7.3 features:

Python

  • You can run MyPy on a project by right-clicking on the project and selecting Python > MyPy. MyPy will check your code against type hints, and any type errors detected will be shown in the error list.
  • You can create and use Conda environments as well as manage packages for your Conda environments using pip or Conda.
  • Anaconda version 5.1.0 is now available from the Visual Studio Installer and is installed by default when the Data Science workload is selected.
  • We added an opt-in to the ptvsd 4.0 version of the Python debugger based on the popular open source pydevd debugger. The opt-in offers faster debugging performance for applicationscan and can be enabled by checking Use experimental debugger from Tools > Options > Python > Experimental.
  • Check out the Python in Visual Studio 15.7 blog post for more on using the debugger, Conda, MyPy, and type hints.

Visual Studio Tools for Xamarin

This release includes Xamarin.Android 8.3 and Xamarin.iOS 11.10.

Automatic Android SDK Management

When a Xamarin.Android project is loaded, Visual Studio can determine if the Android API level used by the project is missing from your machine and automatically install it for you in the background. To enable this feature, go to Tools > Options > Xamarin > Android Settings > Auto Install Android SDKs.

Improved XAML IntelliSense

Xamarin.Forms developers using Visual Studio 2017 version 15.7 will notice a vastly improved IntelliSense experience (Figure 5). The Xamarin.Forms XAML editing experience is now powered by the same IntelliSense engine that powers WPF and UWP. This brings many enhancements to developers, including improved matching, light bulb suggestions, code navigation, linting, resource completion, and markup extension completion.

Xamarin.Forms XAML editing experience
(Figure 5) Xamarin.Forms XAML editing experience

Tooling Enhancements for Conditional XAML

The XAML editor provides IntelliSense for authoring conditional XAML. When using a type that is not present in the target min version of your app, the XAML editor now not only warns, but also, provides several options to fix it.

Automatic iOS Provisioning

We made iOS device provisioning for development easier (Figure 6). In Visual Studio 2017 version 15.7, there's a streamlined experience to request a development certificate, generate a signing key, add a device in the Developer Center, and create a provisioning profile, all with a single button click. All the heavy lifting of provisioning an iOS device is handled for you in less than 30 seconds.

iOS & Android Project Templates
(Figure 6) Provisioning iOS apps got easier with our automatic iOS provisioning feature.

Android SDK Management

Figuring out what Android SDKs to install for mobile development can be time consuming. Visual Studio 2017 version 15.7 adds a new Android SDK manager that takes the guesswork out of managing Android SDK installations. After opening a project for which you don’t have SDKs installed to build it, a notice will appear to help you download the required SDKs. After clicking Download & Instal and accepting the relevant license agreement, the correct SDKs will automatically be installed in the background for you.

New iOS & Android Project Templates

Whether you’re a new or seasoned Xamarin developer, project templates are an important part of the app building journey. They should be easy to find and set you up for success from the start (Figure 7). In this release, we completely rebuilt our iOS and Android native project templates for better discoverability and support for modern navigation patterns like flyout or bottom tabs.

iOS & Android Project Templates
(Figure 7) Easy to find and set your iOS & Android Project Templates

Improvements to Installation

The Visual Studio Installer ships with an updated Android SDK configuration, including Android API 27 and Android SDK Tools 26. This includes support for quick boot, which enables your Android emulator to boot in less than five seconds.

Additionally, we include the Android Device Manager as part of the Mobile development with .NET workload to easily create, edit, and delete emulators.

.NET Productivity Improvements

  • Use Quick Actions and Refactorings (Ctrl+.) to:
    • Convert for-to-foreach, and vice versa.
    • Make private fields readonly.
  • Go To Definition (F12) is now supported for LINQ query clauses and deconstructions.
  • Use Ctrl+. to toggle between var and the explicit type, regardless of your code style preferences.
  • Quick Info shows captures on lambdas and local functions, so you can see what variables are in scope.
  • Change Signature refactoring (Ctrl+. on signature) works on local functions.
  • You can edit .NET Core project files in-place, so opening containing folder, restoring tabs, and other Editor features are fully supported. IDE changes, such as adding a linked file, will be merged with unsaved changes in the editor.

Testing

  • Live Unit Testing works with embedded pdbs and pdbs specifying /deterministic.
  • We added Live Unit Testing support for projects that use reference assemblies.
  • The Test Explorer has more responsive icons during test runs. When a test run is in progress, a progress ring appears next to tests that are currently executing, and a clock icon appears for tests that are pending execution.

Web Tools

  • The ASP.NET Web Application project templates have been refreshed to newer versions of the dependent packages.
  • You can publish your non-containerized applications to Azure App Service on Linux.
  • Link to open your Azure App Service in Cloud Explorer from the Publish Summary page.
  • You have support for publishing .NET Core framework dependent and self-contained applications.
  • Publish support for F# applications to App Service and folder.
  • We added support for hosing ASP.NET Core applications directly in the IIS Express process.
  • You can create a storage account and provide a connection string name to be stored in App Service settings when publishing to a new Azure App Service.
  • We improved Kestrel HTTPs support during debugging.
  • ASP.NET Core applications support multiple semi-colon separated values in the "App URL" field under project properties. When multiple URLs are present in this field, the first one is used to launch the browser.
  • New scaffolder called "Identity" is available via the command line (GUI support coming soon), which adds identity management UI to your ASP.NET Core 2.1 applications.
  • ASP.NET and ASP.NET Core projects can create and associate Azure Key Vaults with their web applications within the IDE by configuring the "Key Vault" Connected Service.
  • When an ASP.NET or ASP.NET Core application depends on Azure Key Vault, an error appears in the error list if the app is unable to access that Key Vault at runtime from the developer’s machine given the account selected under Tools > Options > Azure Service Authentication. This shortens the time to discover and correct the permission or account issue and avoid an application failure at runtime.
  • When your web app consumes a KeyVault to which your selected ASAL user account has no access, a warning will now appear in the Error List.

Visual Studio 2017 Build Tools

Support for Azure, UWP, and Other Workloads

Visual Studio 2017 Build Tools support command-line builds for most Visual Studio projects. Supported projects include: ASP.NET, Azure, C++ desktop, ClickOnce, containers, .NET Core, .NET Desktop, Node.js, Office and SharePoint, Python, TypeScript, Unit Tests, UWP, WCF, and Xamarin. We expect to add support for SQL in a future release. Visual Studio Build Tools now also support installing into a container. You can download Visual Studio Build Tools from Visual Studio Downloads. A list of workload and component IDs with which you can tailor your container image can be found in the Visual Studio Build Tools 2017 component directory.

Note

Build Tools requires a license to Visual Studio 2017.

UWP Support in Visual Studio 2017 Build Tools

Visual Studio Build Tools allow you to create build servers without installing all of Visual Studio. In response to customer requests, we enhanced Visual Studio Build Tools to support additional project types. These project types include UWP tools, bringing the supported project list ASP.NET, Azure, C++ desktop, ClickOnce, containers, .NET Core, .NET Desktop, Node.js, Office and SharePoint, Python, TypeScript, Unit Tests, UWP, WCF, and Xamarin. We expect to add support for SQL in a future release.

Tools for Universal Windows Platform Developers

  • Visual State Management and Animation tooling is available in Blend with the latest updates to the XAML Designer. All UWP developers have access to these tools. In addition, XAML Edit & Continue supports editing Visual States and Animations.
  • Windows Machine Learning automatic code generation support allows WinML wrapper classes to be generated by adding your ONNX model files as an existing item in the project.
  • The Windows 10 April 2018 Update SDK (Build 17134) is the default SDK for the Universal Windows Platform development workload in Visual Studio.
  • You can create related sets with code execution in optional packages using C# and the new Optional Code Package project template.
  • With the new 'Package Layout' item template, you can easily construct flat package bundles.

AppInstaller Support in APPX Packages

The Universal Windows Platform allows distributing applications without the Microsoft Store by using a mechanism called “sideloading”. This release allows you to generate the appinstaller file to get automatic updates from your APPX based deployments. Learn more about the underlying technology.

NuGet

  • This release provides out of the box support for migrating existing projects based on packages.config to PackageReference.

  • We added support for NuGet package signatures. Installing or restoring signed packages validates the digital signature before extracting the packages content. If the signature validation fails (for example, the content has been tampered with, invalid certificate, etc.) the operation will be blocked with a build error that is shown in the Error List.

TypeScript and JavaScript

TypeScript 2.8 RC is now included in Visual Studio 2017 version 15.7.
This release brings the following improvements:

  • Support for jsconfig.json, a file that can help control your editor options much like tsconfig.json.
  • An option to reduce resource usage by turning off type-checking for unopened files.
    • This is the only report diagnostics for files opened in the editor option under Tools > Options > TextEditor > JavaScript/TypeScript > Project.
  • New editing features for both TypeScript and JavaScript users:
    • Applying all quick fixes within a file.
    • Organize imports.
    • Completions for this. in classes and braces in JSX.
  • TypeScript 2.8 features:
    • Conditional types (A extends B ? C : D).
    • New lib.d.ts conditional type helpers such as NonNullable, ReturnType, Extract, and Exclude.
    • Granular control on modifiers in mapped types.
    • Control on JSX factories within files using the new // @jsx pragma.

You can find more information on TypeScript 2.8 in the TypeScript 2.8 RC blog.

  • TypeScript 2.7 features:
    • Strict property initialization.
    • Numeric separators.
    • Smarter type guards.

You can find more information on TypeScript 2.7 in the TypeScript 2.7 blog.

We also fixed some of the top issues raised by customers, including premature triggering of snippets, uncancellable refactorings, hard-to-disable formatting, and incorrect TypeScript version selection.

Note

These improvements are powered by TypeScript 2.8. For the best experience, update your existing projects to the latest TypeScript version.

JavaScript debugging with Microsoft Edge

Visual Studio ASP.NET and .NET core developers on Windows Insider builds, can set breakpoints and debug their JavaScript files using a Microsoft Edge browser. Visual Studio will use the new Edge DevTools Protocol developed by the Microsoft Edge team when targeting Microsoft Edge browser. Developers can debug and fix JavaScript issues from within Visual Studio in both Microsoft Edge and Google Chrome browsers. We are glad to enable this often-requested feature from our customers. We would love to hear your feedback on the feature to help us improve and build a better Visual Studio.

Debugging and Diagnostics

This release adds VSTS and GitHub authentication support for Source Link. Authentication will be added to Source Link requests automatically if it is available through the IDE. If the user is not already authenticated, the sign in UI will be shown to enable authentication.

IntelliTrace’s step-back debugging feature is supported for debugging .NET Core projects.

  • To enable the feature, go to Tools > Options > IntelliTrace settings, and select the IntelliTrace events and snapshots option.
  • IntelliTrace's step-back debugging feature supports taking snapshots on exceptions. To enable the feature, go to Tools > Options > IntelliTrace settings, and select the option IntelliTrace events and snapshots (Figure 8).
Snapshot on exception
(Figure 8) Snapshot on exception

Launch and Attach Script Debugger to Microsoft Edge for ASP.NET Projects

You can debug both JavaScript and TypeScript directly in Visual Studio when using Google Chrome as your browser of choice. All you need to do is select Chrome as your browser in Visual Studio and hit F5 to debug. See the Client-side debugging of ASP.NET projects in Google Chrome for additional information.

Team Explorer

In Git Settings, Global Settings in Team Explorer, there is an option to choose between OpenSSL and Secure Channel. OpenSSL is the default.

Service Fabric Tooling for the 6.2 Service Fabric release

The Service Fabric Tools for the Service Fabric 6.2 release provide compatibility support for the 6.2 runtime and 3.1 SDK. Along with several bug fixes, a new feature enables adding container support to existing ASP.NET or Console projects. Both .NET Framework and .NET Core 2.0 projects are supported through a new "Add Orchestration Support" context menu and dialog. Once these projects have added Service Fabric orchestration support, they can be deployed remotely and debugged on the local Service Fabric cluster.

Entity Framework Tools Improvements

F# and F# Tools Improvements

We made many improvements to F# and its tools. Performance and cleaning up existing experiences with .NET SDK-style projects has been the focus for this release. As always, we also received significant contributions from the wonderful F# community.

F# Compiler and Core Library Improvements

  • Enabled generating F# AssemblyInfo from properties with the F# compiler in the .NET SDK.
  • --debug:full is supported for the F# .NET Core compiler on Windows.
  • MakeTuple is supported for struct tuples.
  • An unnecessary warning when using an extension method for a tuple is now resolved.
  • MailboxProcessor.PostAndAsyncReply properly handles cancellation when a parent process is cancelled.
  • Equality for float32 types is now correct when NonStructuralComparison is used.
  • Warnings are now forwarded when searching for method overloads, by Matthias Dittrich.
  • An improvement to a warning when pattern matching on an enum to emit an example of an unmatched enum, by John Wostenberg.

F# Tooling Improvements

  • Significant reductions in memory usage in the F# Compiler Service, by Avi Avni and Microsoft.
  • Significant performance improvements for the Unused Open Analyzer when it is turned on.
  • Improved responsiveness when F# analyzers and code fixes are turned on, such that error diagnostics are always prioritized above the rest.
  • We added ASP.NET Core templates for F#.
  • The initial ordering for pasted files in folders for .NET SDK projects is now correctly at the top of the scope the file was pasted into.
  • F# scripts without a project file correctly sends code to F# Interactive when Alt+Enter is pressed.
  • The debugger view for F# lists has been extended from 50 items to 5000 items.
  • Classic F# projects (.NET Framework only) also perform design-time builds, which reduces solution load time.
  • The Structured Guidelines and Outlining views can now be toggled, under Settings > Text Editor > F# > Advanced.
  • Assembly level attributes are now returned by the F# Compiler Service.
  • We added Entity.DeclaringEntity to the F# Compiler Service.
  • Optimization is available via the F# Compiler Service API, by Steffen Forkmann and ncave.
  • GetDeclarationLocation no longer requires a file to provide results on otherwise correct data, by amieres.
  • IsNameGenerated is now available in the F# Symbols API, by Eugene Auduchinok.

F# Infrastructure Improvements

  • autoconf is no longer required in our Mono build.
  • All Visual Studio integration projects now use the .NET SDK.
  • The commit hash for a build of the tools is available in Help > About Microsoft Visual Studio.

To see the full commit log of what went into this release, check out our release tag for 15.7.


Known Issues

See all existing known issues and available workarounds in Visual Studio 2017 version 15.7.

Visual Studio 2017 Known Issues


Release Notes Icon Visual Studio 2017 version 15.7.1

released on May 08, 2018

Top Issues Fixed in 15.7.1

These are the customer-reported issues addressed in 15.7.1:

  • This release includes a fix that reduces memory usage and GC pressure during solution load.

Release Notes Icon Visual Studio 2017 version 15.7 Security Advisory Notice

updated on May 08, 2018

Microsoft Security Advisory for .NET Core Denial Of Service Vulnerability

CVE-2018-0765

Microsoft is releasing this security advisory to provide information about a vulnerability in .NET Core and .NET native version 2.0. This advisory also provides guidance on what developers can do to update their applications to remove this vulnerability.

Microsoft is aware of a denial of service vulnerability that exists when .NET Framework and .NET Core improperly process XML documents. An attacker who successfully exploited this vulnerability could cause a denial of service against a .NET Framework, .NET Core, or .NET native application.

The update addresses the vulnerability by correcting how .NET Framework, .NET Core, and .NET native applications handle XML document processing.

If your application is an ASP.NET Core application, developers are also advised to update to ASP.NET Core 2.0.8.


Release Notes Icon Visual Studio 2017 version 15.7.2 New Release icon

released on May 21, 2018

Top Issues Fixed in 15.7.2

These are the customer-reported issues addressed in 15.7.2:


Feedback

We’d love to hear from you! For issues, let us know via the Report a Problem option in the upper right-hand corner of either the installer or the Visual Studio IDE itself. The Feedback Icon icon is located in the upper right-hand corner. You can track your issues in the Visual Studio Developer Community, where you can ask questions and find answers. You can also make a product suggestion through UserVoice or get free installation help through our Live Chat support.


Blogs

Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.

Developer Tools Blogs


Visual Studio 2017 Release Notes History

You can view prior versions of Visual Studio 2017 release notes:


Top of Page