Visual Studio Icon Visual Studio 2017 version 15.9 Release Notes

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

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.

Visit the page to download other Visual Studio 2017 products.

What's New in 15.9

Visual Studio 2017 version 15.9 Releases


Visual Studio 2017 version 15.9 Security Advisory Notices

Release Notes Icon Visual Studio 2017 version 15.9.7 New Release icon

released on February 12, 2019

Issues Fixed in 15.9.7

These are the customer-reported issues addressed in 15.9.7:

Security Advisory Notices

Release Notes Icon Visual Studio 2017 version 15.9.6

released on January 24, 2019

Issues Fixed in 15.9.6

These are the customer-reported issues addressed in 15.9.6:

Release Notes Icon Visual Studio 2017 version 15.9.5

released on January 08, 2019

Issues Fixed in 15.9.5

These are the customer-reported issues addressed in 15.9.5:

Security Advisory Notices

Release Notes Icon Visual Studio 2017 version 15.9.4

released on December 11, 2018

Issues Fixed in 15.9.4

These are the customer-reported issues addressed in 15.9.4:

Security Advisory Notices

Release Notes Icon Visual Studio 2017 version 15.9.3

released on November 28, 2018

Issues Fixed in 15.9.3

These are the customer-reported issues addressed in 15.9.3:

Release Notes Icon Visual Studio 2017 version 15.9.2

released on November 19, 2018

Issues Fixed in 15.9.2

These are the customer-reported issues addressed in 15.9.2:

Release Notes Icon Visual Studio 2017 version 15.9.1

released on November 15, 2018

Issues Fixed in 15.9.1

These are the issues addressed in 15.9.1:

  • Fixed a bug where Visual Studio would fail to build projects using the Microsoft Xbox One XDK.

Details of What's New in 15.9.1

Universal Windows Platform Development SDK

The Windows 10 October 2018 Update SDK (build 17763) is now the default selected SDK for the Universal Windows Platform development workload.

Summary of Notable New Features in 15.9

Top Issues Fixed in 15.9

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

The Developer Community Portal

Details of What's New in 15.9

Release Notes Icon Visual Studio 2017 version 15.9.0

released on November 13, 2018

New Features in 15.9


We made it easier to keep your installation settings consistent across multiple installations of Visual Studio. You can now use the Visual Studio Installer to export a .vsconfig file for a given instance of Visual Studio. This file will contain information about what workloads and components you have installed. You can then import this file to add these workload and component selections to another installation of Visual Studio.


We have added support for consuming the new portable-pdb based symbol package format (.snupkg). We have added tooling to make it easy to consume and manage these symbol packages from sources like the symbol server.


  • We've added the "step back" feature in the debugger for C++ in the Visual Studio Enterprise Edition. Step back enables you to go back in time to view the state of your application at a previous point in time.
  • C++ IntelliSense now responds to changes in the remote environment for both CMake and MSBuild projects targeting Linux. As you install new libraries or change your CMake projects, C++ IntelliSense will automatically parse the new headers files on the remote machine for a complete and seamless C++ editing experience.
  • We've updated the UWP Desktop Bridge framework packages to match the latest in the Windows Store for all supported architectures, including ARM64.
  • In addition to fixing 60 blocking bugs, we have added support for the range-v3 library with the MSVC 15.9 compiler, available under /std:c++17 /permissive-.
  • The retail VCLibs framework package in Visual Studio has been updated to match the latest available version in the UWP Store.
  • Full support is now available for ARM64 C++ Native Desktop scenarios, including VC++ 2017 Redistributable.
  • We implemented the shortest round-trip decimal overloads of floating-point to_chars() in C++17's charconv header. For scientific notation, it is approximately 10x as fast as sprintf_s() "%.8e" for floats, and 30x as fast as sprintf_s() "%.16e" for doubles. This uses Ulf Adams' new algorithm, Ryu.
  • A list of improvements to the standards conformance of the Visual C++ compiler, which potentially require source changes in strict conformance mode, can be found here.
  • We have deprecated the C++ Compiler /Gm switch. Consider disabling the /Gm switch in your build scripts if it's explicitly defined. Alternatively, you can also safely ignore the deprecation warning for /Gm as it will not be treated as error when using "Treat warnings as errors" (/WX).


F# Compiler

  • We fixed a bug where extension methods that take byref values could mutate an immutable value.
  • We improved the compile error information for overloads on byref/inref/outref, rather than displaying the previously obscure error.
  • Optional Type Extensions on byrefs are now disallowed entirely. They could be declared previously, but were unusable, resulting in a confusing user experience.
  • We fixed a bug where CompareTo on a struct tuple and causing a type equivalence with an aliased struct tuple would result in a runtime exception.
  • We fixed a bug where use of System.Void in the context of authoring a Type Provider for .NET Standard could fail to find the System.Void type at design-time.
  • We fixed a bug where an internal error could occur when a partially applied Discriminated Union constructor is mismatched with an annotated or inferred type for the Discriminated Union.
  • We modified the compiler error message when attempting to take an address of an expression (such as accessing a property) to make it more clear that it violates scoping rules for byref types.
  • We fixed a bug where your program could crash at runtime when partially applying a byref type to a method or function. An error message will now display.
  • We fixed an issue where an invalid combination of a byref and a reference type (such as byref<int> option) would fail at runtime and not emit an error message. We now emit an error message.

F# Tools

  • We resolved an issue where metadata for F# assemblies built with the .NET Core SDK was not shown in file properties on Windows. You can now see this metadata by right-clicking an assembly on Windows and selecting Properties.
  • We fixed a bug where use of module global in F# source could cause Visual Studio to become unresponsive.
  • We fixed a bug where extension methods using inref<'T> would not show in completion lists.
  • We fixed a bug where the TargetFramework dropdown in Project Properties for .NET Framework F# projects was empty.
  • We fixed a bug where creating a new F# project targeting .NET Framework 4.0 would fail.

F# Open Source Repository

The VisualFSharpFull project is now set as the default startup project, eliminating the need to manually set that before debugging. Thanks, Robert Jeppesen!

JavaScript and TypeScript Language Service Support

  • We added refactoring to fix up references to a file after it has been renamed. We also added support for project references, letting you split your TypeScript project up into separate builds that reference each other.
  • We updated to the latest Vue CLI 3.0 and improved linting in Vue.js template files. You can also write and run unit tests using the Jest framework.
  • We have added support for TypeScript 3.1.

SharePoint 2019 Support

We added new templates that allow you to create projects for SharePoint 2019. You will have the ability to migrate existing SharePoint projects from both SharePoint 2013 and SharePoint 2016 to the new project template.

Visual Studio Tools for Xamarin

Visual Studio Tools for Xamarin now supports Xcode 10, which allows you to build and debug apps for iOS 12, tvOS 12, and watchOS 5. See how to get ready for iOS 12and our introduction to iOS 12for more details on the new features available.

Initial Xamarin.Android Build Performance Improvements

Xamarin.Android 9.1 includes initial build performance improvements. See our Xamarin.Android 15.8 vs. 15.9 build performance comparison for more details.

Tools for Universal Windows Platform Developers

  • The latest Windows 10 SDK (build 17763) is included as an optional component in the Universal Windows Platform development Workload.
  • We added support for creating .MSIX packages for both the Universal Windows Platform projects, as well as in the Windows Application Packaging Project template. To create an .MSIX package, the minimum version of your application must be the latest Windows 10 SDK (build 17763).
  • You can now build ARM64 UWP applications. For .NET UWP applications, only .NET Native is supported for ARM64, and you must set the Minimum Version of your application to the Fall Creators Update (Build 16299) or higher.
  • We made improvements to the F5 (Build + Deploy) speed for Universal Windows Platform applications. This will be most noticeable for deployments to remote targets using Windows authentication, but will impact all other deployments as well.
  • Developers now have the option to specify Control Display Options when using the XAML Designer while building UWP applications targeting the Windows 10 Fall Creators Update (build 16299) or later. Selecting "Only Display Platform Controls" prevents the designer from executing any custom control code to improve reliability of the designer.
  • The XAML designer now automatically replaces controls that throw with catchable exceptions with fallback controls, rather than having the designer crash. Fallback controls have a yellow border to cue in developers that the control has been replaced at design time.
  • The Windows Application Packaging project now supports debugging background process using the Core CLR debugger type.


NuGet Credential Provider Improvements

This release substantially improves the experience of using authenticated package feeds, especially for Mac and Linux users:

  • Visual Studio, MSBuild, NuGet.exe, and .NET now support a new Credential Provider plugin interface, which can be implemented by private package hosts like Azure Artifacts. Previously, only NuGet.exe and Visual Studio accepted Credential Providers.
  • Visual Studio editions (including the Build Tools edition) now deliver the Azure Artifacts Credential Provider with certain workloads, so that you can easily use Azure Artifacts feeds in the course of your development. To use these improvements, install the NuGet package manager or NuGet targets and build tasks components, or the .NET Core workload.

NuGet Package Manager Improvements

  • NuGet now enables locking the full package closure of PackageReference based projects, thereby enabling repeatable restore of packages.
  • The Visual Studio NuGet package manager UI now surfaces the license information for packages that use the new license format. The new license format embeds the license information as part of the package in the form of an SPDX expression or a license file.

NuGet Security

We have introduced NuGet Client Policies which allow you to configure package security constraints. This means you can lock down environments so only trusted packages can be installed by:

  • Disallowing the installation of unsigned packages.
  • Defining a list of trusted signers based on the author signature.
  • Defining a list of trusted package owners based on the metadata in the repository signature.

.NET Core Tools for Visual Studio

Starting with this release, the .NET Core tools for Visual Studio will now default to using only the latest stable version of a .NET Core SDK that is installed on your machine for GA releases of Visual Studio. For future previews, the tools will use only preview .NET Core SDKs.

Release Notes Icon Visual Studio 2017 version 15.9 Security Advisory Notices

Visual Studio 2017 version 15.9.7 Service Release -- released on February 12, 2019

CVE-2019-0613 WorkflowDesigner XOML deserialization allows code execution

A XOML file referencing certain types could cause random code to be executed when the XOML file is opened in Visual Studio. There is now a restriction on what types are allowed to be used in XOML files. If a XOML file containing one of the newly unauthorized types is opened, a message is displayed explaining that the type is unauthorized.

If it is known that the XOML file being opened does not cause security issues, you can disable the check for unauthorized types by adding a key to the <appSettings> section of the devenv.exe.config file as follows:

  <add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerTypeChecking" value="true"/>

This appSetting value completely disables the type checking in the XOML serializer. If this value is "true", it takes precedence over the other new appSetting.

If you only want to disallow a few specific types, but allow all other types, your need to make the following changes to your devenv.exe.config file:

  <add key="microsoft:WorkflowComponentModel:DisableXOMLSerializerDefaultUnauthorizedTypes" value="true"/>

This will allow all of the types are were unauthorized by default. To mark specific types as unauthorized you must also add these changes to the devenv.exe.config file:

    <sectionGroup name="System.Workflow.ComponentModel.WorkflowCompiler" type="System.Workflow.ComponentModel.Compiler.WorkflowCompilerConfigurationSectionGroup, System.Workflow.ComponentModel, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35">​
      <section name="authorizedTypes" type="System.Workflow.ComponentModel.Compiler.AuthorizedTypesSectionHandler, System.Workflow.ComponentModel, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>​
      <foo version="v4.0">​
        <authorizedType Assembly="System.Activities.Presentation, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Activities.Presentation" TypeName="WorkflowDesigner" Authorized="false"/>

The above changes will only mark the type System.Activities.Presentation.WorkflowDesigner in the assembly System.Activities.Presentation, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35 as unauthorized. To mark other types as unauthorized add similar entries for those other types.

CVE-2019-0657 .NET Framework and Visual Studio Spoofing Vulnerability

.NET Core updates have released today and are included in this Visual Studio update. This release addresses security and other important issues. Details can be found in the .NET Core release notes.

Visual Studio 2017 version 15.9.5 Service Release -- released on January 08, 2018

CVE-2019-0546 Visual Studio Remote Code Execution Vulnerability

A remote code execution vulnerability exists in Visual Studio when the C++ compiler improperly handles specific combinations of C++ constructs. An attacker who successfully exploited the vulnerability could run arbitrary code in the context of the current user. If the current user is logged on with administrative user rights, an attacker could take control of the affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights. The security update addresses the vulnerability by correcting how the Visual Studio C++ compiler handles certain C++ constructs.

Visual Studio 2017 version 15.9.4 Service Release -- released on December 11, 2018

CVE-2018-8599 Diagnostics Hub Standard Collector Service Elevation of Privilege Vulnerability

An elevation of privilege vulnerability exists when the Diagnostics Hub Standard Collector Service improperly handles certain file operations. An attacker who successfully exploited this vulnerability could gain elevated privileges. To exploit this vulnerability, an attacker would require unprivileged access to a vulnerable system. The security update addresses the vulnerability by ensuring the Diagnostics Hub Standard Collector Services properly impersonates file operations.

Fixed Issues

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

The Developer Community Portal

Known Issues

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

Visual Studio 2017 Known Issues


We would love to hear from you! For issues, let us know through 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 make a product suggestion or track your issues in the Visual Studio Developer Community, where you can ask questions, find answers, and propose new features. You can also get free installation help through our Live Chat support.


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

For more information relating to past versions of Visual Studio 2017, see the Visual Studio 2017 Release Notes History page.

Top of Page