Visual Studio 2017

Last Update: 4/17/2017

We are happy to announce the release of Visual Studio 2017. This release brings a new lightweight and modular installation experience which can be tailored to your needs.

Use Visual Studio 2017 to develop apps for Android, iOS, Windows, web, and cloud. Code fast, debug and diagnose with ease, test often, and release with confidence. You can also extend and customize Visual Studio by building your own extensions. Use version control, be agile, and collaborate efficiently with this new release!

Download: Visual Studio Enterprise 2017

To learn more about other related downloads, see the Downloads page. Also, see Visual Studio 2017 System Requirements and Visual Studio 2017 Platform Targeting and Compatibility.

Feedback

We’d love to hear from you! For problems, let us know via the Report a Problem option in the upper right corner, either from the installer or the Visual Studio IDE itself. Track your feedback on the Developer Community portal. For suggestions, let us know through UserVoice.

Release History

Known Issues

Refer to the Known Issues section.


Release Date: April 17, 2017 - version 15.1 (26403.07)

Issues Fixed in this Release

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

Other issues addressed in this version:

  • Notifications for updates will not be received when installing from an offline layout in environments without internet access, even when the offline layout is updated to the newer version.

Release Date: April 10, 2017 - version 15.1 (26403.03)

Issues Fixed in this Release

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


Release Date: April 5, 2017 - version 15.1 (26403.00)

Summary of Updates in this Release


Issues Fixed in this Release

To learn more about issues addressed in version 15.1, please visit our Developer Community Portal.

What's New in this Release

A New Team Explorer Standalone Install

Visual Studio Team Explorer 2017 is a rich, standalone client for accessing Team Foundation Server and Visual Studio Team Services and is free for any user. This install only includes Team Explorer so you can access version control and work item tracking without other IDE components.

team explorer

Tools for Universal Windows App Development

The Universal Windows App workload now includes the Creators Update SDK (10.0.15063), allowing you to build apps for the Windows 10 Creators Update (version 1703). In addition, this release includes the following enhancements:

  • Starting with the Creators Update SDK, the Windows 10 SDK will install side by side, allowing you to use a single machine to build production-ready apps that target the released version of the SDK as well as begin testing new OS features delivered by a Preview Windows SDK.
  • NuGet package management has been improved by using PackageReference to replace package.config and package.json.
  • An enhanced .NET Native Compiler that is now delivered as a NuGet package.
  • Visual Studio includes improved tooling support for XAML controls that are delivered as NuGet packages.
  • IntelliSense in the XAML editor now highlights XAML types and properties that are not supported in the version of the SDK that your app is targeting.

For more information, see Creators Update SDK support in Visual Studio 2017.


Release Date: March 31, 2017 - version 15.0 (26228.12)

What's New in this Release

  • We now support Xcode 8.3, iOS 10.3, watchOS 3.2, and tvOS 10.2 tools and APIs in the Xamarin.VS Extension for Visual Studio 2017.

Release Date: March 28, 2017 - version 15.0 (26228.10)

Issues Fixed in this Release

These are the customer-reported issues addressed in build 26228.10:


Release Date: March 14, 2017 - version 15.0 (26228.09)

Issues Fixed in this Release

These are the customer-reported issues addressed in build 26228.09:


Release Date: March 7, 2017 - version 15.0 (26228.04)

Summary

Develop: Navigate, write, and fix your code fast

  • New Installation Experience - A reduced minimum footprint for faster and more customizable installations, as well as support for offline installs.
  • Visual Studio IDE - A broad range of enhancements in Visual Studio 2017, including reduction in startup and solution load times, sign in and identity improvements, improved code navigation, open folder view, and connected services enable connections between your app and any service on-premises or in the cloud.
  • Visual C++ - No breaking changes between 2015 and 2017. Better C++14 conformance level, CMake support, build throughput, and productivity in the editor.
  • C# and Visual Basic - Extends support for new C# 7.0 and Visual Basic 15 language features, and introduces new refactorings that allow you to organize source code with one action.
  • F# - Support for F# 4.1 language features, improvements to the F# compiler and FSharp.Core, and a new editor based on Roslyn Workspaces.
  • JavaScript and TypeScript - TypeScript 2.1 is available for all TypeScript projects in Visual Studio. A new JavaScript language service is available and enabled by default.

Debug: Debug, profile, and diagnose with ease

  • Debugging and Diagnostics - Overhaul of the Exception Helper and faster code navigation with Run to Click. Plus, a new summary of your application events in the Diagnostic Tools window and several improvements to the CPU Tool.

Test: Write high-quality code with comprehensive testing tools

  • Live Unit Testing - Visualize unit testing results and code coverage live in the editor.
  • Testing Tools - Associate automation with test case work items using the Test Explorer.

Collaborate: Use version control, be agile, and collaborate efficiently

Extend: Customize to your liking by building your own extensions

Equip: Utilize tooling to increase productivity and explore new capabilities

  • .NET Core and ASP.NET Core - This contains the 1.0 final release of the new MSBuild based .NET Core Tools. Using Visual Studio 2017, you can create .NET Standard libraries, .NET Core apps/libraries, and ASP.NET web projects that use the new csproj format.
  • Tools for Universal Windows App Development - Updates include a new version of the .NET Native toolchain, .NET Core NuGet framework, new productivity tools, and support for the Windows 10 "Creators Update" SDK.
  • Xamarin - Xamarin 4.3 adds support for tvOS, while also improving iOS Assets Catalog support and the XML editing experience.
  • Visual Studio Tools for Apache Cordova - A new browser-based simulator enables you to code fast and see the results immediately.
  • Node.js Tools for Visual Studio - Updates focused on stability, performance, and overall product quality.
  • Visual Studio Tools for Unity - Visual Studio Tools for Unity 3 is now available with the "Game Development with Unity" workload from the new Visual Studio installer.
  • Redgate Data Tools - To extend DevOps capabilities to SQL database development, Visual Studio now includes Redgate Data Tools, comprising Redgate ReadyRoll Core, SQL Search, and SQL Prompt Core.
  • NuGet - NuGet now supports storing package dependency information directly in project files as package references, while maintaining the advances of transitive package references.
  • Tools for XAML Apps - The XAML runtime toolbar now lets you track focus. XAML productivity has been improved with XAML Edit & Continue, improvements to the XAML Editor, and performance optimizations.
  • Data Tools and SQL Server - The latest update of SQL Server Data Tools enables support for the newest features in Azure SQL Database and SQL Server 2016.
  • Developer Analytics Tools - Visual Studio 2017 includes Developer Analytics Tools v8.6 with many improvements to the Application Insights and HockeyApp features in Visual Studio.
  • Office Developer Tools for Visual Studio - Includes Office Developer Tools with the latest features and updates.
  • Live Architecture Dependency Validation - Real-time notifications of dependency validation diagrams (aka Layer diagrams).
  • Developer Command Prompt - Refactored scripts to support the new installation experience.
  • Azure SDK for .NET - Now available from the new Visual Studio installer.

Issues Fixed in this Release

Visit the Developer Community Portal to see all issues addressed in Visual Studio 2017 (version 15.0).

What's New in Visual Studio 2017

Installation Experience

We're delighted to introduce our new installer, which was designed from the ground up to:

  • Reduce the minimum footprint of Visual Studio.
  • Install more quickly, with less system impact, and uninstall cleanly.
  • Make it easier for you to select and install just the features you need.

When you first install Visual Studio 2017, you'll see the new experience:

The new installation experience in Visual Studio 2017

The smallest install is just a few hundred megabytes, yet still contains basic code editing support for more than twenty languages including source code control. Most users will want to install more. You can add one or more 'workloads' that represent common frameworks, languages, and platforms - covering everything from .NET desktop development to game development with Unity.

How to Update Visual Studio

To update Visual Studio, run the Visual Studio Installer and click the "Update" button.

Feedback on the New Installer

You can report problems or praise using the Report a Problem and Provide a Suggestion commands from the new installer client in the upper right corner of the title bar. We want to know if you experience errors installing, uninstalling, or modifying your installation, as well as abnormal installation times (e.g. hangs) or unexpected error messages.

Creating a Layout for Offline Installation and New Command-Line Installation Support

System administrators and other users can now create an offline layout of Visual Studio that contains all content needed to install the product without requiring internet access. This layout can be the full product, a subset of workloads and/or components, and one or more product locales. Note that creating the offline layout requires internet access. For more information, see Create an offline installation of Visual Studio 2017.

Installation Nickname

Visual Studio Enterprise and Community (among other products) can now be installed side-by-side on the same computer. To make identifying these installations simpler, you can specify a short name or "nickname". For example, if you were to install Visual Studio Enterprise, and then install Community, both would appear the same on the start menu. You can give the second one a nickname like "community", and the start menu items will appear with names such as "Visual Studio 2017 (community)" and "Developer Command Prompt for Visual Studio 2017 (community)".


Visual Studio IDE

IDE Improvements

  • Visual Studio has been optimized to reduce startup time and solution load time. The very first launch of Visual Studio is at least 50% faster.
  • Visual Studio will now monitor extension performance that impacts startup, solution load, or editing. You will receive alerts about poorly performing extensions via the Notification bar in the IDE. The new Performance Center (also available via Help > Manage Visual Studio Performance) lets you view not only extensions that are impacting performance, but also discover tool windows that are impacting your startup performance and change their startup load behavior.
  • The GitHub extension for Visual Studio can be selected in the new Visual Studio installer.
  • Reload All Projects has been replaced with Reload Solution to support better performance when switching branches external to VS. When using the Git command line to switch branches, choose Reload Solution after the branch has switched to achieve the maximum performance improvement.
  • File globbing capabilities for .NET Core and ASP.NET Core projects have been enhanced. See project file globbing for more details.
  • You are now automatically taken to the folder view of your repository after cloning. You can view files or open Solutions with the new Solution selection list in the Solution Explorer.
  • A new external service host is being introduced that will replace VSHub. This new service host is an external process and will appear in Task Manager as ServiceHub.Host.CLR.*.exe, as well as ServiceHub.Host.Node.x86.exe. This host will ultimately eliminate the localhost http traffic that was introduced with VSHub which should alleviate the noise Fiddler users reported.
  • Pre-release license expiration messages more clearly communicate the current license state.
  • The Account Settings dialog is now more accessible to screen readers.
  • Offline help is now available by installing the Help Viewer component from the Visual Studio installer.
  • You can now add and remove multiple user interface languages at any time using the Visual Studio installer on the Language Packs tab. You can select the current user interface language among those installed using Tools > Options > International Settings.
  • The version control status bar makes it easier to publish local repos to an SCC host and keep track of uncommitted and un-pushed work.

Version Control - Unpublished commits example

Version Control - No pending changes example

Sign In and Identity Improvements

We introduced a new identity service that allows you to share user accounts across Microsoft developer tools. Within Visual Studio, this sharing includes features such as Team Explorer, Azure Tools, Windows Store publishing, and more. These features now share a common and consistent sign in experience.

Along with improvements to Visual Studio, we have completed the deployment of some improvements on the service side that allow users to safely stay signed in and eliminate the forced sign in every 12 hours. This addresses the most commonly reported sign in issue. Learn more about fewer Visual Studio prompts.

Start Page

The redesigned Start Page has new Open and Create facilities:

  • Acquire remote repos from VSTS or use our more prominent MRU to open local projects and solutions easily.
  • The Start Page MRU shows repos you've cloned on other machines so you can easily clone them on your current machine.
  • Create a new project directly from the Start Page with searchable templates and a list of recently used templates. Recently used templates will also roam across Visual Studio instances with a personalization account.
  • Quickly launch the new Clone from VSTS experience through the "Checkout from VSTS" option on the Start Page.
  • A dismissible "Get Started" section.
  • The News section is now collapsible:
    • Updated badge on newly added items in the News Feed.
    • Badge on News Feed expander if new items appear when the News Feed is collapsed.
  • Refined visual design to address feedback about truncated elements on smaller screens and utilization of empty space.

The new Start page is shown below.

Start Page with Get Started and News

Improved Code Navigation

We've made significant improvements to code navigation features in Visual Studio 2017:

  • Go To All (Ctrl +, or Ctrl + T) lets you quickly find and go to files, types, methods, and other elements in your code. It allows you to locate items of any kind, even in large code bases. What’s more, if you know what kind of item you’re after, you can filter down easily. In C#, Visual Basic, and F#, we have also added "fuzzy" matching such that if you misspell a type name you will still get results. We've also modernized the Go To Line (Ctrl + G) experience. You can find the Go To family of commands at the top of the Edit Menu.

Go To Results Filtered

Go To Line

  • Find All References (Shift+F12) has been overhauled (currently for C#, Visual Basic, F#, and C++), providing advanced grouping, filtering, sorting, searching within reference results, and colorization for results (for C# and VB), so you can get a clear understanding of your references and get to the line of code you need with confidence. On mouse hover on a reference item, a tooltip is displayed with the context of the reference in source code (for C# and VB). By toggling on the Keep Results button in the toolbar, the next invocation of Find All References will populate reference results in a new window. This allows you to keep the current results in the existing window.

Find All References

  • Structure Guide Lines are now drawn in the editor so that you can easily visualize the structure of the code that you are working in. On mouse hover, a tooltip is displayed containing the context of the current code block relative to its ancestor blocks. Structure Guide Lines are currently supported for C#, Visual Basic, F#, and XAML files, and for any files supported via TextMate grammars. This feature may be disabled in the Tools > Options dialog by unchecking the Show structure guide lines checkbox under the Text Editor > General category.

Structure Guide Lines

Coding Convention Support Via EditorConfig

The Visual Studio editor now supports EditorConfig, which allows developers to define and maintain consistent coding style conventions between different editors and IDEs. See documentation for more details, and .NET documentation for information on how to use .editorconfig files to govern your .NET code style. See known issues for limitations in EditorConfig support in this release.

Open Folder

Open Folder is a convenient way for you to work with code bases without projects and solutions. Open Folder View from File > Open > Folder, and then select a folder to navigate.

The new Open Folder feature in the Visual Studio IDE

You can open and edit files using the Solution Explorer. Many popular languages have syntax highlighting and support for symbol navigation (GoTo). Additionally, some languages have advanced IntelliSense and debugging support directly from the folder:

  • C++ (CMake).
  • Node.js - JavaScript/TypeScript.
  • C# & VB.

You can build or debug by using F5 and the file context menu in the Solution Explorer. For the best experience, make sure you install the workload for the languages you are working with.

The folder view also supports the following:

  • Search across the code in your folder with GoTo (Ctrl+,).
  • Scope the Solution Explorer folder view to subfolders.
  • Open folders in Explorer or the Command Prompt from the Solution Explorer.
  • Easily toggle between Solutions in the opened folder or repository with the Solution selection dropdown.
  • Configure debug and launch settings with launch.vs.json. Right-click on a file that can be debugged and select Debug and Launch Settings.
  • Configure tasks and customize build with tasks.vs.json. Right-click on any file and select Configure Task Settings.
  • Launch.vs.json and tasks.vs.json have IntelliSense in the JSON editor.

The performance of opening folders and toggling between folder view and solution view has been drastically improved.

Lightweight Solution Load

Lightweight Solution load enables faster loading of large Solutions. It can provide substantial improvements in Solution load time and memory usage for large Solutions. The feature is not enabled by default and can be enabled on a Solution-by-Solution basis or globally in the IDE. To enable globally, navigate to Tools > Options, select General under Projects and Solutions or by searching for "Lightweight Solution load" with Quick Launch. The feature can be turned on and off for individual Solutions in the Solution properties pane.

The new Lightweight Solution load feature in the Visual Studio IDE

Lightweight Solution Load is best suited for large solutions that contain C# or a mix of C# and C++ projects. You may be prompted to enable the feature if we detect that you are working with large solutions. You can find more details about this feature on the Visual Studio blog.

Performance of full Solution builds has been improved substantially, now at parity with conventional Solution load.

Syntax Colorization, Autocomplete, Snippet, and "Navigate To" Search Support for More Languages

Building on the support we added in the Visual Studio 2015 updates, Visual Studio 2017 now supports syntax colorization and autocomplete for an increased range of languages. In addition, some of these languages also support navigation via "Navigate To" (Ctrl+), and/or Code Snippets.

Files for the languages noted below, support these features in the new Visual Studio Core Editor even when no workloads have been installed to explicitly support the language in question. If a workload that provides language support is installed (e.g., the .NET Desktop Application Development workload, the Windows Desktop App Development with C++ workload, etc.), then more extensive language support including IntelliSense and other advanced language features like Light Bulbs may be provided.

Language file types listed by support level:

  • Supports only Syntax Colorization and Autocomplete:
    • Bat, Clojure, CoffeeScript, CSS, Docker, F#, Groovy, INI, Jade, Javadoc, JSON, LESS, LUA, Make, Markdown ++, Objective-C, Perl, PowerShell, Python, Rust, ShaderLab, SQL, Visual Basic .NET, YAML.
  • Supports Code Snippets (in addition to Syntax Colorization and Autocomplete):
    • CMake, C++, C#, Go, Groovy, HTML, Java, Javadoc, JavaScript, Lua, Perl, PHP, R, Ruby, Shellscript, Swift, XML.
  • Supports Navigate To (in addition to Syntax Colorization and Autocomplete):
    • C++, C#, Go, Java, JavaScript, PHP, TypeScript, Visual Basic.

Getting Started with Project Overview Pages

We have introduced a completely new getting started experience for freshly created projects. We've replaced current getting started pages with an Overview tab in our new App Configuration Designer and focused the page on the actions that will get you up and running quickly! This has been enabled in ASP.NET 4.x ASP.NET Core, and Cordova projects.

Project Overview

Connecting to Services Using Connected Services

In a previous release, this feature was named Service Capabilities. We've changed the name to Connected Services.

Connected Services is the modern "Add Connected Service" or "Add Service Reference" feature of Visual Studio 2017. The Connected Services feature makes it easier to connect your app to services. A new node called "Connected Services" is available in the Solution Explorer for Web and Mobile project types. Double-clicking this node will open a new full page tab in Visual Studio where you can discover popular Microsoft services you can connect to.

Selecting a service on the Connected Services page will invoke the Connected Services Wizard that configures your project, and downloads the necessary NuGet packages to get you started coding against your service quickly and painlessly.

Connected Services

In-Product Acquisition of Tools and Features

Visual Studio 2017 makes it easy to acquire additional workloads and components without leaving the IDE. Leverage Quick Launch to find and kick-off the Visual Studio Installer for any Workload or Individual component.

In-product acquisition via Quick Lauch

If you can't find the templates you’re looking for, the Visual Studio Installer can also be opened from within the New Project dialog.

In-product acquisition via New Project Dialog


Visual C++

Visual Studio 2017 brings many updates and fixes to the Visual C++ environment. Thank you for reporting bugs! We've fixed over 250 bugs and reported issues in the compiler and tools, many submitted by customers through Microsoft Connect. In this release, we worked on performance improvement of the STL. The new SQLite-based database engine is now being used by default. This will speed up database operations like Go To Definition and Find All References, and will significantly improve initial solution parse time. We now provide a more granular installation experience for installing the original C++ workload. We have added selectable components that enable you to install just the tools that you need. CMake support in Visual Studio is ready for primetime! Load your CMake projects directly into VS and start coding now. “Open Folder” C++ experience has been improved – so bring your source code to VS without the need to create any VS solutions and projects. Navigate To is now known as Go To, an umbrella term for a set of new navigation filters. This will make it easier to find the right results, especially in larger code bases.

C++ Code Analysis

The C++ Core Checkers for enforcing the C++ Core Guidelines are now distributed with Visual Studio. Simply enable the checkers in the Code Analysis Extensions dialog in the project's property pages and the extensions will be included when you run code analysis.

CppCoreCheck properties page

C++ Compiler

We've updated the C++ compiler and standard library with enhanced support for C++11 and C++14 features, as well as preliminary support for certain features expected to be in the C++17 standard. With support for generalized constexpr and NSDMI for aggregates, the compiler is complete for features added in the C++14 Standard. Note that the compiler still lacks a few features from the C++11 and C++98 Standards. Visual Studio 2017 allows using /sdl with /await. We removed /rtc limitation with Coroutines.

This release brings several improvements in optimization and code generation. Some notable improvements include:

  • Improved code generation of loops: support for automatic vectorization of division of constant integers, better identification of memset patterns.
  • Improved code security: improved emission of buffer overrun compiler diagnostics, and /guard:cf now guards switch statements that generate jump tables.
  • The /debug:fastlink option has been improved to provide 30% faster link times on large components than in Visual Studio 2015.
  • When using co-routines, the Experimental keyword "yield" (available under /await switch) has been removed. Your code should be updated to use the "co_yield” instead. For more information, see the Visual C++ Team blog.

C++ Libraries

  • [STL] Performance improvement of basic_string.
  • [STL] Added <any>, <string_view>, apply(), make_from_tuple().
  • [STL] std::vector has been overhauled for correctness and performance.
  • [STL] The STL now avoids dereferencing null fancy pointers.
  • [STL] Added <optional>, <variant>, shared_ptr::weak_type, and <cstdalign>.
  • [STL] Enabled C++14 constexpr in min/max/minmax(initializer_list) and min_element/max_element/minmax_element().
  • [STL]Improved the performance of std::string/std::wstring's move constructors by more than 3x.
  • [STL] For a complete list of STL improvements see: Visual C++ Team blog.
  • [ATL] Yet another set of name-lookup conformance fixes.
  • [ATL] Existing move constructors and move assignment operators are now properly marked as non-throwing.
  • [ATL] Un-suppress valid warning C4640 about thread safe init of local statics in atlstr.h.
  • [ATL] Thread Safe Initialization of local statics was automatically turned off in the XP toolset when [using ATL AND building a DLL]. This is no longer the case. You can add /Zc:threadSafeInit- in your Project settings if having thread safe initialization off is desired.
  • [AMP] Audited library and fixed typos.
  • [VCRuntime] New header ‘cfguard.h’ for Control Flow Guard symbols.

C++ IDE

Configuration change performance is now better for C++ native projects and much better for C++/CLI projects. When a solution configuration is activated for the first time it will now be faster and all subsequent activations of this solution configuration will be almost instantaneous.

The new SQLite-based database engine is now being used by default. This will speed up database operations like Go To Definition and Find All References, and will significantly improve initial solution parse time. The setting has been moved to Tools > Options > Text Editor > C/C++ > Advanced (it was formerly under ...C/C++ > Experimental).

We've improved IntelliSense performance on projects and files not using precompiled headers – an Automatic Precompiled Header will be created for headers in the current file.

Other updates include:

  • We've added error filtering and help for IntelliSense errors in the error list. Clicking on the error column now allows for filtering. Also, clicking on the specific errors or pressing F1 will launch an online search for the error message.

Error List

Error List Filtered

  • Added the ability to filter Member List items by kind.

Member List Filtering

  • Added a new experimental Predictive IntelliSense feature that provides contextually-aware filtering of what appears in the Member List.

  • The new Find All References UI includes information about whether you are reading from or writing to a variable in the results for C++ code.

  • The Dot-to-Arrow IntelliSense feature has been moved from experimental to advanced, and is now enabled by default. The editor features Expand Scopes and Expand Precedence have also been moved from experimental to advanced.

  • The experimental refactoring features Change Signature and Extract Function are now available by default.

  • We've enabled the new experimental feature for C++ projects ‘Faster project load’. The next time you open a C++ project it will load faster, and the time after that it will load even faster!

  • Improvements to the Open Folder experience. Edit, build, and debug your non-MSBuild C++ project by loading your sources through “Open Folder”. Customize the experience through these json files:

    • CppProperties.json to customize the IntelliSense and browsing experience.
    • Tasks.vs.json to customize the build steps.
    • Launch.vs.json to customize the debugging experience.
  • C++ IntelliSense will work without the need to create a CppProperties.json file in the root folder. Along with this, we've added a new dropdown to allow users to easily switch between configurations provided by CMake and CppProperties.json files. CMake support in Open Folder: opening CMake projects with “Open Folder” will automatically configure the environment for C++ editing, building and debugging.

  • Further configuration is supported via a CMakeSettings.json file that sits in the same folder as the CMakeLists.txt file.

CMake Open Folder

C++ Installation Workloads

  • Windows Desktop Development with C++:

    • We now provide a more granular installation experience for installing the original C++ workload. We have added selectable components that enable you to install just the tools that you need. Please note that the indicated installation sizes for the components listed in the installer UI are not accurate and underestimate the total size.

    • To successfully create Win32 projects in the C++ desktop workload, you must install both a toolset and a Windows SDK. Installing the recommended (selected) components “VC++ 2017 v141 toolset (x86, x64)” and “Windows 10 SDK (10.0.14393)” will ensure this will work. If the necessary tools are not installed, projects will not be created successfully and the wizard will hang.

  • Linux Development with C++:

    • The popular extension Visual C++ for Linux Development is now part of Visual Studio. This installation provides everything you need to develop and debug C++ applications running on a Linux environment.
  • Game Development with C++:

    • Use the full power of C++ to build professional games powered by DirectX or Cocos2d.
  • Mobile Development with C++ (Android and iOS):

    • You can now create and debug mobile apps using Visual Studio that can target Android and iOS.
  • Universal Windows Platform development:

    • C++ comes as an optional component for the Universal Windows Platform development workload. Upgrading C++ projects currently must be done manually. If you open a v140-targeted UWP project in Visual Studio 2017, you need to select the v141 platform toolset in the project property pages if you do not have Visual Studio 2015 installed.

Clang/C2 Platform Toolset

The Clang/C2 toolset that ships with Visual Studio 2017 now supports the /bigobj switch, which is crucial for building large projects. It also includes several important bug fixes, both in the front-end and the back-end of the compiler.


C# and Visual Basic

Language Extensions

This release introduces support for C# 7.0 and Visual Basic 15 language features, including:

For C#:

  • Task-like return types for async methods: this introduces the ability to return any task-like type from an async method. Previously these return types were constrained to Task<T> and Task.
  • Value tuples introduce language support for using tuples to temporarily group a set of typed values. To learn more, please review the design notes on GitHub.
  • Nested local functions extend the language to support declaration of functions in a block scope.
  • Pattern matching extensions enable many of the benefits of algebraic data types and pattern matching from functional languages.
  • Ref returns enable functions to return values by reference.

For Visual Basic:

  • Value tuples introduce language support for using tuples to temporarily group a set of typed values: Dim point As (x As Integer, y As Integer) = GetOffset().
  • ByRef return consumption extend the language to support consumption of functions and properties from libraries which have ByRef returns.
  • Binary literals and digit group separators allow native representation of binary numbers. This is super convenient for bitmasks and flags enumerations: &B1001_0011.

For more information, follow our language design on the CSharpLang GitHub and VBLang GitHub to learn more about these and other proposed language extensions.

Quick Actions and Refactorings

Visual Studio provides lots of refactorings to help you be productive and make your code more readable. Here are just a few:

  • Simplify object initialization with an initializer:

Use object initializer

  • Move out variable declarations inline, leveraging a new C#7 feature:

Move out variable inline

  • Simplify null-checks and throw-expressions using null-coalescing operator, leveraging a new C#7 feature:

Use throw expression with null-coalescing operator

  • Move type to matching file: extract a type from one file and put it in another file with a matching name with one click via Ctrl+..
  • Sync file and type name: if your file and type name are out of sync, you can use Ctrl+..
  • Convert String.Format to string interpolation: take advantage of the C# 6 language feature with this Quick Action.
  • Add missing case(s) to a C# switch or a Visual Basic Select.
  • Convert property to a method, and vice versa.
  • Add Package Reference: offers to auto-retrieve and install a NuGet package (and add the using/Import) for an unrecognized type. To enable this feature, go to Tools > Options > Text Editor > [C# / Basic] > Advanced > Suggest usings for types in reference assemblies / Suggest usings for types in NuGet packages.
  • Make async methods synchronous where applicable.
  • Support for "fuzzy" matching for misspelled types.
Coding Convention Configuration and Enforcement

Building on Visual Studio's support for EditorConfig, we worked with the community to add .NET code style settings to the file format. This means that you can configure your team's code style conventions, check them into source control, and have violations appear live in the editor as developers are typing. You can see all the code style options in the Roslyn repo's .editorconfig or in the documentation. You can continue to configure your machine-specific code style settings in Tools > Options > Text Editor > [C#/Basic] > Code Style and these rules are overridden when an EditorConfig is present and conflicts.

We've also added/updated style analyzers to help you customize and enforce coding conventions on your team, including:

  • Naming style rules.
  • Use of “var” or explicit types.
  • Use of “this.” or “Me.” on member access.
  • Use expression-bodies or blocks.
  • Use pattern-matching for 'cast' and 'null' checks.
  • Use explicit tuple names.
  • Simplify null-checking with throw-expressions, conditional delegates, coalescing expressions, and null propagation.
  • Require braces.

Note: several of these code style rules are configured as Suggestions in the editor by default.

Configure code style preferences and enforcement from EditorConfig

IntelliSense Improvements

This release also introduces improvements to IntelliSense that will make you more productive when working in a large solution or an unfamiliar codebase. We have added an icon tray to IntelliSense that enables you to filter the member list by type (e.g., methods, properties, classes, etc.). Each filter toggle has an associated keyboard shortcut which you can discover by hovering over the icon. To enable this feature, go to Tools > Options > Text Editor > [C# / Basic] > IntelliSense and check the options for filtering and highlighting.

IntelliSense Completion Filtering

Other Editor Improvements

  • You can now split a long string into multiple concatenated strings by positioning the cursor mid-string and pressing Enter.
  • We have done considerable work to improve responsiveness of the IDE in presence of background operations that compute diagnostics and CodeLens information.

F# 

Support for F# 4.1 Language Features

  • Struct Tuples which interop with C# 7/VB 15 Tuples.
  • Byref returns which support consuming C# 7 ref returns.
  • Struct Record support with the [<Struct>] attribute (by Will Smith).
  • Struct Discriminated Union support with the [<Struct>] attribute.
  • A new Result<'TSuccess, 'TFailure> type, with supporting functions in FSharp.Core (by Oskar Gewalli).
  • The fixed keyword, which supports pinning a pointer-type local on the stack.
  • Underscores in numeric literals (by Avi Avni).
  • Caller Info Attribute Arguments (by Lincoln Atkinson and Avi Avni).
  • Mutually Referential Types and Modules within the same file via namespace rec and module rec.
  • Implicit "Module" suffix on modules which share the same name as a type.

Improvements to the F#  Compiler and FSharp.Core

(Many done by the F# community)

A New Editor Based on Roslyn Workspaces

(Many new IDE features contributed by the outstanding F# community)

Additional Contributions by the F#  Community

We would like to thank the entire F# community for dogfooding builds of F# tooling in Visual Studio 2017, filing bugs, driving discussions, and implementing bug fixes and features. The success of F# in Visual Studio 2017 truly would not have been possible without the F# community. Please see the full list of contributors.


JavaScript and TypeScript

TypeScript 2.1

TypeScript 2.1 is available for all TypeScript projects in Visual Studio. TypeScript 2.1 delivers down-level async/await, better type inference, local object expansion, and more! To read more about the release, check out the release blog post or the full change log.

JavaScript Language Service

A new JavaScript language service is available and enabled by default. The new service provides richer IntelliSense and adds IntelliSense support for JSDoc comment annotations, ES6, and Common JS module formats. It also supports JSX syntax and features from ES2016, such as generators, modules, and decorators. For more information, see this blog post or the JavaScript IntelliSense documentation on GitHub.

Rich JavaScript IntelliSense for jQuery

Performance Improvements

Improving performance was one of the greatest focuses of this release. Along with several optimizations to improve memory and responsiveness characteristics, the entire JavaScript/TypeScript language service has been moved to a satellite process outside of devenv.exe to provide memory relief to the largest VS projects. You will see lower memory consumption from the Visual Studio process and less out of memory crashes when working with huge JavaScript projects. To read more about these improvements, check out this blog post.


Debugging and Diagnostics

Run to Click

Simply click the icon next to a line of code while debugging to run to that line. No longer set temporary breakpoints or perform several steps to execute your code and stop on the line you want. Now while stopped at a break state under the debugger, the Run to Click icon subtly appears next to the line of code that your mouse is hovered over. Move your mouse to the icon and click the button, now your code will run and stop on that line the next time it is hit in your code path. Turn it off from Debug> Options > Enable Run to Click.

Run to Click Icon

Attach to Process Filter

Easily search in the Attach to Process dialog to quickly find the process you want to attach the debugger to. The list of running processes will be filtered to items matching your search. The search filter is sticky and will remember your previous search when you reopen the dialog.

Attach to Process Filter

Reattach to Process

You can now quickly reattach to processes you were previously debugging. Triggering the new Debug/Reattach to Process (Shift+Alt+P) command will immediately try to attach the debugger to the last processes from the previous debugging session that were invoked from the Attach to Process dialog. The debugger will reattach to processes by first attempting to match the previous process ID and then by matching to the previous process name. If no matches are found or there are multiple processes found with the same name, then the "Attach to Process" dialog will appear so you can select the intended process.

The New Exception Helper

Use the new Exception Helper to view your exception information at a glance in a compact non-modal dialog with instant access to inner exceptions. While diagnosing your NullReferenceException, you can now quickly see what was null from right inside the Exception Helper. You can now exclude breaking on exception types thrown from specific modules by clicking the checkbox to add a condition while stopped at the thrown exception. Read this blog post for more detailed information on the new benefits of the Exception Helper.

The New Exception Helper dialog

Add Conditions to Exception Settings

When you configure the debugger to break on thrown exceptions, you can add conditions so that the debugger will only break when exceptions are thrown in specified modules.

Edit Conditions dialog box

Debugger Accessibility Improvements

You can now more effectively use several of the Debugger windows (Call Stack, Locals, Autos, Watch, and Quickwatch) with screen readers and for other accessibility needs.

IntelliTrace Events for .NET Core

IntelliTrace now supports MVC, ADO.NET, and HttpClient events for ASP.NET Core apps. These will appear in the Events tab in the Diagnostic Tools Window.

Diagnostic Tools Window Updates

When you start a debugging session, you'll see a new Summary view of your application in the Diagnostic Tools Window. From here, you'll be able to:

Summary tab in Diagnostics Tools Window

Performance Profiler Updates

The Performance Profiler can now attach to a running process. The CPU Usage tool, GPU Usage tool, and Performance Wizard now support attaching to a running process.

CPU Usage Tool Updates

Several improvements have been made to the CPU Usage Tool:

  • Better External Code support - The CPU Tool now gives you better insights into the costs of library and framework functions when called by user code.
  • Functions view - A view that ranks functions by their CPU cost.

Functions List

  • Caller/Callee View allows you to investigate costs of function calls made to and from a selected function.

Caller / Callee View

  • Source View shows a function's source code when the function is selected in the CPU Tool.

Chrome Debugging Support

When you start debugging ASP.NET projects and choose Google Chrome as your browser, Visual Studio will debug your JavaScript running in Chrome. If you prefer to use the in-browser development tools instead, you can disable this feature under Tools > Options > Debugging.


Live Unit Testing

Live Unit Testing is a capability in the Visual Studio 2017 Enterprise edition that displays unit test results and code coverage live in the editor. It supports MSTest, xUnit, and Nunit for C# and VB projects targeting .NET Framework.

Live Unit Testing

See the Live Unit Testing blog for more details.


Testing Tools

Associate automation with test case work items using Test Explorer

You can now associate automation with test case work items by selecting a test method in the Test Explorer. This new experience also allows you to view any existing associations for the chosen test method.

Simply right click a test in the Test Explorer...

Test Explorer Associate Automation

...and provide a test case ID to create an association.

Associate Automation

In previous versions of Visual Studio, this could be done using the work item form. The work-item form based experience can be enabled by turning on the compatibility mode using Tools | Options.

Work Item Form Compatibility mode


Team Explorer

New Git Features

We've added new Git features to Visual Studio 2017 that allow you to do more of your end-to-end workflow without leaving the IDE. You can easily view the diff for outgoing commits, perform a force push to complete a rebase or push an amended commit, unset your upstream branch, and continue a patch rebase from VS. Additionally, we have moved to git.exe. This allows us to provide the most up-to-date features. We support SSH, respect your config options, and show in Team Explorer exactly what you see in the command line. To learn more about these features, check out the blog post.

Connect to VSTS/TFS

On the Visual Studio start page and in Team Explorer, the process for connecting to projects and cloning repos in VSTS/TFS has been personalized and streamlined, making it faster and easier to find the projects and repos to connect to. Our brand new Connect page shows only the projects and repos that you have mapped and cloned across all your VSTS/TFS servers (rather than every repo for every project). Additionally, you no longer need to connect to a project before cloning repos.

When you launch the dialog to connect to VSTS and TFS, you will see the redesigned UX. You will see any TFS servers you've added followed by all VSTS servers, projects, and repos for your selected user account. The results are listed in a tree to allow for improved navigation. You can connect to collections or projects in addition to repos. For more information, see Connect to Team Projects.

Work Item Forms

When you connect to Visual Studio Team Services from Visual Studio 2017 and open a work item, the work item form will appear in your web browser. However, if you connect to Team Foundation Server 2015 or earlier, you will see the legacy work item forms.

Work Item Form in Team Explorer


Enhanced Visual Studio Feedback Workflow

Visual Studio 2017 includes an upgraded feedback experience for better follow-up and collaboration. As part of this upgrade, you will notice a more collaborative Report-a-Problem experience in Visual Studio supplemented by a comprehensive web portal for a complete end-to-end feedback solution. You can now search, follow, vote, and get the latest updates on all feedback you have provided via Visual Studio IDE’s Report a Problem feature. These enhanced experiences address much of the feedback we received from you and enable bidirectional communication between our teams and you.


Visual Studio Extensibility

New Extensibility Format

The new installer technology in Visual Studio 2017 gives you greater control over the tools that are installed. Some users may install just the core Visual Studio editor while others may install several workloads. To ensure that the prerequisite features and extensions required are installed, extension authors will now be able to specify the individual components required by their extension in the manifest.

Users will be warned when trying to install an extension that was not built using the new VSIX format. The old VSIX format does not specify prerequisites needed and may fail to work if those prerequisites are unavailable in Visual Studio 2017. The new VSIX format is backwards compatible and can target past versions of Visual Studio up until Visual Studio 2012.

The VSIX manifest designer has been updated to reflect the changes to the manifest. In the prerequisite tab, extension developers can find a list of installed components to specify as a prerequisite for their extension.

Prerequisite

During the installation of the extension, the VSIX installer will indicate which components are missing and will install them alongside the extension.

VSIXInstaller

Modify Extensions in Bulk

In the Extensions and Updates dialog, you can now schedule multiple extensions for installation, update, and uninstallation before needing to restart Visual Studio. In the lower right corner, there is a summary of the scheduled tasks. To remove a scheduled modification, click the X next to an extension that is currently scheduled to install.

Extensions and Updates Dialog

Once the VSIX Installer has detected that all Visual Studio windows are closed, it will start to complete the scheduled modifications.

Batched Modification Installer

Ngen Support

You can now choose to install assemblies using Ngen.

NGEN Properties

  • Ngen - Whether or not to use Ngen on the assembly.
  • Ngen Application - The application to pass into Ngen via the /ExeConfig switch.
  • Ngen Architecture - The target architecture for the native image. Options are: x86, x64, and all.
  • Ngen Priority - Ngen priority level.

Install Files Outside of Extension Directory

You can now choose to install files to a select list of folders that are outside of the extension directory.

VSIX Properties

  • Include in VSIX - Include the file in your VSIX.
  • Install Root - The root directory to install the file. Options are: Default (install inside the extension directory), PublicAssemblies, ReferenceAssemblies, MSBuild, Schemas, Licenses, RemoteDebugger, and VSTargets.
  • Target Path - The name of the file to be installed on the user's machine.
  • VSIX Sub Path - The sub path under the Install Root where the file will be installed.

Roaming Extension Manager

New in Visual Studio 2017, the Roaming Extension Manager helps you keep track of your favorite extensions across all of your development environments. Roaming your extensions keeps track of the extensions you have installed by creating a synchronized list in the cloud.

When you sign into Visual Studio, you can quickly see a list of your extensions from Tools > Extensions and Updates, and click Roaming Extension Manager. It tracks which extensions you have installed and lets you choose which ones are added to your Roaming list. With new extensions appearing in the gallery every day, this tool makes it quick and easy to set up each dev environment with your favorite extensions.

The new Roaming Extension Manager in the Visual Studio IDE

When using this feature, you will notice 3 icon types:

  • Roamed Icon Roamed Icon - Denotes an extension that is part of your Roaming List, but not installed on this machine. You can install these via the "Download" button.
  • Roamed and Installed Icon Roamed & Installed Icon - Denotes all extensions that are part of your Roaming List and installed in this environment. If you decide you do not want to roam, you can remove these via the "Stop Roaming" button.
  • Installed Icon Installed Icon - Denotes all extensions that are installed in this environment, but are not part of your Roaming List. Extensions can be added to roaming list via the "Start Roaming" button.

These icons will show you the current status of your list. You can have any extension in any state, so customize to your heart's content! Or let us do it for you! Any extension downloaded while you are signed in will be added to your list as Roamed & Installed and will therefore be part of your Roaming list, giving you access to it from any machine!

Discovery of Project and Item Templates

Starting in Visual Studio 2017, there is a breaking change with how Visual Studio consumes project and item templates to improve the performance of template discovery. The new discovery mechanism now requires all item and project templates following "vstemplate" schema to be defined in template manifest files. Visual Studio templates that you do not define in a template manifest file will no longer be visible in New Project or New Item dialogs. While the new extensibility tooling will generate a manifest during VSIX build time, if you have Visual Studio templates released as part of an MSI package, you must manually generate template manifest files for those templates. For more information, see the Upgrading Custom Project and Item Templates for Visual Studio 2017 MSDN page.


.NET Core and ASP.NET Core

This contains the 1.0 final release of the new MSBuild based .NET Core Tools. Using Visual Studio 2017, you can create .NET Standard libraries, .NET Core apps/libraries and ASP.NET web projects that use the new csproj format.

.NET Core tooling is automatically included in the “ASP.NET and web development” workload and an optional component in the “.NET desktop development” workload in the installer. If you only want to develop .NET Core applications for cross platform use, you can install just the .NET Core and ASP.NET Core tools using the “.NET Core cross-platform development” workload from the “Other Toolsets” section of the installer.

High-level features in this release include the following:

  • MSBuild support for .NET Core projects, with a simplified csproj project format that makes it easier to edit by hand, without the need to unload the project.
  • Editing .NET Core .csproj file is as simple as a right click on project in Solution Explorer and choosing “Edit”.
  • Support for file wildcards in project file, where you don’t have to enumerate all the source code file names, which keeps the csproj file compact in size.
  • NuGet package references are now part of the csproj file, consolidating all project references in one file.
  • Interop between .NET Core, .NET Standard and .NET Framework projects. For example, a .NET Core project can add a project-to-project reference to a .NET Standard project.
  • Cross-target multiple target frameworks in one project.
  • Existing project.json .NET Core projects will automatically migrate to csproj when opened in Visual Studio, or you can manually migrate them using the .NET Command Line Interface (CLI).
  • Easily configure continuous build integration for your ASP.NET Core application with Docker support and continuous build delivery to your Azure Container Services from within the Visual Studio IDE.

See the .NET blog for more details.


Tools for Universal Windows App Development

Updated .NET Native Toolchain

This updated .NET Native toolchain adds several optimizations to improve runtime performance for managed UWP apps in Visual Studio. The release includes more than 600 bug fixes and features to address key customer feedback and improve the overall quality of the toolchain.

5.3.0 Microsoft.NETCore.UniversalWindowsPlatform Package

This update to the .NET Core NuGet framework libraries addresses a number of key issues reported by customers. Existing UWP projects can use the NuGet reference manager to update to this new version. In addition, the new .NET Core package includes the .NET Native toolchain.

Windows 10 Anniversary Update SDK and Emulator

The Windows SDK and Windows Phone emulator for the Windows 10 Anniversary Update are included in this release.

  • UI Elements created from the Toolbox will now be created with fewer XAML Tags, resulting in cleaner, more readable XAML.
  • A new options tool on the XAML Designer allows the developer to select the UI theme and High Contrast settings to be previewed on the design surface.
  • The value editors in the Properties window now accept simple mathematical equations, such as "60+20". The equations will be immediately evaluated (in this case, 80) and their resulting value put into the XAML.

Manifest Designer Capability for Creating Visual Assets

The Manifest Designer has undergone a visual refresh, and now has the added capability of generating visual assets for your UWP apps. You can now use a single source image to create tiles, logos, icons, and splash screens at any or all scales to fit every type of device your app targets.

Manifest Visual Asset Generator

UI Analysis

The Universal Windows platform tooling now has the ability to detect common accessibility and performance related issues. By enabling the "UI Analysis" tool in the Select Tools menu of the Diagnostic Tools window, these issues will be reported along with links to helpful articles explaining how and why the issues should be addressed. Developing with UI Analysis enabled brings UI performance and accessibility to the forefront of your application development.


Xamarin

Xamarin 4.4 is included in Visual Studio 2017. For more information, see the Xamarin release notes.

This Xamarin for Visual Studio 4.4 release updates Xamarin.iOS 10.8 and Xamarin.Android 7.2 releases.

Bug fixes

This release includes the following fixes:

  • iOS Extension apps fail to build with error "cannot read Entitlements data".(4.4.0.31)
  • Includes symbols for Watson reports.(4.4.0.6)
  • Android deployment fails if solution also contains a Wix project.(4.3.1.39)
  • Deadlock opening some iOS projects.(4.3.1.39)
  • Breakpoints won't hit on second-level PCL references.(4.3.1.39)
  • Fixes iOS issue due to missing CodeSignNativeLibraries task.(4.3.1.39)
  • Error opening storyboard after connecting to Mac server.(4.3.1.39)
  • Android class library project should only include "Compile using Android Version" on Property page.(4.3.1.39)
  • Visual Studio hangs when going to the "Tools->Options->Xamarin->Other" tab.(4.3.1.39)
  • Visual Studio hangs loading a cross-platform solution in some environments.(4.3.1.1)
  • Microsoft.Csharp not referenced in VS Project Templates.(4.3.1.1)
  • Cannot connect to Mac server if configured User Shell doesn't use bash syntax.(4.3.1.1)
  • Submit to Test Cloud option missing (fixed on VS2013 and VS2015).(4.3.1.1)
  • Debugger gets confused when Variable/Property name is same as Class name of something else.(4.3.1.1)
  • Image set from asset catalog can't be renamed.(4.3.1.1)
  • The 'Resources' folder is being forcibly hidden in watch extension projects.(4.3.1.1)
  • "Assets.xcasset" folder within "Resources" is not being hidden for tvOS projects.(4.3.1.1)

Visual Studio Tools for Apache Cordova

This Visual Studio 2017 release includes the following improvements:

  • Cordova simulate - A new browser-based simulator enables you to code fast and see the results immediately in the browser. Live reload, plugin simulation, and support for Ionic Framework give Visual Studio the fastest developer workflow on the market.

Cordova simulate

  • Support for iOS 10 & XCode 8 - An update of the remotebuild server agent for iOS development now includes support for XCode 8.

  • Error colorization - Because diagnosing build failures often requires developers to read through build output, we have started to colorize errors in the build output pane for easier reading. Moreover, we have added headers to delineate steps in the build process to help developers identify where in the build process the failure occurred.

Pretty printing

  • In-product acquisition - In addition to the new light-weight installation to get you building Cordova apps faster, we have now added pathways from within Visual Studio to acquire additional build pieces as your development continues. If you have not installed Android or Windows components, you can get them through the deploy bar, which will launch Visual Studio setup and guide you through the installation process.

In-product acquisition

  • Fast, reliable builds - The new Visual Studio Installer, combined with offline installation of a fully validated toolchain of 3rd party components, provides for faster builds that are also easier to troubleshoot and fix.
Important

Build tools and emulators for Android and Windows are now optional. You can acquire them dynamically through the build/deploy menu bar. This release of Visual Studio does not support Windows Store 8.1 projects. We recommend that you update your Cordova projects to target Windows 10. Minimum supported Cordova version is raised to 6.0.0. Projects targeting a Cordova version lower than 6.0.0 will need to upgrade their project in config.xml to build and deploy in Visual Studio 2017.


Node.js Tools for Visual Studio

Node.js Tools for Visual Studio turns Visual Studio into a powerful Node.js development environment. This release focuses on stability, performance, and overall product quality, including:

  • Better integration with the new Salsa JavaScript language service.
  • Reduced memory and CPU usage, and shorter project load times.
  • Support for Pug template files.
  • More up-to-date project templates.
  • Support for Mocha 3.x test framework.
  • Numerous bug fixes.

Thank you to all the amazing contributors who made this release of Node.js Tools for Visual Studio possible. For more information, check out the open source Node.js Tools project on GitHub.


Visual Studio Tools for Unity

Use Visual Studio to write and debug Unity games for all platforms. Visual Studio Tools for Unity 3 is now available to be installed with the "Game Development with Unity" workload in the new Visual Studio 2017 installer. Visual Studio Tools for Unity 3 focuses on improving the code editing and debugging experience for Unity developers as well as overall product quality, including:

  • IntelliSense support for Unity messages.
  • Code colorization of Unity messages.
  • Improved expression evaluation in the Unity debugger.
  • Improved Unity message wizards to support all Unity types able to receive messages.
  • Numerous bug fixes and optimizations.

Code completion session for Unity messages


Redgate

Redgate Data Tools Included with Visual Studio

To extend Visual Studio 2017 DevOps capabilities to SQL Server database development, Redgate Data Tools, comprising Redgate SQL Prompt Core, Redgate SQL Search, and Redgate ReadyRoll Core, are now available in the Data Storage and Processing workload.

  • Redgate ReadyRoll Core, included with Visual Studio Enterprise 2017, helps you develop migration scripts, manage database changes using source control, and safely automate deployments of SQL Server database changes alongside applications changes.
  • Redgate SQL Prompt Core, included with Visual Studio Enterprise 2017, helps you write SQL more quickly and accurately with the help of intelligent code completion. SQL Prompt autocompletes database and system objects and keywords, and offers column suggestions as you type. This results in cleaner code and fewer errors because you don’t need to remember every column name or alias.
  • Redgate SQL Search, included with all editions of Visual Studio 2017, increases your productivity by helping you quickly find SQL fragments and objects across multiple databases.

NuGet

Visual Studio 2017 includes NuGet 4.0. This release is focused on supporting package reference for the majority project types, quality improvements, and performance improvements:

  • In WPF, WindowsForms, and UWP projects, packages can now be managed using package references.
  • NuGet restore support has been improved for Lightweight Solution Restore. Restores can now be performed without needing to load any projects.
  • In .NET Core and ASP.NET Core projects, packages are now managed using package references.
  • In Visual Studio 2017 and above, the machine-wide NuGet.config is now located at %PROGRAMFILES(X86)%\NuGet\Config\NuGet.config. Going forward, nuget.exe v4.0.0 + will also consider the new location for the machine-wide configuration. NuGet.config in program data will no longer be implicitly referenced or considered for the hierarchical merging of nuget.config.

Tools for XAML Apps

XAML Edit & Continue

Visual Studio now allows you to edit XAML while your WPF or Universal Windows App is running. While debugging your app in Visual Studio, you can make a change to the markup in the XAML code editor and the change will be reflected in the running app without having to recompile.

XAML Editor Productivity Enhancements

  • IntelliSense filtering - When typing XAML, the completion list will only display types that match and the closest match will be selected.
  • IntelliSense for x:Bind - We have enabled IntelliSense completion for x:Bind when binding to Path and Events.
  • Namespace completion - If the reference to the namespace does not exist, you will not get IntelliSense support while typing. When you have finished typing, you will get light bulb suggestion support to generate & insert the prefix for the type and add the namespace definition in your XAML document.
    ![IntelliSense_without namespace](media/intelliSense_without namespace.PNG "IntelliSense_without namespace")

* For types that require a prefix, IntelliSense will offer to auto-complete the prefix if the reference to the namespace already exists.
  • Namespace prefix rename refactoring - You can invoke the rename action from the context menu or using the keyboard shortcut Ctrl+R+R when the cursor is on the prefix. You can also preview changes before applying them.

    namespace prefix rename

  • Remove and sort namespaces - You can now remove unnecessary namespaces and sort them from the context menu or by using the keyboard shortcut Ctrl+R+G. If your XAML document has unnecessary namespaces, you will also see a light bulb that will give you the option to remove them.

    lightbulb_remove unnecessary namespace

  • .editorconfig support for XAML editor - You can define settings for indent_style, indent_size, and tab_width in the .editorconfig file which will be used instead of the settings defined in Tools > Options.

  • Structure Visualizer for XAML editor - The structure visualizer (i.e. indent guides) is now built into Visual Studio, and a separate extension is not required. This feature provides the context of the block of code you are working on at a glance, without scrolling.

    Structure Visualizer for XAML editor

XAML Performance Improvements

  • Improved XAML Tab Switch performance - XAML Tab Switch performance has improved significantly. In sample customer projects, we have seen switching time reduce by over 90%.
  • Addressing XAML editor typing delays - XAML typing is now faster than ever. We have made several investments to reduce XAML editor typing delays, and most developers should find the XAML editor and XAML IntelliSense to be more responsive. This will be most apparent when editing a XAML file in projects that consume third party controls or large control libraries.

Data Tools and SQL Server

SQL Server Data Tools

The latest update of SQL Server Data Tools has been included in Visual Studio 2017, which enables support for the latest features in Azure SQL Database and SQL Server 2016.

This release brings together the ease of developing, testing, and deploying a database on all supported versions of SQL Server and database platforms - both on-premises and cloud - by using Visual Studio. The release also includes database programmability surface area enhancements, and it improves the SQL connection experience in SQL Server Data Tools, which now automatically discovers SQL Server and Azure SQL Databases that you can connect to with a simple click.

Additionally, Visual Studio 2017 addresses new Azure SQL Database authentication types, as well as Azure Active Directory Integrated and Password authentication.


Developer Analytics Tools

Visual Studio 2017 includes Developer Analytics Tools v8.6, with the following improvements:

  • CodeLens now shows both debug and live telemetry data in projects that send data to an Application Insights resource.
  • CodeLens for exceptions links to Application Analytics to show user impact of an exception.
  • CodeLens shows requests from local debug sessions, in projects with the Application Insights SDK.
  • CodeLens for requests and exceptions are now available from Visual Basic projects.
  • Live Metrics are now shown in a toast notification after you publish your app from Visual Studio.
  • Application Insights pricing information is now shown in the Configuration window.
  • Availability events are now shown in the Search and Trends tools.
  • Events in the Search and Diagnostic Tools now show counts for how often they occurred based on adaptive sampling in the SDK.
  • CodeLens shows exceptions that have occurred during local debug sessions for projects with the Application Insights SDK.
  • New design for the Application Insights Configuration window.
  • CodeLens for exceptions now has a link to Application Analytics to see the impact an exception has had on users.
  • The Application Insights JavaScript SDK for collecting page view telemetry is now added when Application Insights is added to a project.
  • Publish annotations are now sent to your Application Insights resource when you publish your app from Visual Studio.
  • Scrollbar markers are now shown for red and yellow Application Insights CodeLens indicators.

Learn more about Application Insights in the Microsoft Azure documentation.


Office Developer Tools for Visual Studio

This release includes Office Developer Tools with the latest features and updates, as follows:

  • New Office Add-in templates specific to Excel, Word, PowerPoint, and Outlook.
  • Support for new Office Add-in features such as add-in commands, Fabric UI, and a new version of Office.js.
  • New starter code in the templates that will showcase how to get started with new Office Add-in features.
  • Support for SharePoint 2016 in SharePoint solutions and add-in templates.

Live Architecture Dependency Validation

If you have setup Dependency Validation diagrams (aka Layer diagrams) in Visual Studio Enterprise, you now get real-time notifications of any violations of the architectural dependency rules as you type your code in the Code Editor. Errors appear in the Error List and squiggles will appear in the text editor showing you the precise location of the violation. You are now less likely to introduce unwanted dependencies.

Live Architecture Dependency validation


Developer Command Prompt

The Visual Studio 2017 Developer Command Prompt scripts have been refactored to support the new installation experience:

  • Environment variables will reflect installed workloads only.
  • The Visual Studio Developer Command Prompt shortcut should be compatible with previous releases.
  • You can now configure Developer Command Prompt scripts via command line arguments:
    • In a command prompt, call common7\tools\vsdevcmd.bat -help (from the Visual Studio installation directory) for details.

Azure SDK for .NET

The Azure SDK for .NET Visual Studio is now available to be installed with the new Visual Studio installer. If you previously installed the Azure SDK for .NET using the Web Platform Installer, you can now get the same components by installing the Azure workload using the new Visual Studio Installer. The packages that are installed are at the same feature level as the 2.9.5 version of the SDK. For this version of Visual Studio and all future versions, the Azure SDK for .NET will only be available from the Visual Studio installer.


Known Issues

Here are the known issues and available workarounds for this release.


Installation Issues

Windows 10 SDK fails to install with Return Code -2147023293

  • Issue:

    In certain circumstances, the Windows SDK may fail to install with Return Code -2147023293. The Setup Log dd_setup__errors.log will show an error similar to this: Package 'Win10SDK_10.0.14393.795,version=10.0.14393.79501' failed to install. (details) Return code: -2147023293 Return code details: Fatal error during installation. Note that the exact package name will depend upon the Windows 10 SDK you have selected to install.

  • Workaround:

    There may be several causes for this issue. To work around this issue, try these steps:

    • Install the Windows 10 SDK separately from Visual Studio. You may download the Windows 10 SDK from the Windows Developer Center.
    • In some cases when installing on a version of Windows earlier than Windows 10, the install failure may be caused by a missing Universal C Runtime. You may install this by using KB2999226 for the Windows 10 1507 runtime, or KB3118401 for the Windows 10 1511 runtime.
      For more information see the Visual Studio Developer Community portal.

Cloud Explorer cannot be launched

  • Issue:

    If Cloud Explorer is installed with the Web development workload, launching Cloud Explorer may fail with error messages saying 'Setup cannot proceed when Visual Studio is running. Please close Visual Studio and retry'. This is caused by missing dependencies.

  • Workaround:

    Install the Azure development workload then launch Cloud Explorer again.

Uninstalling Visual Studio Windows 10 SDK causes UWP build errors in Visual Studio 2017 or Visual Studio 2015

  • Issue:

    If you uninstall the Windows 10 SDK, you will receive the following error when building a UWP app:
    Cannot resolve 'GenXbf.dll' under path 'C:\Program Files\Windows Kits\10'. Please install the Windows Software Development Kit. The Windows 10 SDK is installed with Visual Studio.
    This issue affects Visual Studio 2017, Visual Studio 2017 Preview, and Visual Studio 2015. Your machine can get into this error state when you've installed:

    • Visual Studio 2017 and Visual Studio 2017 Preview, and then uninstalled one of these.
    • Visual Studio 2015 and Visual Studio 2017 or Visual Studio 2017 Preview, and then uninstalled one of these.
    • Visual Studio 2017, Visual Studio 2017 Preview, or Visual Studio 2015 and then uninstalled any Windows 10 SDK either directly from Programs and Features or by using setup for Visual Studio.
  • Workaround:

    Open the Control Panel, and go to Programs and Features. Select one of the following, and click Repair:

    • Windows Software Development Kit - Windows 10.0.15063.00 (Creators Update).
    • Windows Software Development Kit - Windows 10.0.14393.795 (Anniversary Update).

Using an Offline Installation Folder when disconnected from the Internet doesn't install the Windows Emulator

  • Issue:

    When you use an offline installation folder that includes the Windows 10 Mobile Emulator (Creators Update) to install Visual Studio without an internet connection, Visual Studio Installer finishes with the message "Setup Completed with Warning", and the Windows Emulator fails to install.

  • Workaround:

    Install the Windows 10 Mobile Emulator separately from Visual Studio.

    1. Open your offline installation folder for Visual Studio and navigate to the folder "Win10_Emulator_10.0.15063,version=10.0.15063.12,chip=x64".
    2. Run EmulatorSetup.exe to install the Windows Emulator.
If you have not already installed Visual Studio, you can install the Windows Emulator first.
1. Install the Windows Emulator using the instructions above.
2. Run the Visual Studio Installer to install Visual Studio, and the installer will not report the warning.

Editor and IDE Issues

EditorConfig is not supported in XML files

  • Issue:

    Coding style conventions defined in .editorconfig are not applied when editing XML files.

  • Workaround:

    There is no workaround at this time.

EditorConfig insert_final_newline and trim_trailing_whitespace properties are not supported

  • Issue:

    insert_final_newline and trim_trailing_whitespace properties defined in .editorconfig file have no effect.

  • Workaround:

    There is no workaround at this time.

JavaScript IntelliSense stops working

  • Issue:

    Opening a project with more than 25Mb of JavaScript code displays the error "The language service is disabled for project because it included a large number of .js files. Consider excluding files using 'exclude' section of a 'tsconfig.json' file."

  • Workaround:

    Add a tsconfig.json to your project root with the following code:

      {
          "compilerOptions": {
              "allowJs": true,            // These settings apply to .js files as well as .ts files
              "noEmit":  true             // Do not compile the JS (or TS) files in this project on build
          },
          "exclude": [
              "node_modules",             // Don't include any JavaScript found under "node_modules" or "bower_components"
              "bower_components"
          ]
      }
    

    Add additional folders with JavaScript code libraries. Another common one is Scripts/Office/1 if you're using office-js.

TypeScript not recognized in ASP.NET Core projects

  • Issue:

    TypeScript files in ASP.NET Core projects don't have any IntelliSense and aren't being compiled on build.

  • Workaround:

    Add an empty tsconfig.json file to your project root.

NuGet Issues

While using Package Manager Console, 'Enter' key may not work

  • Issue:

    Occasionally, the enter key does not work in the Package Manager Console. If you see this, please check out the progress on the fix, and provide any additional helpful information about your repro steps (NuGet#4204 and NuGet#4570).

  • Workaround:

    Restart Visual Studio and open the PMC before opening the solution. Alternatively, try deleting the project.lock.json and restoring again.

In .NET Core projects, you may end up in an infinite restore loop when you use a package containing an assembly with an invalid signature

  • Issue:

    Occasionally, when you use a package containing an assembly with an invalid signature or when the package version is set with 'DateTime' ticker, it causes package auto-restore to run in an infinite loop (dotnet/project-system#1457).

  • Workaround:

    There is no workaround at this time.

Unable to view, add, or update DotNetCLITools using Nuget Package Manager

  • Issue:

    NuGet Package Manager does not display and does not allow add/update of DotNetCLITools (NuGet#4256).

  • Workaround:

    DotNetCLIToolReferences must be manually edited in your project file.

Retargeting target framework version may lead to incomplete Intellisense

  • Issue:

    Retargeting target framework version may lead to incomplete Intellisense, in Visual Studio. This happens when you are using PackageReferences as the package manager format (NuGet#4216).

  • Workaround:

    Do a manual restore.

Live Unit Testing Issues

Live Unit Testing does not work with .NET Core projects

  • Issue:

    Live Unit Testing is not supported on .NET Core projects.

  • Workaround:

    There is no workaround at this time.

Web Tools Known Issues

MVC4 projects do not connect to SQL Server LocalDB at runtime

  • Issue:

    When running an MVC4 project in Visual Studio, database access by the application may fail if it is using SQL Server Express LocalDB 2012. This is caused because MVC4 projects by default depend on SQL Server Express LocalDB 2012 which is not installed with Visual Studio 2017.

  • Workaround:

    Upgrade the project to use SQL Server Express LocalDB 2016, or manually download and install SQL Server Express LocalDB 2012 on the machine.

.NET Core Tools Issues

For a current list of issues with .NET Core and ASP.NET Core Tools see our GitHub page.

Open Folder Issues

IntelliSense not available while editing launch.vs.json or tasks.vs.json

  • Issue:

    When you edit a launch.vs.json or tasks.vs.json file, IntelliSense is not available.

  • Workaround:

    Install the "ASP.NET and Web Development" workload.

C# refactoring may have inconsistent results

  • Issue:

    Refactoring C# or VB code may have inconsistent results in folder mode.

  • Workaround:

    Load C# or VB projects in Solution mode.

F10 does not start the debugger in folder mode

  • Issue:

    The F10 hotkey does not start the debugger in folder mode.

  • Workaround:

    Use F5 or F11, and set a breakpoint in the application's entry point.

Unsaved edits to launch.vs.json may be lost

  • Issue:

    Unsaved edits to launch.vs.json will be lost when selecting "Debug & Launch Settings" from the context menu.

  • Workaround:

    Save any changes to this file before selecting "Debug & Launch Settings" from the context menu.

Reloading a project that has been edited in folder mode may fail with a dialog

  • Issue:

    If you have edited a project file from the folder mode, it may fail to reload later from the Solution mode.

  • Workaround:

    Try reloading the project again. If it still fails to load, reload the Solution.

Testing Tools Issues

Discovery fails for UWP projects with a UITestMethod created in Visual Studio VS2017

  • Issue:

    Discovery fails for UWP projects with test methods adorned with the UITestMethod attribute, created in Visual Studio VS2017.

  • Workaround:

    Upgrade MSTest.TestAdapter NuGet package to the latest version (1.1.12+).

Run tests fail from Visual Studio when a test is adorned by a DeploymentItem attribute

  • Issue:

    Test projects created in Visual Studio that have tests adorned by a DeploymentItem attribute fail to run, throwing a FileNotFound exception.

  • Workaround:

    Add the following DeploymentItem as well on the test method\containing test class: [DeploymentItem("Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll")]. This will be fixed in an upcoming version of MSTest.TestFramework and MSTest.TestAdapter.

Debugging and Diagnostics

Remote Tools for Visual Studio 2017 Preview are not available

Lightweight Solution Load Issues

Some extensions may not behave as expected when Lightweight Solution load is enabled

  • Issue:

    Some extensions might not behave as expected when Lightweight Solution load is enabled.

  • Workaround:

    Disable Lightweight Solution load and reload the Solution.

Edit and Continue does not work when Lightweight Solution load is enabled

  • Issue:

    Edit and Continue may not work as expected when Lightweight Solution load is enabled.

  • Workaround:

    Disable Lightweight Solution load and reload the Solution before using Edit and Continue.

F# projects won't build or support symbol navigation when Lightweight Solution load is enabled

  • Issue:

    When Lightweight Solution load is enabled, F# projects may not properly build and symbols may not be fully available in GoTo.

  • Workaround:

    Disable Lightweight Solution load for Solutions that contain F# projects.

Warnings are duplicated when Lightweight Solution load is enabled

  • Issue:

    When building a Solution with Lightweight Solution load enabled, warnings from project files emitted by the build may appear duplicated in the Error List.

  • Workaround:

    Disable Lightweight Solution load and reload the Solution.

Extensibility Issues

Error occurs when adding a Custom Command or a Custom Tool Window

  • Issue:

    Attempting to add a Custom Command or a Custom Tool Window to a project that contains a XAML file may result in the custom command or tool window to not be added to the project. An error may also appear with the text: "Sequence contains more than one matching element".

  • Workaround:

    1. Close all opened XAML files.
    2. Close Visual Studio.
    3. Start Visual Studio and open your project.
    4. Add the custom command or custom tool window to the project (before loading a XAML file).

Application Insights Issues

Application Insights Extensible Providers fail to load when right-clicking a project

  • Issue:

    Application Insights Extensible Providers fail to load when right-clicking a project in Visual Studio. This occurs because extensible providers load binaries from NuGet in a background thread after the solution is loaded. Some Extensible Providers, like the ones for PHP and Azure Service Fabric are already installed, so they don't have this issue. A fix to this issue will be available via an auto-update shortly after the initial version of Visual Studio 2017.

  • Workaround:

    Open a command prompt with administrative privileges, then run the following based on your version of Visual Studio:

    • Visual Studio Enterprise

      • "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VsRegEdit.exe" set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise" HKCU AppInsightsGettingStarted UseBackgroundThreadToFetchProjectInfo string Disabled.
    • Visual Studio Professional

      • "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VsRegEdit.exe" set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional" HKCU AppInsightsGettingStarted UseBackgroundThreadToFetchProjectInfo string Disabled.
    • Visual Studio Community

      • "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VsRegEdit.exe" set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community" HKCU AppInsightsGettingStarted UseBackgroundThreadToFetchProjectInfo string Disabled.

Some ASP.NET Core projects fail to add the Application Insights JavaScript snippet for page view collection

  • Issue:

    ASP.NET Core projects configured with Application Insights that were not created with Visual Studio 2017 will fail to run. Trying to run such an app will produce the error, "InvalidOperationException: No service of type 'Microsoft.ApplicationInsights.AspNetCore.JavascriptSnippet' has been registered."

  • Workaround:

    After configuring with Application Insights, a JavaScript snippet is added to the file Views/Shared/_Layout.cshtml. There are two workarounds, depending on whether you want Application Insights to collect page views from your app:

    1. Collect page views - Add ".UseApplicationInsights()" to the WebHostBuilder in Program.cs.
    2. Don't collect page views - Delete the following lines from Views/Shared/_Layout.cshtml:
      • @inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet.
      • @Html.Raw(JavaScriptSnippet.FullScript).

Team Explorer Issues

Git commands that alter the index might fail if there is an orphaned index.lock

  • Issue:

    First reported as Git undo and unstage failing, performing a Git command that alters the index will fail if there is an orphaned Git index.lock. Git uses this file to indicate to other Git processes that the repository is locked for editing. If the editing process became unresponsive or was terminated, the index.lock file can get left behind and prevent other Git processes from editing the repository.

  • Workaround:

    When this issue happens, please look in the .git/ folder of your repository and check for an index.lock file. If one exists, and you're not actively running a Git command, delete the file.

Cloning via SSH fails

  • Issue:

    Cloning via SSH fails in Team Explorer. A fix to this issue will be available in a future update.

  • Workaround:

    If you want to use SSH, clone from the command line then add the repository to your list of local repositories in Team Explorer. You can also clone via HTTP in Team Explorer then set your remotes to use SSH in Settings > Repository Settings > Remotes.

Cancellation for Git commands in Team Explorer does not work

  • Issue:

    Cancelling a Git command (e.g. a clone) in Team Explorer does not work and instead the operation completes. This issue does not affect other Team Explorer operations.

  • Workaround:

    There is no workaround at this time.

Managed Workload Development Issues

.NET 2.0/3.0/3.5 projects generate assemblies with incorrect target

  • Issue:

    After you install Visual Studio 2017 on a fresh machine without first selecting .NET Framework 3.5 development tools from Individual components tab and build a .NET 2.0 (or 3.0/3.5) project, some assemblies (like resources) after the build will be marked as .NET4.0 even when the project targets .NET 2.0. This happens because Visual Studio 2017 no longer installs .NET Framework 3.5 SDK by default and as the SDK is missing the build process defaults to .NET 4.X SDK.

  • Workaround:

    .NET 3.5 SDK is now only an optional component, so if your development targets a .NET 3.5 product (2.0/3.0/3.5) then you will also need to select “.NET Framework 3.5 development tools” from the Individual components tab during installation. This will install the required .NET 3.5 SDK on the machine that is used during the build process.

Universal Windows Platform Development Workload Issues

XAML designer is not available

  • Issue:

    When developing a UWP app, the XAML designer is not available.

  • Workaround:

    The XAML designer is not available unless the Target Platform Version for the app is the same or lower than the version of Windows 10 on which you are running Visual Studio. For example: if you are running Visual Studio on "Windows 10 Anniversary Update (build 14393)" and the target platform version for your UWP app is "Windows 10 Creators Update", the XAML designer will not be available for that app project. To ensure that you can use the XAML designer, upgrade to the latest version of Windows 10.

Visual Studio update required when opening a UWP project

  • Issue:

    When opening a project in Visual Studio that was created in Visual Studio 2017 Preview, you may get a dialog titled “Visual Studio update required” that instructs you to install an updated platform SDK. The Windows SDK archive website linked to from the dialog does not list the specified version of the Windows SDK.

  • Workaround:

    This is expected, as Visual Studio 2017 Preview included a pre-release Windows SDK. To fix this, in your project file, change the target platform version to the Windows SDK version you intend to target. For the Windows 10 Creators Update, this is "10.0.15063.0".

    1. Right click on the project, and select "Edit [AppName].[xx]proj", where [xx]proj is .csproj, .vcxproj, etc.
    2. In the project file "TargetPlatformVersion" (for C#, VB, and JS projects) or "WindowsTargetPlatformVersion" (for C++) project properties, and change the value to "10.0.15063.0" or to the version of another SDK you have installed.

Uninstalling Visual Studio Windows 10 SDK causes UWP build errors in Visual Studio 2017 or Visual Studio 2015

  • Issue:

    If you uninstall the Windows 10 SDK, you will receive the following error when building a UWP app:
    Cannot resolve 'GenXbf.dll' under path 'C:\Program Files\Windows Kits\10'. Please install the Windows Software Development Kit. The Windows 10 SDK is installed with Visual Studio.
    This issue affects Visual Studio 2017, Visual Studio 2017 Preview, and Visual Studio 2015. Your machine can get into this error state when you've installed:

    • Visual Studio 2017 and Visual Studio 2017 Preview, and then uninstalled one of these.
    • Visual Studio 2015 and Visual Studio 2017 or Visual Studio 2017 Preview, and then uninstalled one of these.
    • Visual Studio 2017, Visual Studio 2017 Preview, or Visual Studio 2015 and then uninstalled any Windows 10 SDK either directly from Programs and Features or by using setup for Visual Studio.
  • Workaround:

    Open the Control Panel, and go to Programs and Features. Select one of the following, and click Repair:

    • Windows Software Development Kit - Windows 10.0.15063.00 (Creators Update).
    • Windows Software Development Kit - Windows 10.0.14393.795 (Anniversary Update).

Some XAML controls are not available in the toolbox

  • Issue:

    When using XAML controls that are installed from Extension SDKs, you may not see some of the controls in the toolbox.

  • Workaround:

    If you want to use these controls, you can manually add them in the XAML Editor.

Visual C++ Desktop Known Issues

Unable to build a newly-created C++ Win32 desktop project after installing the Windows 10 Creators Update SDK (10.0.15063.0)

  • Issue:

    The Windows 10 Creators Update SDK has been refactored to reduce installation footprint by default. Installing this SDK via the UWP workload will not install the headers/libs required for Win32 C++ Desktop Projects. However, Visual C++ Desktop projects will detect this SDK as installed and will, by default, attempt to target the 10.0.15063.0 in newly-created projects.

  • Workaround:

    In the Visual Studio Installer:

    • Select the "Windows 10 SDK (10.0.15063.0) for Desktop C++ x86 and x64" feature under the "Desktop development with C++" workload.
    • An alternative is to choose an earlier SDK version, which is fully installed on the system (e.g. 10.0.14393.0), from the Project Properties dialog.

Xamarin Issues

Build cancelled with error: "Project 'project_name' requires the following components installed on your machine"

  • Issue:

    Building Android applications can require installing additional components. This may be needed in several cases, like if you're using a new component, NuGet Package, or if it's the first Xamarin.Forms solution you're building on a given machine.

  • Workaround:

    • Ensure that Intellisense errors are visible in the list and Xamarin for Visual Studio will detect those missing resources. You will be shown an error informing you of the resources that are required to download and install. Double click on the error in the list to start downloading and installing the missing components. You need to have Intellisense errors visible in the list, otherwise you won't be able to see that error. The build will be cancelled if you try to build any project in the solution without installing the missing components.
    • An optional way to install missing components is to build from the command-line.

Other Issues

Unable to connect to (LocalDB)\MSSQLLocalDB in x86 machine

  • Issue:

    It is a known intermittent localDB 2014 issue where (LocalDB)\MSSQLLocalDB cannot be connected in x86 machine.

  • Workaround:

    Run the following commands in the command prompt:

    1. sqllocaldb stop mssqllocaldb.
    2. sqllocaldb delete mssqllocaldb.
    3. sqllocaldb start mssqllocaldb.

Unable to create function breakpoints in SharePoint workflows

  • Issue:

    The Breakpoints pane in Visual Studio previously allowed creation of breakpoints of type "Workflow". This functionality has been removed.

  • Workaround:

    Create breakpoints in the designer view using the right-click menu.

SharePoint Workflow Activities may not load correctly in the Workflow Designer

  • Issue:

    When you create a new SharePoint Add-in or Solution project with a workflow and SharePoint Activities, you may see the following error in the workflow designer after building the project, "Activity could not be loaded because of errors in the XAML". By default, a new SharePoint Add-in project targets .NET Framework 4.5.2. To use SharePoint Activities in a workflow the project must target .NET Framework 4.5.

  • Workaround:

    • Access Project Properties, either from the Context Menu in Solution Explorer or via the Project Menu.
    • On the Application Tab, set the Target framework to .NET Framework 4.5.

SharePoint project with a workflow may fail to build when Dynamic Values are used

  • Issue:

    A SharePoint project with a workflow may fail to build with the following error, "The type or namespace name 'Activities' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)".

  • Workaround:

    1. Expand the Workflow node in the Solution Explorer and View the Code for the workflow.xaml file in our project by hitting F7 or via the context menu when the file is selected in Solution Explorer.
    2. Add the following reference to the section: Microsoft.Activities.

The SharePoint Add-In project wizard may not correctly detect the version of SharePoint the project is targeting

  • Issue:

    When you create a SharePoint Add-in project, the new project dialog tries to detect the correct version of SharePoint based on the site URL that you provide. However, if you also have Visual Studio 2015 or an older version of the SharePoint Client Components installed, the new project dialog may incorrectly determine that the project is targeting SharePoint 2016 instead of SharePoint Online.

  • Workaround:

    For new projects, when creating a new SharePoint Add-in project, be sure and verify that the last page of the new project dialog has selected the correct version of SharePoint your project is targeting. For existing projects, you can change the version of SharePoint the project is targeting by doing the following:

    1. Access Project Properties, either from the Context Menu in Solution Explorer or via the Project Menu.
    2. On the SharePoint Tab, set the Target SharePoint Version to the correct version of SharePoint your project is targeting.

Office Web Add-In project may contain warnings in the Error List

  • Issue:

    The _officeintellisense.js file contains a declaration for an “Office’ object that conflicts with one declared in the office.d.ts file.

  • Workaround:

    These warnings should not impact your project but, you can remove the warnings by commenting out the extra “var Office” declaration in Scripts\Office\ _officeintellisense.js file or by excluding this file from the project with the “Exclude From Project” context menu in Solution Explorer.

.NET Targeting Packs Not Included in Web Development Tools Workload of the Visual Studio Build Tools SKU

  • Issue:

    The Web development tools workload in Visual Studio Build Tools SKU does not contain any .NET Targeting packs. This means that .NET binaries can only be built to target 4.6.

  • Workaround:

    Manually download and install .NET targeting packs from Microsoft to the build machine.

Files included by globbing are not shown in Solution Explorer if they are outside of a project's root

  • Issue:

    For .NET Core and ASP.NET Core projects, any files included by globbing patterns will only be shown in the Solution Explorer if the files are included under the project's root directory. Any files outside of the project's root directory will not be shown. Turning on "Show All Files" will not correct this issue. You will also not be able to navigate to these files via search, find in files, goto, or go to definition.

  • Workaround:

    There is no known workaround for showing the missing files in the Solution Explorer or navigating to them. However, building and debugging these projects should work without issues. In most cases, you should be able to edit these files normally by opening them manually. We recommend using individually linked files in place of external globbing patterns for the time being.

VS Test Professional 2017 SKU does not have Team Explorer, limiting access to Excel-based/SSRS-based reports from TFS Warehouse/Cube

  • Issue is now fixed in version 15.1 (26403.00):

    Installing the VS Test Professional SKU no longer installs VS Team Explorer, which is used to access to Excel-based/SSRS-based based reports from TFS Warehouse/Cube. There is no impact to the Microsoft Test Manager (MTM) client – it continues to work without any known issues.