After rolling out Visual Studio 2017 version 15.7 Preview 1 on March 13, 2018, Microsoft today announced the availability of Preview 2. Visual Studio 2017 version 15.7 Preview 2 comes with a long list of new features, along with a bunch of fixes and one known issue. Though not called out explicitly, this version should also work with the Windows 10 SDK Preview build 17120 that was released yesterday.
Here’s the list of features that are new in this release:
Visual Studio IDE
- Improved save experience - Before updating Visual Studio all pending changes will be saved locally first before starting the update. The update dialog, will show a Save All & Update button instead of Update Now.
- The dialog window (Figure 1) that indicates which long running operation is keeping Visual Studio busy, is now screen reader accessible (e.g. NVDA, Narrator, etc). When the dialog is shown by Visual Studio, the screen reader will play an audio cue indicating new information is visible on the screen. Users can read the contents of the dialog or interact with the “Cancel” button when available by invoking the “Change View” command in Narrator.
- Note: For full Narrator support, you must be using Windows 10 Redstone 4 (RS4) builds.
(Figure 1) Wait dialog, now screen reader accessible
- When an ASP.NET or ASP.NET Core application depends on Azure Key Vault, an error appears in the error list if the app will not be able to access that Key Vault at runtime from that developer’s machine given the account selected under Tools | Options | Azure Service Authentication. This shortens the time to discover and correct the permission or account issue and avoid an application failure at runtime.
- Added five new rules enforcing items from the C++ Core Guidelines regarding use of the Guidelines Support Library.
- We allow public base classes in aggregate types, so that they can be initialized using aggregate initialization syntax without writing boilerplate constructors. In the braced initializer list, bases are initialized first, followed by data members.
- Extend template argument deduction for functions to constructors of template classes – when you construct a class template you no longer have to specify the arguments.
- C++17 has changed the definition of qualification conversions. Previously, these were permitted between multi-level pointers and mixed pointers, such that qualifiers could often be added at levels other than the first; however, this did not similarly apply to arrays.
- Refined the expression evaluation order for major C++ operators that were previously left to compiler implementation detail, e.g. member access, assignment, and array index.
- Expand the using declaration to support pack expansion semantics for variadic base class members, which can then be used inside the derived class.
- We are now complete with the full implementation of Expression SFINAE, and have made the corresponding Standard Template Library changes.
- Implemented parallel algorithms conforming to the ISO C++17 standard. See the source file located at [VSInstallDir]\VC\Tools\MSVC\<ver>\include\yvals.h for additional details.
- In /std:c++17 mode, the warning level of C4834 ("discarding return value of function with 'nodiscard' attribute") is increased from W3 to W1. In addition, the compiler can now deduce the type of a non-type template argument that is declared with auto.
- We added In-proc support for IIS Express.
- You can now add a storage account in Publish settings.
AppInstaller Support in APPX Packages
The Universal Windows Platform allows distributing applications without the Microsoft Store by using a mechanism called “sideloading”. This release allows you to generate the appinstaller file to get automatic updates from your APPX based deployments. Learn more about the underlying technology.
Tooling Enhancements for Conditional XAML
The XAML editor now provides IntelliSense for authoring conditional XAML. When using a type that is not present in the target min version of your app, the XAML editor now not only warns, but also, provides several options to fix it.
Visual Studio 2017 version 15.7 Preview 2 now ships with TypeScript 2.8 RC. This release brings
- Support for jsconfig.json, a file that can help control your editor options much like tsconfig.json.
- An option to reduce resource usage by turning off type-checking for unopened files.
- This is the Only report diagnostics for files opened in the editor option under
- Applying all quick fixes within a file.
- Organize imports
- Completions for this. in classes and braces in JSX.
- TypeScript 2.8 features
- Conditional types (A extends B ? C : D)
- New lib.d.ts conditional type helpers such as NonNullable, ReturnType, Extract, and Exclude.
- Granular control on modifiers in mapped types.
- Control on JSX factories within files using the new // @jsx pragma.
You can find more information on TypeScript 2.8 in the TypeScript 2.8 RC blog.
- TypeScript 2.7 features
- Strict property initialization
- Numeric separators
- Smarter type guards
You can find more information on TypeScript 2.7 in the TypeScript 2.7 blog.
We also fixed some of the top issues raised by customers, including premature triggering of snippets, uncancellable refactorings, hard-to-disable formatting, and incorrect TypeScript version selection.
- NOTE: These improvements are powered by TypeScript 2.8. For the best experience, update your existing projects to the latest TypeScript version.
Visual Studio 2017 Build Tools
Support for Azure and other workloads
The Visual Studio Build Tools allow you to create build servers without installing all of Visual Studio. In response to customer requests, we are enhancing the Visual Studio Build Tools to support additional project types. The Build Tools previously supported C++, ASP.NET, TypeScript, .NET, .NET Core, and Node.js projects. With this release we have added Azure, Office and Sharepoint, Mobile development with .NET (Xamarin), Python, ClickOnce, Docker Tools, Test Tools, and support for installing into containers. Click here to download the preview release of the Visual Studio Build Tools.
And here is a list of the top customer-reported issues that have been addressed in this release:
- Visual Studio Build Tools is missing MSBuild Web SDKs.
- Razor formatting issues when performing copy/paste of html code to cshtml file.
- Scrolling in the Solution Explorer 'stutters'.
- C++ compiler: #pragma once doesn't work when prepended by #line.
- [[maybe_unused]] with structured binding causes unreferenced local variable warning.
Additionally, you can head to the Developer Community page to view specific customer-reported issues that have been fixed in the Preview.
You can download the Visual Studio Preview here. For providing feedback to Microsoft on any issues, you can head to the developers' forum or use the Report a Problem option in the installer or in the Visual Studio IDE itself. New product suggestions and feature requests can be logged through the UserVoice page.