Visual Studio 2017 version 15.9 Release Notes
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 visualstudio.com/downloads page to download other Visual Studio 2017 products.
What's New in 15.9
Visual Studio 2017 version 15.9 Releases
- November 15, 2018 -- Visual Studio 2017 version 15.9.1 Servicing Update
- November 13, 2018 -- Visual Studio 2017 version 15.9 Minor Release
Summary of Notable New Features in 15.9
- You can now import and export an installation configuration file that specifies which workloads and components should be installed with an instance of Visual Studio.
- We have improved the debugging experience for NuGet packages using the new symbol package format (.snupkg).
- Step back in debugger is now available in C++ for Enterprise customers.
- C++ IntelliSense now responds to changes in the remote environment for both CMake and MSBuild projects targeting Linux.
- We have made updates to UWP Desktop Bridge framework packages and added support for ARM64 C++ Native Desktop scenarios.
- We added support for the range-v3 library with the MSVC 15.9 compiler.
- We fixed several bugs in the F# compiler and F# tools.
- Language service support for new TypeScript features for semantic file renaming and project references.
- Improved Node.js development by updating Vue.js templates and adding support for unit testing using the Jest framework.
- We added SharePoint 2019 project templates, so you can migrate existing SharePoint 2013 and 2016 projects to SharePoint 2019.
- Visual Studio Tools for Xamarin now supports Xcode 10.
- We made improvements to the Xamarin.Android build performance.
- We have added and improved features for Universal Windows Platform developers, including ARM64 support, the latest preview SDK, better debugging of Desktop Bridge applications, and XAML Designer improvements.
- Substantial improvements were made to the experience of using authenticated package feeds.
- There is now support for lock file to enable repeatable restore for PackageReference based projects.
- We have added support for the new license format for NuGet packages.
- We have introduced NuGet client policies in Visual Studio which enables you to lock down environments such that only trusted packages can be installed.
- We made the use of .NET Core within Visual Studio more predictable.
Top Issues Fixed in 15.9
- No way to change "Find All References" background color.
- "Visual C++ Resource Editor Package" load failed.
- VS2017 v15.8 Build does not start if XAML files are not manually saved first.
- Installation failed - manifest signature verification failed.
- Update 15.8.6 breaks Installer Projects.
- Scrolling up with the arrow key causes Visual Studio to page up.
- After updating to 15.8.1, data tip does not show when debugging.
- System.InvalidProgramException: Common Language Runtime detected an invalid program..
- Solution Explorer does not remain pinned after closing Visual Studio.
- Navigation bar in editor has trouble handling long method names.
See all customer-reported issues fixed in Visual Studio 2017 version 15.9.
Details of What's New in 15.9
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 NuGet.org 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 fixed a bug where extension methods that take
byrefvalues could mutate an immutable value.
- We improved the compile error information for overloads on
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
CompareToon 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.Voidin the context of authoring a Type Provider for .NET Standard could fail to find the
System.Voidtype 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
- We fixed a bug where your program could crash at runtime when partially applying a
byreftype to a method or function. An error message will now display.
- We fixed an issue where an invalid combination of a
byrefand a reference type (such as
byref<int> option) would fail at runtime and not emit an error message. We now emit an error message.
- 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 globalin 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!
- 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.
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 NuGet.org 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.
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.
See all existing known issues and available workarounds in Visual Studio 2017 version 15.9.
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 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.
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.