Visual Studio Code

Microsoft has released a major update to Visual Studio 2017 in the form of version 15.6. Visual Studio 2017 version 15.6 focuses on new features, productivity improvements, and other enhancements that address our customers’ feedback.

This second preview builds upon the first preview of Visual Studio 2017 version 15.6 and contains new features, bug fixes, and other enhancements that address your feedback. Also anew Visual Studio for Mac version 7.4 Preview, available in the Beta channel of the updater.

You can update to Visual Studio 2017 version 15.6 by opening the Visual Studio Installer and clicking ‘Update’.

Read the feature highlight summary below, and check out the Visual Studio 2017 version 15.6 Preview release notes. For Mac users, the Visual Studio for Mac Preview release notes contain more details on what’s new for you.

Performance

We continued our efforts to improve solution load performance, and in this Preview, we specifically focused on scenarios when the project has already been opened on the machine. We optimized our use of the design time build cache and parallelized the way project data is loaded, which enables Visual Studio to leverage disk and CPU more efficiently. Our lab measurements of this change show that large C# and Visual Basic solutions will “warm” load twice as fast as before. If you have a large solution project, we know you’ll appreciate this feature.

Productivity

When you’re in the flow of editing code, we know it’s the little details that often help make you more productive. One such detail: want to quickly duplicate a line of code without losing the contents of your paste buffer? Now you can, with duplicate line (Ctrl+E,V).

We’ve added the ability to navigate to decompiled sources. When enabled, invoking Go To Definition or Peek Definition on any referenced type or member will show its definition with reconstructed method bodies via ILSpy decompilation.

Decompiled

Diagnostics

The CPU Usage Tool, when used during post-mortem profiling with the ALT-F2 Performance Profiler, now displays logical call stacks for asynchronous code (aka ‘Async Call Stack Stitching’). This means that asynchronous code running on behalf of a parent function or Task will appear as a child in the Call Tree and Caller/Callee views. This view makes it easier to navigate asynchronous code and understand its performance characteristics.

CPUUsage Call Stack Stitching

C++ Development

C++17 Standards Conformance: We’ve also made further progress toward implementing the C++17 Standard Library, including APIs such as stable_sort, partition, inline vector::emplace_back in parallel, and <memory_resource>.

Open Folder improvements: Missing include files are now automatically discovered for C++ Open Folder if they exist under the workspace root, even if they are not explicitly added to the include path. Debug options are now available for Embedded ARM GCC support – right click your binary, choose Debug and Launch Settings, and then select C/C++ Debug microcontroller.

C++ IntelliSense in Open Folder & CMake: IntelliSense errors for inactive configurations will now be shown as purple squiggles in the editor (the number of configurations to process is configurable in Tools > Options):

Intellisense

CMake improvements: CTest, Google Test, and Boost.Test tests in CMake projects are automatically discovered and listed in the Test Explorer. If you have the Google Test adapter or the Boost.Test adapter, after you build, you will have an even more granular view of your tests:

Tests

Templates: We’ve included Boost.Test item templates and support for the Boost dynamic library.

C++ Code Analysis enhancements: We’ve added 5 new checks enforcing rules around integer overflow and additional rules from the C++ Core Guidelines, along with a C++ Core Checker extension to detect use of indirections with a lifetime that is out of scope. Additionally, the “Run Code Analysis” command no longer runs code generation, which speeds up analysis runs. We’ve also added support for running single file Code Analysis (or on your selection of files from the Solution Explorer) and have cleaned up the Build and Analyze menus.

Code Analysis

Azure Development

With this Preview, Visual Studio now supports configuring continuous delivery for solutions with ASP.NET Core projects and Docker support targeting Azure Web App for Containers. We also added support for new source control providers. You can now configure Continuous Delivery for your solution if it is under TFVC source control on VSTS or used SSH authentication for Git repositories on GitHub or VSTS. Read more about these features on this post about Continuous Delivery Tools for Visual Studio.

Test Explorer

Hierarchy View: The Test Explorer in Visual Studio now has a hierarchy view that organizes your tests by Project, Namespace, and then Class. This feature not only makes navigating through your tests much easier, but also gives better feedback on tests at a glance. Refer to the release notes for details on how to enable this view and what type of test information you’ll now be able to see. Adding a hierarchy view to the Test Explorer has been at the top of many wish lists and we are excited to hear feedback on the design and how it affects your workflow.

Test Heirarchy

Real time test discovery is a new Visual Studio feature that uses a Roslyn analyzer to discover tests and populate the test explorer in real time without requiring you to build your managed project. This feature was introduced in Visual Studio 2017 15.5 behind a feature flag, and in this Preview is now on by default. This feature not only makes test discovery significantly faster, but it also keeps the test explorer in sync with code changes such as adding or removing tests. Note that unlike Hierarchy View feature described above which is available for all types of projects, the automatic test discovery feature is only available for C# and Visual Basic projects.

Xamarin

Xamarin.Android: Android 8.1 Oreo is the latest version of Android available from Google. Android 8.1 Oreo offers many new features of interest to Xamarin.Android developers. These features include Android Go, Neural Networks API, Autofill Framework updates, SharedMemory API, and many more. These APIs are available to Xamarin.Android apps when you use Xamarin.Android 8.2 and later.

Visual Studio Tools for Xamarin:

Building iOS apps with Visual Studio on Windows just got even easier. This release adds a brand-new feature called macOS environment provisioning. Rather than installing and updating a Mac build machine manually, just connect to the Mac and we will handle the heavy lifting of setup, all from Windows.

You can also now deploy your iOS apps over the network with Wi-Fi debugging – no cables required, on both Windows and Mac. Just make sure you pair a wireless device with Xcode first.

The Xamarin Live Player enables developers to continuously deploy, test, and debug their apps using just Visual Studio and an iOS or Android device. Visual Studio 2017 version 15.5 added support to enable developers to preview real-time XAML changes directly in the Android emulator without requiring a recompile or redeploy. This release brings this functionality to the Remoted iOS Simulator for Windows.