Visual Studio 2017 version 15.5 - Preview Release Notes

Last Update: 11/15/2017

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


In this article, you will find information regarding the current Preview release for Visual Studio 2017. Click the button to download the latest preview release.

Note

This release is not "go-live" and not intended for use on production computers or for creating production code.

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.

Need professional support right now? See available support options.

Release History

You can learn more about how we ship our releases and how to identify different versions in the Visual Studio 2017 Release Rhythm document.

Known Issues

Please refer to the Known Issues section.


Release Date: November 14, 2017 - Visual Studio 2017 version 15.5.0 Preview 4

Summary of Updates in this Release


Top Issues Fixed in this Release

These are the customer-reported issues addressed in this release:

Dev Community Votes   Xamarin fails to install the broker on Mac after Visual Studio 15.4 installation.
Dev Community Votes   Upgrade stuck on install. When modified then restarted, received ReturnCode error.
Dev Community Votes   Visual Studio 2017 hangs while debugging an application.
Dev Community Votes   Installation terminates with ReturnCode error message.
Dev Community Votes   Installation hangs with ReturnCode error message.
Dev Community Votes   Window hangs when creating Razor views.
Dev Community Votes   Visual Studio locks when adding ASP.NET MVC full dependencies and forces a close/re-open.
Dev Community Votes   Report Tool: Typing in the Report tool is too slow and 'lags' in Visual Studio 15.4.
Dev Community Votes   Unable to change the Python environment or access the interactive Python console.
Dev Community Votes   The 'Hello World' sample scenario 148 won't build.


What's New in this Release

.NET Core and ASP.NET Core Security Advisories

Microsoft has released security advisories for .NET Core and ASP.NET Core. Details can be found in corresponding announcements in the .NET Core and ASP.NET Core repos. Please note the following information:

  • CVE-2017-8585 Malformed Certificate can cause Denial of Service: There is a security vulnerability in .NET Core 1.0, 1.1 and 2.0 where a malformed certificate or other ASN.1 formatted data could lead to a denial of service via an infinite loop on Linux and macOS. System administrators are advised to update their .NET Core runtimes to versions 1.0.8, 1.1.5 and 2.0.1. Developers are advised to update their .NET Core SDK to version 2.0.3 or 1.1.5.

  • CVE-2017-8700 CORS bypass can enable Information Disclosure: There is a security vulnerability in ASP.NET Core 1.0 and 1.1 where Cross-Origin Resource Sharing (CORS) can be bypassed, leading to information disclosure.

  • CVE-2017-11879 Open Redirect can cause Elevation Of Privilege: There is a security vulnerability in ASP.NET Core 2.0 where an Open Redirect exists, leading to Elevation Of Privilege.

  • CVE-2017-11770 Denial Of Service Vulnerability: There is a security vulnerability in ASP.NET Core 1.0, 1.1 and 2.0 when the application is hosted through Windows Http.Sys where a malformed request can lead to a Denial Of Service.

New projects created with ASP.NET Core 1.0, ASP.NET Core 1.1 and ASP.NET Core 2.0 will now use package versions that include the above security updates. For existing projects, users can update their packages to newer versions using the Manage NuGet Packages dialog.

Visual C++ Improvements

You now have the ability to import existing CMake projects and cache configurations into the IDE via File > Open > CMake.

MSVC Compiler Toolset

In Visual Studio 2017 15.5, the MSVC compiler toolset in Build Tools has been updated to version to 14.12, which is compatible with the 15.4 version 14.11 toolset. In the event that you encounter an issue compiling your code after upgrading to Visual Studio 2017 15.5 Preview 4, you can force installation of the 14.11 toolset side-by-side with the 14.12 toolset. The Visual Studio 2017 15.4 toolset (14.11) can be selected under the Individual Components tab, after installing the C++ Desktop workload.

What's New in the C# Compiler

The C# compiler now supports the 7.2 set of language features including:

  • Support for the Span<T> type being used throughout Kestrel and CoreFX via the ref struct modifier.
  • readonly struct modifier: Enforces that all members of a struct are readonly. This adds a layer of correctness to code and also allows the compiler to avoid unnecessary copying of values when accessing members.
  • in parameters / ref readonly returns: Allows for unmodifiable structs to be safely passed and returned with the same efficiency as modifable ref values.
  • private protected access modifier: Restricts access to the intersection of protected and internal.
  • Non-trailing named arguments: Named arguments can now be used in the middle of an argument list without the requirement that all following arguments are passed by name as well.

F# Tooling Improvements

In the Visual Studio 2017 15.5 Preview 4 release, we targeted F# tooling support for .NET Core SDK projects. The following are now supported:

  • You can create new .NET Core console apps, .NET Standard libraries, and .NET Core unit test projects from File > New Project.
  • We added support for existing .NET Core and .NET Standard projects.
  • We added suport for existing .NET Core SDK projects that target a .NET Framework version.
  • All current IDE features (rename, Go to Definition, etc.) are supported.
  • Project-to-project references are supported.
  • We added support for Web SDK projects (e.g., F# ASP.NET Core projects or a project using the Giraffe template).
  • You can now right-click Publish tooling with Web SDK projects.
  • Autogenerating a CI/CD pipeline with Visual Studio Team Services tooling is supported.

Please file any issues you find on our GitHub repository.

Visual Studio Web Tools

  • Razor syntax formatting has been improved.
  • We improved the experience for publishing ASP.NET applications to Azure Virtual Machines.

Docker Container Tooling

  • Visual Studio's tools for Docker containers now support multi-stage Dockerfiles, to streamline the creation of optimized container images.
  • If you are running Visual Studio on a machine running Windows 10 version 1709 or Windows Server version 1709, your container images will utilize Windows Server version 1709 by default. You can change this by editing the Dockerfile. Please note that container images that utilize older versions of Windows will only run on Windows 10 version 1709 and Windows Server version 1709 in Hyper-V isolation mode. For more details, please see Windows Container Version Compatibility page.
  • By default, Visual Studio will automatically pull, build, and run the necessary container images in the background when you open a project that has Docker support. You can disable this via the Automatically start containers in background setting in Visual Studio.

Release Date: November 6, 2017 - Visual Studio 2017 version 15.5.0 Preview 3

Summary of Updates in this Release

Top Issues Fixed in this Release

Dev Community Votes   Visual Studio Professional 15.3 install generates setup error on install.
Dev Community Votes   If a .NET SDK project has an assemblyname and project file name which don't match, the restore fails in 15.4.
Dev Community Votes   Visual Studio 2017 15.3 installation fails with "Failed to install WindowsUpdates.KB2533623" error message.
Dev Community Votes   Visual Studio crashes after loading a solution.
Dev Community Votes   Visual Studio 2017 install fails due to missing Windows6.1-KB2533623-x64.cab.
Dev Community Votes   Call Hierarchy stucks on Searching after you expand Calls To three levels deep.
Dev Community Votes   Fresh install of Visual Studio 2017 Community on a fresh install of Windows 10 64-bit results in a broken Python Tools.
Dev Community Votes   Visual Studio freezes when loading a solution.
Dev Community Votes   When you update a NuGet package across a solution containing many projects, it will hang or crash Visual Studio, resulting in a partial upgrade to project files.

What's New in this Release

Visual C++ Improvements

Built-in Support for Boost.Test Framework

Write, discover, and run your Boost.Test unit tests in Visual Studio. By default, the Test Explorer now supports the Boost.Test framework. If you are upgrading from a previous Visual Studio installation, you'll need to add the component in the Visual Studio Installer. For more information please refer to the Test Adapter for Boost.Test goes in-box blog post.

Embedded Source and Embedded PDB Support

With Embedded Source, the Visual Studio Debugger can now retrieve source files for managed binaries directly from the .pdb file. Combine using Embedded Source with Embedded PDB to create fully standalone debuggle .dlls. Learn more about using the /embed compiler switch.

You can also now debug using Edit and Continue for managed code when building with Embedded PDBs.


Release Date: October 23, 2017 - Visual Studio 2017 version 15.5.0 Preview 2

Summary of Updates in this Release

Top Issues Fixed in this Release

Dev Community Votes   Install VS Professional 15.3 generates setup completed error: PackageId=WindowsUpdates.KB2533623;PackageAction=Install;ReturnCode=14081.
Dev Community Votes   Icons are missing after Visual Studio 2017 15.3 update.
Dev Community Votes   Visual Studio has a conflict with OneDrive on demand (Windows 10 insider build).
Dev Community Votes   Error messages in Windows Forms Designer after 15.3.2 update.
Dev Community Votes   Exception Helper window breaks on exception while debugging.
Dev Community Votes   Go To View > context menu option missing from Asp.Net Core (Framework).
Dev Community Votes   Constructor snippet for nested class creates constructor for outer class.
Dev Community Votes   XAML Designer stopped working after attempt to install additional features.
Dev Community Votes   VS 15.3.3 crashes when attempting to debug a unit test.
Dev Community Votes   "Could not load file or assembly" error generated in DesignTime when a view open has a viewmodel references to SeriLog.

What's New in this Release

We've updated the error dialog to display more information to help solve installation problems using potential solutions from the Visual Studio Developer Community. (Figure 1).

New installer error dialog box

(Figure 1) Installer Error Dialog

Visual C++ Improvements

We added these improvements to the Standard Template Library regarding the C++17 standard:

  • not_fn() : P0005R4 is replacement of not1 and not2.
  • Rewording enable_shared_from_this: P0033R1 Re-enabling shared_from_this.
  • Deprecating Vestigial Library Parts: P0174R2. A number of features of the C++ Standard library have been surpassed by additions over the years, or we have learned do not serve their intended purpose as well as originally expected. This paper proposed deprecating features where better, simpler, or clearer options are available.
  • Removing Allocator Support In std::function: P0302R1. The class template std::function has several constructors that take an allocator argument, but the semantics are unclear, and there are technical issues with storing an allocator in a type-erased context and then recovering that allocator later for any allocations needed during copy assignment. Those constructors should be removed.
  • Fixes for not_fn(): P0358R1. The new wording for std::not_fn is proposed, that amongst other improvements, provides support of propagation of value category in case of wrapper invocation.
  • shared_ptr<T[]>, shared_ptr<T[N]>: P0414R2. Merging shared_ptr changes from Library Fundamentals to C++17.
  • Fixing shared_ptr for Arrays: P0497R0. Fixes to shared_ptr support for arrays.
  • Deprecating shared_ptr::unique(): P0521R0. Proposed Resolution for CA 14 (shared_ptr use_count/unique).
  • Deprecating: P0618R0
  • Removing Dynamic Exception Specifications: P0003R5. Dynamic exception specifications were deprecated in C++11. Removing the feature from C++17, while retaining the (still) deprecated throw() specification strictly as an alias for noexcept(true).
  • Splicing Maps And Sets: P0083R3. This design allows splicing operations of all kinds, moving elements (including map keys) out of the container, and a number of other useful operations and designs. It is an enhancement to the associative and unordered associative containers to support the manipulation of nodes. This is a pure addition to the Standard Library.
  • Clarifying insert_return_type: P0508R0. The associative containers with unique keys, and the unordered containers with unique keys have a member function insert that returns a nested type insert_return_type. That return type is a specialization of the type specified in this section.
  • Inline Variables For The STL: P0607R0.
Improvements to the Visual C++ Compiler

The Visual C++ compiler supports about 75% of the C++17 features, including structured bindings, constexpr lambdas, if constexpr, inline variables, fold expressions, hexfloat literals, and adding noexcept to the type system. These are available under the /std:c++17 switch. The /permissive- conformance mode includes partial support for two-phase name lookup and improved pack expansion support for variadic templates. Additionally, /permissive- mode has been added as new Language drop-down menu in the project properties for C++ projects.

Improvements to the Visual C++ Optimizer

The C++ code generation team has made improvements to existing compiler optimizations, and added new optimizations in the 15.5 release.

Select linker improvements:

  • You will experience new and faster /OPT:ICF implementation: up to 9% link time speedups.
  • We made fixes to incremental linking. Incremental linking will never be slower than full linking.

Select improvements to existing optimizations:

  • We improved vectorizer heuristic for conditional expressions.
  • We enhanced loop-if-unswitching optimization.
  • We made improvements to loop unrolling.
  • We improved float min/max codegen.

Select new optimizations:

  • We improved and eliminated redundant (and partially redundant) instructions to SSA Optimizer.
  • We optimized vectorization of conditional scalar stores.
  • We combine calls sin(x) and cos(x) to sincos(x).

Visual C++ supports Intel's AVX-512, including the Vector Length instructions that bring new functions in AVX-512 to 128- and 256-bit wide registers.

Improvements to the C++ Core Guidelines Checker

We are shipping over 20 new C++ Core Guidelines checks in C++ code analysis. These checks cover smart pointer correctness, correct use of global initializers, and flagging uses of constructs like goto and bad casts.

Some warning numbers you may find in 15.3 are no longer available in 15.5. These warnings were replaced with more specific checks.

Built-in Support for Google Test Framework

Write, discover, and run your Google Test unit tests in Visual Studio. By default, the Test Explorer now supports the Google Test framework. If you are upgrading from a previous Visual Studio installation, open the Visual Studio Installer, click "Modify" on your Visual Studio instance, and check the "Test Adapter for Google Test" box under "Desktop development with C++". Easily create a new Google Test project: select File > New > Project > Visual C++ > Test > Google Test.

TypeScript/JavaScript Improvements

Angular 2 Support

Angular2 developers can now see errors, completions, and code navigation in inline templates and .ngml template files. See the sample repo for an overview and instructions.

Performance Improvements

We've added a "Only analyze projects which contain files opened in the editor" checkbox under the JavaScript/TypeScript Text Editor Project Options page. This option will improve performance and reliability in large solutions. Note that when this box is checked, you will need to perform a Solution build to see a complete list of TypeScript errors in all files.

We fixed an issue that caused the TypeScript/JavaScript language service to use more memory than intended and could cause the wrong version of TypeScript to be loaded in multi-project solutions.

IntelliTrace Improvements

Step-back While Debugging with IntelliTrace

IntelliTrace's Step-back debugging feature (Figure 2) is now supported for debugging ASP.NET applications running in IIS Express. To enable this feature, go to Tools > Options > IntelliTrace settings, and select IntelliTrace events and snapshots. The feature is available on Windows 10 Anniversary Update and above.

stepback

(Figure 2) Step-back while debugging with IntelliTrace

Open Folder Support for ARM Online Compiler Exports

Choose the option in the Linux C++ workload for Embedded and IoT projects and you can edit and compile projects targeting ARM microcontrollers. We support opening projects exported as GCC from the ARM online compiler that can then be cross-compiled locally from within Visual Studio. For more information, see our blog post on Visual C++ for ARM development.

Remote Tasks

Open folder now supports remote tasks. These are tasks that execute on a remote system over ssh. These tasks can also be configured to copy files to the target machine for doing things like compiling code with make on a Linux system. To learn more, see our blog post on Using remote tasks in Visual Studio.

Changes in F# Setup

Starting with Preview 2, we have changed the way that you acquiure F#:

  • If you install a Workload that requires .NET Core 2.0, it will also install F# language support by default. This is because F# is included in the .NET Core SDK. The .NET Core and ASP.NET and web development workloads will install F# by default now.
  • The "F# language support" checkbox in the .NET desktop development workload has been renamed to "F# desktop support" to reflect that it only includes F# and .NET Framework templates.

There is currently an issue with F# and .NET Core support, documented more thoroughly on GitHub.. This has already been fixed and will be available in a future Preview release.


Release Date: October 11, 2017 - Visual Studio 2017 version 15.5.0 Preview 1

Summary of Updates in this Release

Top Issues Fixed in this Release

What's New in this Release

Visual Studio IDE

Setup and Install

  • Installer now generates a Windows restore point during installation.
  • Add & Remove Programs now has entries for each Visual Studio installation. Visual Studio Installer now supports modify and uninstall for each entry.
  • Installing from an offline layout no longer requires installing intermediate certificates on a disconnected computer.
  • We added reliability and cancellability improvements in the install and update process.

Performance

  • Reduced load times of large C# and Visual Basic projects.
  • Reduced time to switch configurations between debug and release.

Connected Services

  • We've updated the Azure Storage service provider to support ASP.NET Core projects that target .NET Core.

Windows Communication Foundation (WCF) Tools

The WCF Web Service Reference connected service provider is now part of Visual Studio 15.5 Preview 1.

To use this tool, right click on the Dependencies project item in your .Net Core project and select the Add Connected Service option, and enter the address of the web service that you want to generate code for. The generated WCF client proxy code is saved into a C# file that is automatically added to your project. This will allow your .NET Core based code to easily communicate with the web service.

Please visit the WCF Web Service Reference release notes in GitHub for more details.

Visual Studio Tools for Xamarin

This release contains updated support for the Xamarin SDKs for iOS and Android:

Xamarin Live

Xamarin Live enables developers to continuously deploy, test, and debug their apps, directly on iOS and Android devices. After downloading the Xamarin Live Player (available in the App Store or on Google Play), you can pair your device with Visual Studio and begin building mobile apps using just Visual Studio and your mobile device. Optimized for Xamarin.Forms, you can now modify their XAML and see the changes reflected in moments on your device without having to compile or wait for a full deploy. This release brings numerous enhancements to our Xamarin Live functionality, including:

  • Smarter Debug & Live Run: The Live Player will now automatically adjust your start-up project to the correct platform when debugging to the Xamarin Live Player (Figure 3). For example, if iOS is selected and the Live Player device that is paired is a Google Pixel, the IDE will recommend you change your start-up project to Android.
  • Deployment Status: You can now track the status of a "Debug" to the Xamarin Live Player with deployment statuses in the status bar.
  • Console & Error Window Integration: Output logged within the app will now appear within the Console window, and errors will now appear in the Errors window in Visual Studio.
  • Live Run Context Menu & Keyboard Shortcut: We wanted to make it easy to instantaneously visualize your XAML UI, so we added a context menu and keyboard shortcut to make previewing your XAML pages fast and easy.
  • Live Run Document Switching: When building out UIs, it's common to switch between different XAML documents. Changing the active document in Visual Studio will automatically live run whatever XAML page you have open, so you can easily switch back-and-forth between different pages and have them reflected on your device instantaneously.

Animation of the Xamarin Live Player pair, deployment, and live edit modes.

(Figure 3) Animation of the Xamarin Live Player pair, deployment, and live edit modes

Templates

File -> New Project -> Mobile App just got easier with updates to the cross-platform template wizard for iOS, Android, and Windows apps, including:

  • .NET Standard Support - You can now create a new cross-platform Xamarin app that uses .NET Standard 2.0 as a code sharing strategy.
  • Target Platforms Checkbox - Select what platforms you care about at File -> New.
  • PackageReference - All templates now default to using PackageReference, a new easy way to manage NuGet packages in your Xamarin apps.
  • Unfold performance enhancements - Templates should now unfold much faster than before. In the most extreme cases, you may see up to a 40x improvement in unfold time.

File -> New -> Mobile App

Xamarin Android SDK Manager

Managing your Android SDKs just got easier with the new Xamarin Android SDK Manager. You can use the new SDK Manager by going to Tools -> Android -> Android SDK Manager in Visual Studio.

F# Improvements

There are a number of bug fixes in the F# 4.1 compiler with this release:

  • Improvements to PDB generation in the F# compiler, fixing five known issues in debugging F# dating back to 2014.
  • A fix for record fields being incorrectly resolved by the compiler, by Vasily Kirichenko.
  • StartAsTask will now properly wait for cancellation to finish, by Matthias Ditrich.
  • Assembly references are now created when a type is used in an attribute only.
  • Single-case struct discriminated unions with the same case name are no longer silently converted to an object type.
  • A possible endless async loop on MailboxProcess. Receive has been fixed.

There have also been quite a few improvements to the Visual F# tooling by multiple authors. They include:

  • Go to Definition from F# to C#, by Saul Rennison and Vasily Kirichenko.
  • Colorization for Blue (Extra Contrast) theme, by Microsoft and Vasily Kirichenko.
  • Property pages will auto-size correctly on different monitors.
  • Smart auto-indent for new lines, by Duc Nghiem Xuan.
  • Auto-deindentation for closing brackets, by Saul Rennison.
  • Enumeration fields are now able to be seen as symbols in tooltips, Find All References, Go to All, and Inline Rename, by Vasily Kirichenko.
  • XML doc comments which are separated by newlines are not prepended to the current XML doc comment in hovers, by Vasily Kirichenko.
  • The XML documentation for the ref keyword has been corrected by CHBen.
  • Multiple bug fixes and performance improvements.

There has also been progress on supporting .NET Core SDK-based projects. That support is still not ready enough to declare full support yet, but we welcome you to try out opening such a project and experimenting.

To see a full set of changes with this release, see our commit log for the VS 2017 15.5 Preview tag.

Debug in-production apps with the Snapshot Debugger

You can now use Snappoints and Logpoints to debug against ASP.NET and ASP.NET Core applications running in Azure App Services with minimal impact to the app.

  • Set Snappoints (Figure 4) to capture the state of your app, including Locals, Watches, and the Call Stack. Unlike breakpoints, your app will not stop when a Snappoint is hit.

Snappoints

(Figure 4) Snappoints

  • Use Logpoints (Figure 5) to log new messages from your app without needing to add code or redeploy your application.

Logpoint

(Figure 5) Logpoints

Accessing Azure resources from Visual Studio with Conditional Access enabled

Visual Studio now supports access to Azure resources that have conditional access enabled that requires you to authenticate with 2FA, even if your account itself does not require 2FA. Previously, if your account required 2FA to sign in, Visual Studio would prompt for 2FA and you could then access any resources that required 2FA; but if your account did not require 2FA, Visual Studio would fail to access those 2FA resources.

Now, when accounts do not require 2FA but resources do, you may authenticate your account within Visual Studio without 2FA, and when you first try to access an Azure resource that requires 2FA, Visual Studio will prompt you to re-authenticate and this time will require 2FA to enable access to your resource.

Work with Git submodules and worktrees, and configure fetch.prune and pull.rebase in Team Explorer

The latest updates to Team Explorer have been inspired by your feedback on UserVoice.

Visual Studio now treats Git submodules and worktrees like normal repos. Just add them to your list of Local Repositories and get coding! Please note that for submodules, you still cannot do any action that requires multi-repo support (such as viewing a file in the parent repo and a file in the submodule at the same time).

Additionally, it's now easier to set your default Git behavior to prune on every fetch and to rebase on every pull. Pruning on every fetch removes local tracking branches that no longer exist on the server and helps you keep your branches list clean and up to date. Rebasing on every pull keeps your commit history linear and easier to follow. You can find these options in Global and Repository Settings.

Office Tooling Support for Office in the Windows Store

Office Web Add-in projects and VSTO Projects now support development with Office in the Windows Store. You can create, build, debug, and publish Web Add-in projects and VSTO projects using Office in the Windows Store.

  • The Fall Creators Update (version 1709) for Windows 10 or Windows Server 2016 is required to use the Office Tooling with Office in the Windows Store.

Visual Studio Tools for Unity

  • Unity projects are now automatically reloaded in Visual Studio when you add or remove a script from Unity.
  • Fixed .Player project generation when working on a UWP game with the IL2CPP/.NET 4.6 backend.
  • Introduced an option to use the Mono debugger shared by Xamarin and Visual Studio for Mac to debug the Unity Editor.

Live Unit Testing

  • Live Unit Testing’s builds are now out-of-process improving memory utilization in Visual Studio.

Known Issues

Visual Studio 2017 Known Issues See all existing known issues and available workarounds in Visual Studio 2017 version 15.5.

We are fully committed to listening to your feedback. Visit the Developer Community site to find the latest issues, log new issues, and upvote existing issues.


Visual Studio 2017 Release Notes History

Visual Studio 2017 (version 15.4) Release Notes

Visual Studio 2017 (version 15.3) Release Notes

Visual Studio 2017 (version 15.2) Release Notes

Visual Studio 2017 (version 15.1) Release Notes

Visual Studio 2017 (version 15.0) Release Notes


Top of Page