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 third preview builds upon the second preview of Visual Studio 2017 version 15.6 and contains new features, bug fixes, and other enhancements that address your feedback.
You can update to Visual Studio 2017 version 15.6 by opening the Visual Studio Installer and clicking ‘Update’.
What’s New in this Release
Visual Studio Build Tools
The Visual Studio Build Tools allow you to create build servers without installing all of Visual Studio. The installer already supports C++, ASP.NET, and .NET Core for Desktop projects. In response to customer requests, we are enhancing the Visual Studio Build Tools to support additional project types. In this release we have added support for TypeScript and Node.js projects. We expect to add support for more project types in future releases. This is the download location for the Visual Studio Build Tools for this Preview release.
Visual Studio ClickOnce Tools
ClickOnce is a deployment technology that enables you to create self-updating Windows-based applications that can be installed and run with minimal user interaction. It uses certificates to verify the authenticity of the application’s publisher, and to sign the application and deployment manifests to prove that the files have not been tampered with. In this release we have added support for signing the application and deployment manifests with Cryptography Next Generation (CNG) certificate.
Diagnostics and Debugging
Snapshot Debugger
If you are working on an ASP.NET application running in Azure App Service, and would like to try out Snappoints or Logpoints, you can now do so by selecting “Snapshot Debugger (Azure App Service)” in the Debug Target dropdown (Figure 1).
Installation
With new installation details (Figure 2), you can see the download size, download percentage completed and the rate of the download. You can also see total number of packages being installed and how many are remaining.
- Note: If you pause the installation and later resume, the progress applies to what’s left to be downloaded and installed, and does not start from the previous count.
Visual C++ Improvements
- The C++ team has made significant compile-time improvements:
- The compiler optimizes your code to run faster through improved optimizations of pre-incremented loops and improved identification and propagation of constant global data in LTCG.
- Compile times are shorter compared to 15.5. The compiler front-end is between 3-5% faster on most inputs. The compiler optimizer is 3% faster due to reduced overhead of core optimization algorithms. Additionally, large LTCG compilations are 10% faster due to re-architected data structures.
- Improvements to the C++ linker:
- 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.
- Profile-Guided Optimization is enabled and fully supported on ARM64.
F# Language and Tooling Improvements
A lot of improvements went into F# and its tools for this release. As always, significant contributions from the community came together here.
F# compiler and core library improvements
- Bug fixes and Perf improvements, by ncave, Vasily Kirichenko, and Microsoft.
- F# collections now implement
IReadonlyList
andIReadonlyDictionary
, by Saul Rennison. NativePtr.ByRef
support added by mjmckp.Async.StartImmediateAsTask
support added by Onur Gumus.Seq.transpose
,Array.transpose
,List.transpose
support added by Patrick McDonald.
F# tooling improvements
- Error reporting improvements by Vasily Kirichenko and Eugene Auduchinok.
- Performance improvements by Vasily Kirichenko, Eugene Auduchinok, Daniel Wedelich, and Microsoft.
- More precise autocompletion with numerous bugs fixed by Vasily Kirichenko and Microsoft.
- Static members in unopened namespaces are available in completion by Vasily Kirichenko.
- Namespace symbols appear in Document Highlight and Find All References by Vasily Kirichenko.
- Structured Guidelines code has been made available for other editors (VSCode, VS for Mac, Rider) Eugene Auduchinok.
- Better collapsing and structured guidelines for F# constructors by Eugene Auduchinok.
- Shared files in F# and .NET Core SDK-based projects are now supported.
- Open statements are no longer simplified in the Simplify Names analyzer by Vasily Kirichenko.
- Display of
sbyte
andbyte
IL fields in QuickInfo is now supported by Vasily Kirichenko. - Unused declaration code fix is no longer triggered on uncalled F# functions or methods by Vasily Kirichenko.
- .NET Standard projects can now be referenced by F#/.NET Framework projects.
- Drag and Drop across folders in .NET Framework projects is now supported by Paulo Nobre.
- Unused declarations analyzer and code fix is now able to be toggled.
F# infrastructure improvements
- Versioning update RFC has been implemented.
- All localization files used in the compiler and tools are now available on GitHub, and are able to accept community contributions.
- Nightly builds can now be produced in an hour, down from 4+ hours.
- We removed our dependency on the Widows 10 SDK for open source contributors.