75% found this document useful (4 votes)
21K views2,056 pages

Manual Visual Studio 2019 PDF

Uploaded by

angie barrero
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
75% found this document useful (4 votes)
21K views2,056 pages

Manual Visual Studio 2019 PDF

Uploaded by

angie barrero
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2056

Contents

Visual Studio IDE documentation


Overview
About Visual Studio
About the code editor
About projects and solutions
More Visual Studio features
Installation
Install Visual Studio
Install offline
Create an offline installation of Visual Studio
Install required certificates for offline installation
Install Visual Studio versions side-by-side
Select installation locations
Import or export installation configurations
Troubleshoot installation issues
Update Visual Studio
Modify Visual Studio
Repair Visual Studio
Uninstall Visual Studio
Visual Studio administrator guide
Overview
Use the command line
Use command-line parameters to install Visual Studio
Command-line parameter examples
Install on a network
Create a network-based installation of Visual Studio
Network considerations
Install and use Visual Studio behind a firewall or proxy server
Troubleshoot network errors when you install or use Visual Studio
Deploy in an enterprise
Automate Visual Studio installation with a response file
Automatically apply product keys when deploying Visual Studio
Set defaults for enterprise deployments of Visual Studio
Deploy Help Viewer
Help Viewer Administrator Guide
Command-Line Arguments for the Help Content Manager
Help Content Manager Overrides
Manage & update installations
Tools for detecting and managing Visual Studio instances
Update a network-based installation of Visual Studio
Update Visual Studio while on a servicing baseline
Control updates to Visual Studio deployments
Manage package payload changes
Disable or move the package cache
Manage subscriptions
Visual Studio subscriptions: Administrator overview
Reference
Visual Studio workload and component IDs
Overview
Visual Studio Enterprise
Visual Studio Professional
Visual Studio Community
Visual Studio Team Explorer
Visual Studio Desktop Express
Visual Studio Build Tools
Visual Studio Test Agent
Visual Studio Test Controller
Visual Studio Test Professional
Visual Studio Feedback Client
Visual Studio build numbers and release dates
Use Visual Studio from an Azure virtual machine
Containers
Install Build Tools into a Container
Advanced Example for Containers
Known Issues for Containers
Install Help Viewer
Quickstarts
Visual Studio orientation
C++: Create a console app
Python: Create a web app
Node.js: Create a web app
F#: Create a web service
C#: Create a web app
C#: Create a console app
Visual Basic: Create a console app
Tutorials
C#
F#
Visual Basic
C++
Python
Node.js
Develop
Organize and edit code
Move around in the IDE
Solutions and projects
Work with solutions and projects
Create a new project
Create solutions and projects
Open a project from a repo
Port, migrate, and upgrade projects
Manage project and solution properties
Project references
Manage references in a project
Add or remove references by using the Reference Manager
Add or remove imported namespaces (Visual Basic)
Troubleshoot broken references
Manage application resources (.NET)
Application settings (.NET)
Manage application settings (.NET)
Add an app config file to a C# project
Sign manifests
Manage assembly and manifest signing
Sign application and deployment manifests
Specify an application icon (Visual Basic, C#)
Target a framework
Create templates
Create project and item templates
Add tags to a template
Create project templates
Create multi-project templates
Create item templates
Create multi-file item templates
Create web templates
Troubleshoot templates
Locate project and item templates
Customize templates
Customize project and item templates
Update existing templates
Substitute parameters in a template
Template parameters
64-bit support
Develop without projects or solutions
How to: Develop without a project
Customize build and debug tasks
Connect to a project or repo
Editor
Use the editor
Find and replace
Find and replace text
Use regular expressions
Find-Command box
Find in Files
Replace in Files
Encodings
Encodings and line breaks
Save and open files with encoding
Outlining
Code generation and refactoring
Generate and fix code
Code snippets
Use code snippets
C# code snippets reference
C++ code snippets reference
Insert XML comments
Use surround-with code snippets
Best practices
Create code snippets
Walkthrough: Create a code snippet
Distribute code snippets
Code snippet functions
Code snippets schema reference
Troubleshoot snippets
Quick Actions
Common Quick Actions
Generate class/type
Generate method
Generate field/property/local
Generate constructor
Generate deconstructor
Add parameter to method
Generate parameter
Generate private field from constructor
Generate override
Generate Equals and GetHashCode method overrides
Generate usings
Implement abstract class
Implement interface
Introduce local variable
Refactor code
Overview
Add null checks for all parameters
Change method signature
Convert anonymous type to class
Convert anonymous type to tuple
Convert between for loop and foreach statement
Convert between Get method and property
Convert local function to method
Convert foreach loop to LINQ
Convert if statement to switch statement or switch expression
Convert LINQ query to foreach statement
Convert switch statement to switch expression
Encapsulate field
Extract interface
Extract method
Extract local function
Inline temporary variable
IntelliSense completion unimported types
Invert conditional expressions and logical operations
Invert if statement
Static local function refactor options
Make member static
Move declaration near reference
Move type to matching file
Move type to namespace
Pull member up
Regex completion through IntelliSense
Remove unreachable code
Rename
Simplify string interpolation
Sort usings
Split or merge if statements
Sync namespace and folder name
Synchronize type and filename
Use explicit type
Use lambda expression or block body
Unused value assignments, variables, and parameters
Wrap, indent, and align refactorings
Walkthrough: Generate code from usage
IntelliSense
Use IntelliSense
Visual Basic IntelliSense
C# IntelliSense
JavaScript IntelliSense
Visual C++ IntelliSense
Configure a C++ project for IntelliSense
Move around in code
Navigate your code
Find references in your code
View type and member definitions
Go To Definition and Peek Definition
View and edit code by using Peek Definition
Find code using Go To commands
Customize the editor
Change text case
Manage editor modes
Manage editor windows
Change fonts and colors
Manage word wrap
Display line numbers
Display URLs as links
Set language-specific editor options
Code style
Code style preferences
Use EditorConfig files for code style
.NET coding conventions
Overview
Language conventions
Formatting conventions
Naming conventions
Customize the scroll bar
Set bookmarks in code
CodeLens
Find code history with CodeLens
CodeIndex Command
Editor support for other languages
Code views
View the structure of code
Class View and Object Browser icons
Use the Task List
Class Designer
Design classes in Class Designer
Add class diagrams to projects
Customize class diagrams
Copy class diagram elements to a Microsoft Office document
Export class diagrams as images
Print class diagrams
Add comments to class diagrams
Create classes and types
Create types
Create inheritance between types
Create associations between types
Visualize a collection association
Create and configure type members
View types and relationships
View existing types
View inheritance between types
Member notation and association notation
Refactor classes and types
Implement an interface
Split a class into partial classes
Create a nullable type
C++ in Class Designer
Work with Visual C++ code
C++ classes
C++ structures
C++ enumerations
C++ typedefs
Keyboard and mouse shortcuts
Class Designer errors
Improve your code
Tips and tricks
Productivity features
Productivity shortcuts
Tips for C# developers
Customize keyboard shortcuts
Use the keyboard exclusively
Work with...
Windows Forms apps
Windows Forms Designer overview
Get started with Windows Forms Designer
Arrange controls >>
Create a data-bound control >>
Create custom controls >>
Disable DPI awareness for Windows Forms Designer
Reference
System.Windows.Forms API >>
Tutorials
Tutorial 1: Create a picture viewer (C#)
Overview
Step 1: Create a Windows Forms App project
Step 2: Run your app
Step 3: Set your form properties
Step 4: Lay out your form with a TableLayoutPanel control
Step 5: Add controls to your form
Step 6: Name your button controls
Step 7: Add dialog components to your form
Step 8: Write code for the Show a Picture button event handler
Step 9: Review, comment, and test your code
Step 10: Write code for additional buttons and a check box
Step 11: Run your app and try other features
Tutorial 2: Create a timed math quiz (C#)
Overview
Step 1: Create a project and add labels to your form
Step 2: Create a random addition problem
Step 3: Add a countdown timer
Step 4: Add the CheckTheAnswer() method
Step 5: Add Enter event handlers for the NumericUpDown controls
Step 6: Add a subtraction problem
Step 7: Add multiplication and division problems
Step 8: Customize the quiz
Tutorial 3: Create a matching game (C#)
Overview
Step 1: Create a project and add a table to your form
Step 2: Add a random object and a list of icons
Step 3: Assign a random icon to each label
Step 4: Add a click event handler to each label
Step 5: Add label references
Step 6: Add a timer
Step 7: Keep pairs visible
Step 8: Add a method to verify whether the player won
Step 9: Try other features
F#
F# development
Target older .NET versions
3D graphical assets
Work with 3D assets for games and apps
How to: Use 3D assets in your game or app
Textures and images
Work with textures and images
Image editor
Image editor examples
Create a basic texture
Create and modify MIP levels
3D models
Work with 3D models
Model editor
Model editor examples
Create a basic 3D model
Modify the pivot point of a 3D model
Model 3D terrain
Apply a shader to a 3D model
Shaders
Work with shaders
Shader designer
Shader designer nodes
Overview
Constant nodes
Parameter nodes
Texture nodes
Math nodes
Utility nodes
Filter nodes
Shader designer examples
Create a basic color shader
Create a basic Lambert shader
Create a basic Phong shader
Create a basic texture shader
Create a grayscale texture shader
Create a geometry-based gradient shader
Walkthrough: Create a realistic 3D billiard ball
Export a shader
Export textures
Export a texture that contains mipmaps
Export a texture that has premultiplied alpha
Export a texture for use with Direct2D or JavaScript apps
XAML files >>
XML and XSLT files >>
Docker containers >>
Workflows >>
Mobile apps
Office and SharePoint apps >>
Access data >>
Develop inclusive apps
Design accessible apps
Design international apps
Build
Overview
Walkthrough: Build an application
Build and clean projects and solutions
Overview
Change the build output directory
Build to a common output directory
Specify custom build events
Set multiple startup projects
Create and remove project dependencies
View, save, and configure build log files
Exclude projects from a build
Suppress compiler warnings
Build actions
Build configurations
Understand build configurations
Create and edit configurations
Manage build configurations with Visual Basic developer settings
Build multiple configurations simultaneously
Build platforms
Understand build platforms
Configure projects to target a platform
Configure projects to target multiple platforms
MSBuild >>
Azure Pipelines and TFS >>
Specify build events (Visual Basic)
Specify build events (C#)
Configure warnings in Visual Basic
Walkthrough: Create a multiple-computer build environment
Debug >>
Test >>
Measure performance >>
Analyze code quality >>
Deploy >>
Extend Visual Studio >>
Analyze and Model Architecture >>
Personalize Visual Studio
Customize the IDE
Quickstart: Personalize theme and text colors
Environment settings
Synchronized settings
Fonts and colors
Menus and toolbars
Window layouts
File nesting in Solution Explorer
Startup behavior
Manage extensions
Manage external tools
Personalization accounts
Sign in to Visual Studio
Work with multiple user accounts
Extend a trial version or update a license
Tuning the performance of Visual Studio
Optimize performance
Startup time
Load a filtered solution
Tips and tricks
Accessibility
Manage accessibility features
Set IDE accessibility options
Accessibility tips and tricks
Accessibility products and services from Microsoft
Reference
Keyboard shortcuts
Popular commands
All commands
Visual Studio commands
Reference
Command aliases
Add Existing Item command
Add Existing Project command
Add New Item command
Alias command
Evaluate Statement command
Find command
Find in Files command
Go To command
Import and Export Settings command
List Call Stack command
List Disassembly command
List Memory command
List Modules command
List Registers command
List Source command
List Threads command
Log Command window output command
New File command
Open File command
Open Project command
Print command
Quick Watch command
Replace command
Replace In Files command
Set Current Process
Set Current Stack Frame command
Set Current Thread command
Set Radix command
Shell command
ShowWebBrowser command
Start command
Symbol Path command
Toggle Breakpoint command
Watch command
General user interface elements
Call Hierarchy
Preview Changes
Choose Toolbox items, WPF components
Code snippet picker
Command window
Convert dialog box
Error List window
File Properties, JavaScript
Go To Line
Immediate window
Miscellaneous files
Options
Options dialog box
Environment
General
Accounts
AutoRecover
Documents
Extensions
Find and Replace
Fonts and Colors
Import and Export Settings
International Settings
Keyboard
Preview Features
Notifications
Quick Launch
Startup
Tabs and Windows
Task List
Trust Settings
Web Browser
Projects and Solutions
General
Build and Run
Locations
VB Defaults
VC++ Project Settings
Web Projects
Text Editor
General
File Extension
All Languages
General
Scroll Bars
Tabs
Basic
Advanced
Code Style
IntelliSense
C#
Advanced
Code Style > Formatting
IntelliSense
C/C++
Advanced
Experimental
Formatting
View
F#
Advanced
Code Fixes
CodeLens
IntelliSense
HTML (Web Forms)
Formatting
Miscellaneous
Validation
JavaScript/TypeScript
Code Validation
Formatting
IntelliSense
Linting
Project
U-SQL
Formatting
IntelliSense
XAML
Formatting
Miscellaneous
XML
Formatting
Miscellaneous
Windows Forms Designer
General
Data UI Customization
XAML Designer
Output window
Project Properties
Reference
Application Page, Project Designer (UWP)
Application Page, Project Designer (Visual Basic)
Application Page
Assembly Information Dialog Box
Application Page, Project Designer (C#)
Build Events Page, Project Designer (C#)
Build Events Page
Pre-build Event-Post-build Event Command Line Dialog Box
Build Page, Project Designer (C#)
Build Page
Advanced Build Settings Dialog Box (C#)
Code Analysis, Project Designer
Compile Page, Project Designer (Visual Basic)
Compile Page
Advanced Compiler Settings Dialog Box (Visual Basic)
Build Events Dialog Box (Visual Basic)
Debug Page, Project Designer
My Extensions Page, Project Designer (Visual Basic)
Publish Page, Project Designer
Publish Page
Prerequisites Dialog Box
References Page, Project Designer (Visual Basic)
Security Page, Project Designer
Security Page
Advanced Security Settings Dialog Box
Services Page, Project Designer
Services Page
Advanced Settings for Services Dialog Box
Settings Page, Project Designer
Signing Page, Project Designer
Property Pages, JavaScript
Properties window
Team Explorer reference
Toolbox
Reference
Toolbox, Components Tab
Toolbox, Data Tab
Toolbox, HTML Tab
Devenv command-line switches
Reference
-? (devenv.exe)
-Build (devenv.exe)
-Clean (devenv.exe)
-Command (devenv.exe)
-DebugExe (devenv.exe)
-Deploy (devenv.exe)
-Diff (devenv.exe)
-DoNotLoadProjects (devenv.exe)
-Edit (devenv.exe)
-LCID (devenv.exe)
-Log (devenv.exe)
-NoSplash (devenv.exe)
-Out (devenv.exe)
-Project (devenv.exe)
-ProjectConfig (devenv.exe)
-Rebuild (devenv.exe)
-ResetSettings (devenv.exe)
-Run (devenv.exe)
-Runexit (devenv.exe)
-SafeMode (devenv.exe)
-Upgrade (devenv.exe)
-UseEnv (devenv.exe)
Security
Develop secure applications
Run Visual Studio as normal user or administrator
Windows Information Protection (WIP)
Bidirectional language input
Microsoft Help Viewer
Overview
Install and Manage Local Content
Find topics in Help Viewer
Find Topics in the Index
Find Topics in the Table of Contents
Search
Search for Topics
Logical and Advanced Operators in Search Expressions
Customize Help Viewer
Accessibility
Shortcut Keys
The Visual Studio image library
Dotfuscator Community
Overview
Capabilities of Dotfuscator
Install Dotfuscator Community
Upgrade Dotfuscator Community
Resources
What's new in Visual Studio 2017
What's new in Visual Studio 2019
Release notes & system requirements
Release rhythm
Visual Studio 2017
Current release notes
Preview release notes
Release notes history
Distributable code
Platform compatibility
System requirements
Visual Studio 2019
Current release notes
Preview release notes
Release notes history
Distributable code
Platform compatibility
System requirements
License terms
Support lifecycle and servicing
Customer Experience Improvement Program
Overview
System-generated logs
Resources for troubleshooting IDE errors
Send feedback
Overview
Report a problem
How to report a problem
Report a problem states and FAQ
Get performance issues fixed quicker
Create minidumps with callstacks
Create logs for MSBuild problems
Collect an ETL trace with PerfView
Suggest a feature
Developer Community data privacy
Welcome to the Visual Studio IDE
1/1/2020 • 14 minutes to read • Edit Online

The Visual Studio integrated development environment is a creative launching pad that you can use to edit,
debug, and build code, and then publish an app. An integrated development environment (IDE ) is a feature-rich
program that can be used for many aspects of software development. Over and above the standard editor and
debugger that most IDEs provide, Visual Studio includes compilers, code completion tools, graphical designers,
and many more features to ease the software development process.
This image shows Visual Studio with an open project and several key tool windows you'll likely use:
Solution Explorer (top right) lets you view, navigate, and manage your code files. Solution Explorer can
help organize your code by grouping the files into solutions and projects.
The editor window (center), where you'll likely spend a majority of your time, displays file contents. This is
where you can edit code or design a user interface such as a window with buttons and text boxes.
The Output window (bottom center) is where Visual Studio sends notifications such as debugging and error
messages, compiler warnings, publishing status messages, and more. Each message source has its own tab.
Team Explorer (bottom right) lets you track work items and share code with others using version control
technologies such as Git and Team Foundation Version Control (TFVC ).

Editions
Visual Studio is available for Windows and Mac. Visual Studio for Mac has many of the same features as Visual
Studio 2017, and is optimized for developing cross-platform and mobile apps. This article focuses on the
Windows version of Visual Studio 2017.
There are three editions of Visual Studio: Community, Professional, and Enterprise. See Compare Visual Studio
editions to learn about which features are supported in each edition.
Visual Studio is available for Windows and Mac. Visual Studio for Mac has many of the same features as Visual
Studio 2019, and is optimized for developing cross-platform and mobile apps. This article focuses on the
Windows version of Visual Studio 2019.
There are three editions of Visual Studio 2019: Community, Professional, and Enterprise. See Compare Visual
Studio editions to learn about which features are supported in each edition.

Popular productivity features


Some of the popular features in Visual Studio that help you to be more productive as you develop software
include:
Squiggles and Quick Actions
Squiggles are wavy underlines that alert you to errors or potential problems in your code as you type.
These visual clues enable you to fix problems immediately without waiting for the error to be discovered
during build or when you run the program. If you hover over a squiggle, you see additional information
about the error. A light bulb may also appear in the left margin with actions, known as Quick Actions, to fix
the error.

Code Cleanup
With the click of a button, format your code and apply any code fixes suggested by your code style
settings, .editorconfig conventions, and Roslyn analyzers. Code Cleanup helps you resolve issues in your
code before it goes to code review. (Currently available for C# code only.)

Refactoring
Refactoring includes operations such as intelligent renaming of variables, extracting one or more lines of
code into a new method, changing the order of method parameters, and more.

IntelliSense
IntelliSense is a term for a set of features that displays information about your code directly in the editor
and, in some cases, write small bits of code for you. It's like having basic documentation inline in the editor,
which saves you from having to look up type information elsewhere. IntelliSense features vary by
language. For more information, see C# IntelliSense, Visual C++ IntelliSense, JavaScript IntelliSense, and
Visual Basic IntelliSense. The following illustration shows how IntelliSense displays a member list for a
type:

Search box
Visual Studio can seem overwhelming at times with so many menus, options, and properties. The search
box is a great way to rapidly find what you need in Visual Studio. When you start typing the name of
something you're looking for, Visual Studio lists results that take you exactly where you need to go. If you
need to add functionality to Visual Studio, for example to add support for an additional programming
language, the search box provides results that open Visual Studio Installer to install a workload or
individual component.

TIP
Press Ctrl+Q as a shortcut to the search box.

For more information, see Quick Launch.

Live Share
Collaboratively edit and debug with others in real time, regardless of what your app type or programming
language. You can instantly and securely share your project and, as needed, debugging sessions, terminal
instances, localhost web apps, voice calls, and more.
Call Hierarchy
The Call Hierarchy window shows the methods that call a selected method. This can be useful
information when you're thinking about changing or removing the method, or when you're trying to track
down a bug.
CodeLens
CodeLens helps you find references to your code, changes to your code, linked bugs, work items, code
reviews, and unit tests, all without leaving the editor.

Go To Definition
The Go To Definition feature takes you directly to the location where a function or type is defined.

Peek Definition
The Peek Definition window shows the definition of a method or type without actually opening a
separate file.

Install the Visual Studio IDE


In this section, you'll create a simple project to try out some of the things you can do with Visual Studio. You'll use
IntelliSense as a coding aid, debug an app to see the value of a variable during the program's execution, and
change the color theme.
To get started, download Visual Studio and install it on your system. The modular installer enables you to choose
and install workloads, which are groups of features needed for the programming language or platform you prefer.
To follow the steps for creating a program, be sure to select the .NET Core cross-platform development
workload during installation.
To get started, download Visual Studio and install it on your system. The modular installer enables you to choose
and install workloads, which are groups of features needed for the programming language or platform you prefer.
To follow the steps for creating a program, be sure to select the .NET Core cross-platform development
workload during installation.

When you open Visual Studio for the first time, you can optionally sign in using your Microsoft account or your
work or school account.

Create a program
Let's dive in and create a simple program.
1. Open Visual Studio.
2. On the menu bar, choose File > New > Project.

The New Project dialog box shows several project templates. A template contains the basic files and
settings needed for a given project type.
3. Choose the .NET Core template category under Visual C#, and then choose the Console App (.NET
Core) template. In the Name text box, type HelloWorld, and then select the OK button.
NOTE
If you don't see the .NET Core category, you need to install the .NET Core cross-platform development
workload. To do this, choose the Open Visual Studio Installer link on the bottom left of the New Project dialog.
After Visual Studio Installer opens, scroll down and select the .NET Core cross-platform development workload,
and then select Modify.

Visual Studio creates the project. It's a simple "Hello World" application that calls the Console.WriteLine()
method to display the literal string "Hello World!" in the console (program output) window.
Shortly, you should see something like the following:

The C# code for your application shows in the editor window, which takes up most of the space. Notice
that the text is automatically colorized to indicate different parts of the code, such as keywords and types.
In addition, small, vertical dashed lines in the code indicate which braces match one another, and line
numbers help you locate code later. You can choose the small, boxed minus signs to collapse or expand
blocks of code. This code outlining feature lets you hide code you don't need, helping to minimize onscreen
clutter. The project files are listed on the right side in a window called Solution Explorer.

There are other menus and tool windows available, but let's move on for now.
4. Now, start the app. You can do this by choosing Start Without Debugging from the Debug menu on
the menu bar. You can also press Ctrl+F5.

Visual Studio builds the app, and a console window opens with the message Hello World!. You now have
a running app!
5. To close the console window, press any key on your keyboard.
6. Let's add some additional code to the app. Add the following C# code before the line that says
Console.WriteLine("Hello World!"); :

Console.WriteLine("\nWhat is your name?");


var name = Console.ReadLine();

This code displays What is your name? in the console window, and then waits until the user enters some
text followed by the Enter key.
7. Change the line that says Console.WriteLine("Hello World!"); to the following code:

Console.WriteLine($"\nHello {name}!");

8. Run the app again by selecting Debug > Start Without Debugging or by pressing Ctrl+F5.
Visual Studio rebuilds the app, and a console window opens and prompts you for your name.
9. Enter your name in the console window and press Enter.

10. Press any key to close the console window and stop the running program.
1. Open Visual Studio.
The start window appears with various options for cloning a repo, opening a recent project, or creating a
brand new project.
2. Choose Create a new project.
The Create a new project window opens and shows several project templates. A template contains the
basic files and settings needed for a given project type.
3. To find the template we want, type or enter .net core console in the search box. The list of available
templates is automatically filtered based on the keywords you entered. You can further filter the template
results by choosing C# from the Language drop-down list. Select the Console App (.NET Core)
template, and then choose Next.

4. In the Configure your new project window, enter HelloWorld in the Project name box, optionally
change the directory location for your project files, and then choose Create.
Visual Studio creates the project. It's a simple "Hello World" application that calls the Console.WriteLine()
method to display the literal string "Hello World!" in the console (program output) window.
Shortly, you should see something like the following:

The C# code for your application shows in the editor window, which takes up most of the space. Notice
that the text is automatically colorized to indicate different parts of the code, such as keywords and types.
In addition, small, vertical dashed lines in the code indicate which braces match one another, and line
numbers help you locate code later. You can choose the small, boxed minus signs to collapse or expand
blocks of code. This code outlining feature lets you hide code you don't need, helping to minimize onscreen
clutter. The project files are listed on the right side in a window called Solution Explorer.
There are other menus and tool windows available, but let's move on for now.
5. Now, start the app. You can do this by choosing Start Without Debugging from the Debug menu on
the menu bar. You can also press Ctrl+F5.

Visual Studio builds the app, and a console window opens with the message Hello World!. You now have
a running app!
6. To close the console window, press any key on your keyboard.
7. Let's add some additional code to the app. Add the following C# code before the line that says
Console.WriteLine("Hello World!"); :

Console.WriteLine("\nWhat is your name?");


var name = Console.ReadLine();

This code displays What is your name? in the console window, and then waits until the user enters some
text followed by the Enter key.
8. Change the line that says Console.WriteLine("Hello World!"); to the following code:

Console.WriteLine($"\nHello {name}!");

9. Run the app again by selecting Debug > Start Without Debugging or by pressing Ctrl+F5.
Visual Studio rebuilds the app, and a console window opens and prompts you for your name.
10. Enter your name in the console window and press Enter.

11. Press any key to close the console window and stop the running program.

Use refactoring and IntelliSense


Let's look at a couple of the ways that refactoring and IntelliSense can help you code more efficiently.
First, let's rename the name variable:
1. Double-click the name variable to select it.
2. Type in the new name for the variable, username.
Notice that a gray box appears around the variable, and a light bulb appears in the margin.
3. Select the light bulb icon to show the available Quick Actions. Select Rename 'name' to 'username'.
The variable is renamed across the project, which in our case is only two places.

3. Select the light bulb icon to show the available Quick Actions. Select Rename 'name' to 'username'.

The variable is renamed across the project, which in our case is only two places.
4. Now let's take a look at IntelliSense. Below the line that says Console.WriteLine($"\nHello {username}!"); ,
type DateTime now = DateTime. .
A box displays the members of the DateTime class. In addition, the description of the currently selected
member displays in a separate box.

5. Select the member named Now, which is a property of the class, by double-clicking on it or pressing Tab.
Complete the line of code by adding a semi-colon to the end.
6. Below that, type in or paste the following lines of code:

int dayOfYear = now.DayOfYear;

Console.Write("Day of year: ");


Console.WriteLine(dayOfYear);
TIP
Console.Write is a little different to Console.WriteLine in that it doesn't add a line terminator after it prints. That
means that the next piece of text that's sent to the output will print on the same line. You can hover over each of
these methods in your code to see their description.

7. Next, we'll use refactoring again to make the code a little more concise. Click on the variable now in the
line DateTime now = DateTime.Now; .
Notice that a little screwdriver icon appears in the margin on that line.
8. Click the screwdriver icon to see what suggestions Visual Studio has available. In this case, it's showing the
Inline temporary variable refactoring to remove a line of code without changing the overall behavior of the
code:

9. Click Inline temporary variable to refactor the code.


10. Run the program again by pressing Ctrl+F5. The output looks something like this:

10. Run the program again by pressing Ctrl+F5. The output looks something like this:
Debug code
When you write code, you need to run it and test it for bugs. Visual Studio's debugging system lets you step
through code one statement at a time and inspect variables as you go. You can set breakpoints that stop execution
of the code at a particular line. You can observe how the value of a variable changes as the code runs, and more.
Let's set a breakpoint to see the value of the username variable while the program is "in flight".
1. Find the line of code that says Console.WriteLine($"\nHello {username}!"); . To set a breakpoint on this line
of code, that is, to make the program pause execution at this line, click in the far left margin of the editor.
You can also click anywhere on the line of code and then press F9.
A red circle appears in the far left margin, and the code is highlighted in red.

2. Start debugging by selecting Debug > Start Debugging or by pressing F5.


3. When the console window appears and asks for your name, type it in and press Enter.
The focus returns to the Visual Studio code editor and the line of code with the breakpoint is highlighted in
yellow. This signifies that it's the next line of code that the program will execute.
4. Hover your mouse over the username variable to see its value. Alternatively, you can right-click on
username and select Add Watch to add the variable to the Watch window, where you can also see its
value.

5. To let the program run to completion, press F5 again.


To get more details about debugging in Visual Studio, see Debugger feature tour.

Customize Visual Studio


You can personalize the Visual Studio user interface, including change the default color theme. To change to the
Dark theme:
1. On the menu bar, choose Tools > Options to open the Options dialog.
2. On the Environment > General options page, change the Color theme selection to Dark, and then
choose OK.
The color theme for the entire IDE changes to Dark.

2. On the Environment > General options page, change the Color theme selection to Dark, and then
choose OK.
The color theme for the entire IDE changes to Dark.

To learn about other ways you can personalize the IDE, see Personalize Visual Studio.

Next steps
Explore Visual Studio further by following along with one of these introductory articles:
Get acquainted with the code editor in Learn to use the code editor
Learn how Visual Studio organizes code in Learn about projects and solutions
If you're ready to dive into more coding, one of the following language-specific quickstarts is a good next step:
Use Visual Studio to create your first Python web app
Use Visual Studio to create your first C# web app
Use Visual Studio to create your first F# web app
Use Visual Studio to create your first Node.js app
Use Visual Studio to create your first C++ console app

See also
Discover more Visual Studio features
Visit visualstudio.microsoft.com
Read The Visual Studio blog
Learn to use the code editor
1/1/2020 • 5 minutes to read • Edit Online

In this 10-minute introduction to the code editor in Visual Studio, we'll add code to a file to look at some of the
ways that Visual Studio makes writing, navigating, and understanding code easier.

TIP
If you haven't already installed Visual Studio, go to the Visual Studio downloads page to install it for free.

TIP
If you haven't already installed Visual Studio, go to the Visual Studio downloads page to install it for free.

This article assumes you're already familiar with a programming language. If you aren't, we suggest you look at
one of the programming quickstarts first, such as create a web app with Python or C#, or create a console app with
Visual Basic or C++.

Create a new code file


Start by creating a new file and adding some code to it.
1. Open Visual Studio.
1. Open Visual Studio. Press Esc or click Continue without code on the start window to open the development
environment.
2. From the File menu on the menu bar, choose New > File.
3. In the New File dialog box, under the General category, choose Visual C# Class, and then choose Open.
A new file opens in the editor with the skeleton of a C# class. (Notice that we don't have to create a full
Visual Studio project to gain some of the benefits that the code editor offers; all you need is a code file!)

Use code snippets


Visual Studio provides useful code snippets that you can use to quickly and easily generate commonly used code
blocks. Code snippets are available for different programming languages including C#, Visual Basic, and C++.
Let's add the C# void Main snippet to our file.
1. Place your cursor just above the final closing brace } in the file, and type the characters svm . ( svm stands
for static void Main ; the Main() method is the entry point for C# applications.)
A pop-up dialog box appears with information about the svm code snippet.

2. Press Tab twice to insert the code snippet.


You see the static void Main() method signature get added to the file.

The available code snippets vary for different programming languages. You can look at the available code snippets
for your language by choosing Edit > IntelliSense > Insert Snippet, and then choosing your language's folder.
For C#, the list looks like this:

The list includes snippets for creating a class, a constructor, a for loop, an if or switch statement, and more.

Comment out code


The toolbar, which is the row of buttons under the menu bar in Visual Studio, can help make you more productive
as you code. For example, you can toggle IntelliSense completion mode (IntelliSense is a coding aid that displays a
list of matching methods, amongst other things), increase or decrease a line indent, or comment out code that you
don't want to compile. In this section, we'll comment out some code.

1. Paste the following code into the Main() method body.


// _words is a string array that we'll sort alphabetically
string[] _words = {
"the",
"quick",
"brown",
"fox",
"jumps"
};

string[] morewords = {
"over",
"the",
"lazy",
"dog"
};

IEnumerable<string> query = from word in _words


orderby word.Length
select word;

2. We're not using the morewords variable, but we may use it later so we don't want to completely delete it.
Instead, let's comment out those lines. Select the entire definition of morewords to the closing semi-colon,
and then choose the Comment out the selected lines button on the toolbar. If you prefer to use the
keyboard, press Ctrl+K, Ctrl+C.

The C# comment characters // are added to the beginning of each selected line to comment out the code.

Collapse code blocks


We don't want to see the empty constructor for Class1 that was generated, so to unclutter our view of the code,
let's collapse it. Choose the small gray box with the minus sign inside it in the margin of the first line of the
constructor. Or, if you're a keyboard user, place the cursor anywhere in the constructor code and press Ctrl+M,
Ctrl+M.

The code block collapses to just the first line, followed by an ellipsis ( ... ). To expand the code block again, click
the same gray box that now has a plus sign in it, or press Ctrl+M, Ctrl+M again. This feature is called Outlining
and is especially useful when you're collapsing long methods or entire classes.

View symbol definitions


The Visual Studio editor makes it easy to inspect the definition of a type, method, etc. One way is to navigate to the
file that contains the definition, for example by choosing Go to Definition anywhere the symbol is referenced. An
even quicker way that doesn't move your focus away from the file you're working in is to use Peek Definition. Let's
peek at the definition of the string type.
1. Right-click on any occurrence of string and choose Peek Definition from the content menu. Or, press
Alt+F12.
A pop-up window appears with the definition of the String class. You can scroll within the pop-up window,
or even peek at the definition of another type from the peeked code.

2. Close the peeked definition window by choosing the small box with an "x" at the top right of the pop-up
window.

Use IntelliSense to complete words


IntelliSense is an invaluable resource when you're coding. It can show you information about available members
of a type, or parameter details for different overloads of a method. You can also use IntelliSense to complete a
word after you type enough characters to disambiguate it. Let's add a line of code to print out the ordered strings
to the console window, which is the standard place for output from the program to go.
1. Below the query variable, start typing the following code:

foreach (string str in qu

You see IntelliSense show you Quick Info about the query symbol.

2. To insert the rest of the word query by using IntelliSense's word completion functionality, press Tab.
3. Finish off the code block to look like the following code. You can even practice using code snippets again by
entering cw and then pressing Tab twice to generate the Console.WriteLine code.

foreach (string str in query)


{
Console.WriteLine(str);
}

Refactor a name
Nobody gets code right the first time, and one of the things you might have to change is the name of a variable or
method. Let's try out Visual Studio's refactor functionality to rename the _words variable to words .
1. Place your cursor over the definition of the _words variable, and choose Rename from the right-click or
context menu, or press Ctrl+R, Ctrl+R.
A pop-up Rename dialog box appears at the top right of the editor.
2. Enter the desired name words. Notice that the reference to words in the query is also automatically
renamed. Before you press Enter, select the Include comments checkbox in the Rename pop-up box.

3. Press Enter.
Both occurrences of words have been renamed, as well as the reference to words in the code comment.

Next steps
Learn about projects and solutions

See also
Code snippets
Navigate code
Outlining
Go To Definition and Peek Definition
Refactoring
Use IntelliSense
Learn about projects and solutions
2/25/2020 • 8 minutes to read • Edit Online

In this introductory article, we'll explore what it means to create a solution and a project in Visual Studio. A
solution is a container that's used to organize one or more related code projects, for example a class library project
and a corresponding test project. We'll look at the properties of a project and some of the files it can contain. We'll
also create a reference from one project to another.
If you haven't already installed Visual Studio, go to the Visual Studio downloads page to install it for free.
If you haven't already installed Visual Studio, go to the Visual Studio downloads page to install it for free.
We'll construct a solution and project from scratch as an educational exercise to understand the concept of a
project. In your general use of Visual Studio, you'll likely use some of the various project templates that Visual
Studio offers when you create a new project.

NOTE
Solutions and projects aren't required to develop apps in Visual Studio. You can also just open a folder that contains code
and start coding, building, and debugging. For example, if you clone a GitHub repo, it might not contain Visual Studio
projects and solutions. For more information, see Develop code in Visual Studio without projects or solutions.

Solutions and projects


Despite its name, a solution is not an "answer". A solution is simply a container used by Visual Studio to organize
one or more related projects. When you open a solution in Visual Studio, it automatically loads all the projects that
the solution contains.
Create a solution
We'll start our exploration by creating an empty solution. After you get to know Visual Studio, you probably won't
find yourself creating empty solutions very often. When you create a new project, Visual Studio automatically
creates a solution to house the project if there's not a solution already open.
1. Open Visual Studio.
2. On the top menu bar, choose File > New > Project.
The New Project dialog box opens.
3. In the left pane, expand Other Project Types, then choose Visual Studio Solutions. In the center pane,
choose the Blank Solution template. Name your solution QuickSolution, then choose the OK button.
The Start Page closes, and a solution appears in Solution Explorer on the right-hand side of the Visual
Studio window. You'll probably use Solution Explorer often, to browse the contents of your projects.
1. Open Visual Studio.
2. On the start window, choose Create a new project.
3. On the Create a new project page, enter blank solution into the search box, select the Blank Solution
template, and then choose Next.

4. Name the solution QuickSolution, and then choose Create.


A solution appears in Solution Explorer on the right-hand side of the Visual Studio window. You'll
probably use Solution Explorer often, to browse the contents of your projects.
Add a project
Now let's add our first project to the solution. We'll start with an empty project and add the items we need to the
project.
1. From the right-click or context menu of Solution 'QuickSolution' in Solution Explorer, choose Add >
New Project.
The Add New Project dialog box opens.
2. In the left pane, expand Visual C# and choose Windows Desktop. Then, in the middle pane, choose the
Empty Project (.NET Framework) template. Name the project QuickDate, then choose OK.
A project named QuickDate appears beneath the solution in Solution Explorer. Currently it contains a
single file called App.config.

NOTE
If you don't see Visual C# in the left pane of the dialog box, you must install the .NET desktop development
Visual Studio workload. Visual Studio uses workload-based installation to install only the components you need for
the type of development you do. An easy way to install a new workload is to choose the Open Visual Studio
Installer link in the bottom left corner of the Add New Project dialog box. After Visual Studio Installer launches,
choose the .NET desktop development workload and then the Modify button.

1. From the right-click or context menu of Solution 'QuickSolution' in Solution Explorer, choose Add >
New Project.
A dialog box opens that says Add a new project.
2. Enter the text empty into the search box at the top, and then select C# under Language.
3. Select the Empty Project (.NET Framework) template, and then choose Next.
4. Name the project QuickDate, then choose Create.
A project named QuickDate appears beneath the solution in Solution Explorer. Currently it contains a
single file called App.config.
NOTE
If you don't see the Empty Project (.NET Framework) template, you must install the .NET desktop development
Visual Studio workload. Visual Studio uses workload-based installation to install only the components you need for
the type of development you do. An easy way to install a new workload when you're creating a new project is to
choose the Install more tools and features link under the text that says Not finding what you're looking for?.
After Visual Studio Installer launches, choose the .NET desktop development workload and then the Modify
button.

Add an item to the project


We have an empty project. Let's add a code file.
1. From the right-click or context menu of the QuickDate project in Solution Explorer, choose Add > New
Item.
The Add New Item dialog box opens.
2. Expand Visual C# Items, then choose Code. In the middle pane, choose the Class item template. Name
the class Calendar, and then choose the Add button.
A file named Calendar.cs is added to the project. The .cs on the end is the file extension that is given to C#
code files. The file appears in the visual project hierarchy in Solution Explorer, and its contents are opened
in the editor.
3. Replace the contents of the Calendar.cs file with the following code:
using System;

namespace QuickDate
{
internal class Calendar
{
static void Main(string[] args)
{
DateTime now = GetCurrentDate();
Console.WriteLine($"Today's date is {now}");
Console.ReadLine();
}

internal static DateTime GetCurrentDate()


{
return DateTime.Now.Date;
}
}
}

You don't need to understand what the code does, but if you want, you can run the program by pressing
Ctrl+F5 and see that it prints today's date to the console (or standard output) window.

Add a second project


It is common for solutions to contain more than one project, and often these projects reference each other. Some
projects in a solution might be class libraries, some executable applications, and some might be unit test projects
or websites.
Let's add a unit test project to our solution. This time we'll start from a project template so we don't have to add an
additional code file to the project.
1. From the right-click or context menu of Solution 'QuickSolution' in Solution Explorer, choose Add > New
Project.
2. In the left pane, expand Visual C# and choose the Test category. In the middle pane, choose the MSTest
Test Project (.NET Core) project template. Name the project QuickTest, and then choose OK.
A second project is added to Solution Explorer, and a file named UnitTest1.cs opens in the editor.

2. In the Add a new project dialog box, enter the text unit test into the search box at the top, and then select
C# under Language.
3. Choose the MSTest Test Project (.NET Core) project template, and then choose Next.
4. Name the project QuickTest, and then choose Create.
A second project is added to Solution Explorer, and a file named UnitTest1.cs opens in the editor.

Add a project reference


We're going to use the new unit test project to test our method in the QuickDate project, so we need to add a
reference to that project. This creates a build dependency between the two projects, meaning that when you build
the solution, QuickDate is built before QuickTest.
1. Choose the Dependencies node in the QuickTest project, and from the right-click or context menu,
choose Add Reference.
The Reference Manager dialog box opens.
2. In the left pane, expand Projects and choose Solution. In the middle pane, choose the checkbox next to
QuickDate, and then choose OK.
A reference to the QuickDate project is added.

Add test code


1. Now we'll add test code to the C# test code file. Replace the contents of UnitTest1.cs with the following
code:
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace QuickTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestGetCurrentDate()
{
Assert.AreEqual(DateTime.Now.Date, QuickDate.Calendar.GetCurrentDate());
}
}
}

You'll see a red squiggle under some of the code. We'll fix this error by making the test project a friend
assembly to the QuickDate project.
2. Back in the QuickDate project, open the Calendar.cs file if it's not already open. Add the following using
statement and InternalsVisibleToAttribute attribute to the top of the file to resolve the error in the test
project.

using System.Runtime.CompilerServices;

[assembly: InternalsVisibleTo("QuickTest")]

The code file should look like this:

Project properties
The line in the Calendar.cs file that contains the InternalsVisibleToAttribute attribute references the assembly
name (file name) of the QuickTest project. The assembly name might not always be the same as the project name.
To find the assembly name of a project, open the project properties.
1. In Solution Explorer, select the QuickTest project. From the right-click or context menu, select
Properties, or just press Alt+Enter.
The property pages for the project open on the Application tab. The property pages contain various
settings for the project. Notice that the assembly name of the QuickTest project is indeed "QuickTest". If
you wanted to change it, this is where you'd do that. Then, when you build the test project, the name of the
resulting binary file would change from QuickTest.dll to whatever you chose.

2. Explore some of the other tabs of the project's property pages, such as Build and Debug. These tabs are
different for different types of projects.

Next steps
If you want to check that your unit test is working, choose Test > Run > All Tests from the menu bar. A window
called Test Explorer opens, and you should see that the TestGetCurrentDate test passes.
TIP
If Test Explorer doesn't open automatically, open it by choosing Test > Windows > Test Explorer from the menu bar.

TIP
If Test Explorer doesn't open automatically, open it by choosing Test > Test Explorer from the menu bar.

See also
Create projects and solutions
Manage project and solution properties
Manage references in a project
Develop code in Visual Studio without projects or solutions
Visual Studio IDE overview
Features of Visual Studio
3/3/2020 • 7 minutes to read • Edit Online

The Visual Studio IDE overview article gives a basic introduction to Visual Studio. This article describes features
that might be more appropriate for experienced developers, or those developers who are already familiar with
Visual Studio.

Modular installation
Visual Studio's modular installer enables you to choose and install workloads. Workloads are groups of features
needed for the programming language or platform you prefer. This strategy helps to keep the footprint of the
Visual Studio installation smaller, which means it installs and updates faster too.
If you haven't already installed Visual Studio, go to the Visual Studio downloads page to install it for free.
If you haven't already installed Visual Studio, go to the Visual Studio downloads page to install it for free.
To learn more about setting up Visual Studio on your system, see Install Visual Studio.

Create cloud-enabled apps for Azure


Visual Studio offers a suite of tools that enable you to easily create cloud-enabled applications powered by
Microsoft Azure. You can configure, build, debug, package, and deploy applications and services on Microsoft
Azure directly from the IDE. To get the Azure tools and project templates, select the Azure development
workload when you install Visual Studio.

After you install the Azure development workload, the following Cloud templates for C# are available in the
New Project dialog:
Visual Studio's Cloud Explorer lets you view and manage your Azure-based cloud resources within Visual Studio.
These resources may include virtual machines, tables, SQL databases, and more. Cloud Explorer shows the Azure
resources in all the accounts managed under the Azure subscription you're logged into. And if a particular
operation requires the Azure portal, Cloud Explorer provides links that take you to the place in the portal where
you need to go.

You can leverage Azure services for your apps using Connected Services such as:
Active Directory connected service so users can use their accounts from Azure Active Directory to connect to
web apps
Azure Storage connected service for blob storage, queues, and tables
Key Vault connected service to manage secrets for web apps
The available Connected Services depend on your project type. Add a service by right-clicking on the project in
Solution Explorer and choosing Add > Connected Service.
For more information, see Move to the cloud With Visual Studio and Azure.

Create apps for the web


The web drives our modern world, and Visual Studio can help you write apps for it. You can create web apps using
ASP.NET, Node.js, Python, JavaScript, and TypeScript. Visual Studio understands web frameworks like Angular,
jQuery, Express, and more. ASP.NET Core and .NET Core run on Windows, Mac, and Linux operating systems.
ASP.NET Core is a major update to MVC, WebAPI and SignalR, and runs on Windows, Mac, and Linux. ASP.NET
Core has been designed from the ground up to provide you with a lean and composable .NET stack for building
modern cloud-based web apps and services.
For more information, see Modern web tooling.

Build cross-platform apps and games


You can use Visual Studio to build apps and games for macOS, Linux, and Windows, as well as for Android, iOS,
and other mobile devices.
Build .NET Core apps that run on Windows, macOS, and Linux.
Build mobile apps for iOS, Android, and Windows in C# and F# by using Xamarin.
Use standard web technologies—HTML, CSS, and JavaScript—to build mobile apps for iOS, Android, and
Windows by using Apache Cordova.
Build 2D and 3D games in C# by using Visual Studio Tools for Unity.
Build native C++ apps for iOS, Android, and Windows devices. Share common code in libraries built for
iOS, Android, and Windows, by using C++ for cross-platform development.
Deploy, test, and debug Android apps with the Android emulator.
Connect to databases
Server Explorer helps you browse and manage SQL Server instances and assets locally, remotely, and on Azure,
Salesforce.com, Office 365, and websites. To open Server Explorer, on the main menu, choose View > Server
Explorer. For more information on using Server Explorer, see Add new connections.
SQL Server Data Tools (SSDT) is a powerful development environment for SQL Server, Azure SQL Database, and
Azure SQL Data Warehouse. It enables you to build, debug, maintain, and refactor databases. You can work with a
database project, or directly with a connected database instance on- or off-premises.
SQL Server Object Explorer in Visual Studio provides a view of your database objects similar to SQL Server
Management Studio. SQL Server Object Explorer enables you to do light-duty database administration and design
work. Work examples include editing table data, comparing schemas, executing queries by using contextual menus
right from SQL Server Object Explorer, and more.

Debug, test, and improve your code


When you write code, you need to run it and test it for bugs and performance. Visual Studio's cutting-edge
debugging system enables you to debug code running in your local project, on a remote device, or on a device
emulator. You can step through code one statement at a time and inspect variables as you go. You can set
breakpoints that are only hit when a specified condition is true. Debug options can be managed in the code editor
itself, so that you don't have to leave your code. To get more details about debugging in Visual Studio, see First
look at the debugger.
To learn more about improving the performance of your apps, checkout out Visual Studio's profiling feature.
For testing, Visual Studio offers unit testing, Live Unit Testing, IntelliTest, load and performance testing, and more.
Visual Studio also has advanced code analysis capabilities to catch design, security, and other types of flaws.

Deploy your finished application


When your application is ready to deploy to users or customers, Visual Studio provides the tools to do that.
Deployment options include to Microsoft Store, to a SharePoint site, or with InstallShield or Windows Installer
technologies. It's all accessible through the IDE. For more information, see Deploy applications, services, and
components.
Manage your source code and collaborate with others
You can manage your source code in Git repos hosted by any provider, including GitHub. Or use Azure DevOps
Services to manage code alongside bugs and work items for your whole project. See Get started with Git and
Azure Repos to learn more about managing Git repos in Visual Studio using Team Explorer. Visual Studio also has
other built-in source control features. To learn more about them, see New Git features in Visual Studio (blog).
Azure DevOps Services are cloud-based services to plan, host, automate, and deploy software and enable
collaboration in teams. Azure DevOps Services support both Git repos (distributed version control) and Team
Foundation Version Control (centralized version control). They support pipelines for continuous build and release
(CI/CD ) of code stored in version control systems. Azure DevOps Services also support Scrum, CMMI and Agile
development methodologies.
Team Foundation Server (TFS ) is the application lifecycle management hub for Visual Studio. It enables everyone
involved with the development process to participate using a single solution. TFS is useful for managing
heterogeneous teams and projects, too.
If you have an Azure DevOps organization or a Team Foundation Server on your network, you connect to it
through the Team Explorer window in Visual Studio. From this window you can check code into or out of source
control, manage work items, start builds, and access team rooms and workspaces. You can open Team Explorer
from the search box, or on the main menu from View > Team Explorer or from Team > Manage Connections.
The following image shows the Team Explorer window for a solution that is hosted in Azure DevOps Services.

You can also automate your build process to build the code that the devs on your team have checked into version
control. For example, you can build one or more projects nightly or every time that code is checked in. For more
information, see Azure Pipelines.

Extend Visual Studio


If Visual Studio doesn't have the exact functionality you need, you can add it! You can personalize the IDE based on
your workflow and style, add support for external tools not yet integrated with Visual Studio, and modify existing
functionality to increase your productivity. To find the latest version of the Visual Studio Extensibility Tools (VS
SDK), see Visual Studio SDK.
You can use the .NET Compiler Platform ("Roslyn") to write your own code analyzers and code generators. Find
everything you need at Roslyn.
Find existing extensions for Visual Studio created by Microsoft developers as well as our development community.
To learn more about extending Visual Studio, see Extend Visual Studio IDE.

See also
Visual Studio IDE overview
What's new in Visual Studio 2017
What's new in Visual Studio 2019
Install Visual Studio
1/16/2020 • 7 minutes to read • Edit Online

Welcome to Visual Studio 2019! In this version, it's easy to choose and install just the features you need. And
because of its reduced minimum footprint, it installs quickly and with less system impact.
Welcome to a new way to install Visual Studio! In this version, we've made it easier for you to choose and install
just the features you need. We've also reduced the minimum footprint of Visual Studio so that it installs more
quickly and with less system impact than ever before.

NOTE
This topic applies to Visual Studio on Windows. For Visual Studio for Mac, see Install Visual Studio for Mac.

Want to know more about what else is new in this version? See our release notes.
Want to know more about what else is new in this version? See our release notes.
Ready to install? We'll walk you through it, step-by-step.

Step 1 - Make sure your computer is ready for Visual Studio


Before you begin installing Visual Studio:
1. Check the system requirements. These requirements help you know whether your computer supports
Visual Studio 2017.
2. Apply the latest Windows updates. These updates ensure that your computer has both the latest security
updates and the required system components for Visual Studio.
3. Reboot. The reboot ensures that any pending installs or updates don't hinder the Visual Studio install.
4. Free up space. Remove unneeded files and applications from your %SystemDrive% by, for example,
running the Disk Cleanup app.
1. Check the system requirements. These requirements help you know whether your computer supports
Visual Studio 2019.
2. Apply the latest Windows updates. These updates ensure that your computer has both the latest security
updates and the required system components for Visual Studio.
3. Reboot. The reboot ensures that any pending installs or updates don't hinder the Visual Studio install.
4. Free up space. Remove unneeded files and applications from your %SystemDrive% by, for example,
running the Disk Cleanup app.
For questions about running previous versions of Visual Studio side by side with Visual Studio 2017, see the
Visual Studio compatibility details.
For questions about running previous versions of Visual Studio side by side with Visual Studio 2019, see the
Visual Studio 2019 Platform Targeting and Compatibility page.

Step 2 - Download Visual Studio


Next, download the Visual Studio bootstrapper file.
To get a bootstrapper for Visual Studio 2017, see the Visual Studio previous versions download page for details
on how to do so.
To do so, choose the following button, choose the edition of Visual Studio that you want, choose Save, and then
choose Open folder.
D O W N L O A D V IS U A L
S T U D IO

Step 3 - Install the Visual Studio installer


Run the bootstrapper file to install the Visual Studio Installer. This new lightweight installer includes everything
you need to both install and customize Visual Studio.
1. From your Downloads folder, double-click the bootstrapper that matches or is similar to one of the
following files:
vs_community.exe for Visual Studio Community
vs_professional.exe for Visual Studio Professional
vs_enterprise.exe for Visual Studio Enterprise
If you receive a User Account Control notice, choose Yes.
2. We'll ask you to acknowledge the Microsoft License Terms and the Microsoft Privacy Statement. Choose
Continue.

Step 4 - Choose workloads


After the installer is installed, you can use it to customize your installation by selecting the feature sets—or
workloads—that you want. Here's how.
1. Find the workload you want in the Visual Studio Installer.
For example, choose the ".NET desktop development" workload. It comes with the default core editor,
which includes basic code editing support for over 20 languages, the ability to open and edit code from
any folder without requiring a project, and integrated source code control.
2. After you choose the workload(s) you want, choose Install.
Next, status screens appear that show the progress of your Visual Studio installation.
1. Find the workload you want in the Visual Studio Installer.

For example, choose the "ASP.NET and web development" workload. It comes with the default core
editor, which includes basic code editing support for over 20 languages, the ability to open and edit code
from any folder without requiring a project, and integrated source code control.
2. After you choose the workload(s) you want, choose Install.
Next, status screens appear that show the progress of your Visual Studio installation.
TIP
At any time after installation, you can install workloads or components that you didn't install initially. If you have Visual
Studio open, go to Tools > Get Tools and Features... which opens the Visual Studio Installer. Or, open Visual Studio
Installer from the Start menu. From there, you can choose the workloads or components that you wish to install. Then,
choose Modify.

Step 5 - Choose individual components (Optional)


If you don't want to use the Workloads feature to customize your Visual Studio installation, or you want to add
more components than a workload installs, you can do so by installing or adding individual components from
the Individual components tab. Choose what you want, and then follow the prompts.

Step 6 - Install language packs (Optional)


By default, the installer program tries to match the language of the operating system when it runs for the first
time. To install Visual Studio in a language of your choosing, choose the Language packs tab from the Visual
Studio Installer, and then follow the prompts.
Change the installer language from the command line
Another way that you can change the default language is by running the installer from the command line. For
example, you can force the installer to run in English by using the following command:
vs_installer.exe --locale en-US . The installer will remember this setting when it is run the next time. The
installer supports the following language tokens: zh-cn, zh-tw, cs-cz, en-us, es-es, fr-fr, de-de, it-it, ja-jp, ko-kr, pl-
pl, pt-br, ru-ru, and tr-tr.

Step 7 - Select the installation location (Optional)


New in 15.7: You can now reduce the installation footprint of Visual Studio on your system drive. You can
choose to move the download cache, shared components, SDKs, and tools to different drives, and keep Visual
Studio on the drive that runs it the fastest.
You can reduce the installation footprint of Visual Studio on your system drive. You can choose to move the
download cache, shared components, SDKs, and tools to different drives, and keep Visual Studio on the drive
that runs it the fastest.

IMPORTANT
You can select a different drive only when you first install Visual Studio. If you've already installed it and want to change
drives, you must uninstall Visual Studio and then reinstall it.

For more information, see the Select installation locations page.

Step 8 - Start developing


1. After Visual Studio installation is complete, choose the Launch button to get started developing with
Visual Studio.
2. Choose File, and then choose New Project.
3. Select a project type.
For example, to build a C++ app, choose Installed, expand Visual C++, and then choose the C++
project type that you want to build.
To build a C# app, choose Installed, expand Visual C#, and then choose the C# project type that you
want to build.
1. After Visual Studio installation is complete, choose the Launch button to get started developing with
Visual Studio.
2. On the start window, choose Create a new project.
3. In the search box, enter the type of app you want to create to see a list of available templates. The list of
templates depends on the workload(s) that you chose during installation. To see different templates,
choose different workloads.
You can also filter your search for a specific programming language by using the Language drop-down
list. You can filter by using the Platform list and the Project type list, too.
4. Visual Studio opens your new project, and you're ready to code!

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio
installation and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and
in the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation
in the Gitter community.

See also
Update Visual Studio
Modify Visual Studio
Uninstall Visual Studio
Create an offline installation of Visual Studio
Use command-line parameters to install Visual Studio
Install Visual Studio for Mac
Create an offline installation of Visual Studio
1/16/2020 • 6 minutes to read • Edit Online

We designed Visual Studio 2017 to work well in a variety of network and computer configurations. While we
recommend that you try the Visual Studio web installer—which is a small file and allows you to stay current with
all the latest fixes and features—we understand that you might not be able to.
We designed Visual Studio 2019 to work well in a variety of network and computer configurations. While we
recommend that you try the Visual Studio web installer—which is a small file and allows you to stay current with
all the latest fixes and features—we understand that you might not be able to.
For example, you might have an unreliable internet connection or one that has low bandwidth. If so, you have a
few options: You can use the new "Download all, then install" feature to download the files before you install, or
you can use the command line to create a local cache of the files.

NOTE
If you are an enterprise administrator who wants to perform a deployment of Visual Studio to a network of client
workstations that are firewalled from the internet, see our Create a network installation of Visual Studio and Install
certificates required for Visual Studio offline installation pages.

Use the "Download all, then install" feature


New in version 15.8: After you download the web installer, select the new Download all, then install option
from the Visual Studio Installer. Then, continue with your installation.

After you download the web installer, select the new Download all, then install option from the Visual Studio
Installer. Then, continue with your installation.

We designed the "Download all, then install" feature so that you can download Visual Studio as a single
installation for the same computer on which you downloaded it. That way, you can safely disconnect from the
web before you install Visual Studio.
IMPORTANT
Do not use the "Download all, then install" feature to create an offline cache that you intend to transfer to another
computer. It's not designed to work that way.

If you want to create an offline cache to install Visual Studio on another computer, see the Use the command line to create
a local cache section of this page for information about how to create a local cache, or the Create a network installation of
Visual Studio page for information about how to create a network cache.

Use the command line to create a local cache


After you download a small bootstrapper, use the command line to create a local cache. Then, use the local cache
to install Visual Studio. (This process replaces the ISO files that were available for previous versions.)
Here's how.
Step 1 - Download the Visual Studio bootstrapper
You must have an internet connection to complete this step.
To get a bootstrapper for Visual Studio 2017, see the Visual Studio previous versions download page for details
on how to do so.
Your setup executable—or to be more specific, the bootstrapper file—should match or be similar to one of the
following.

EDITION FILENAME

Visual Studio Community vs_community.exe

Visual Studio Professional vs_professional.exe

Visual Studio Enterprise vs_enterprise.exe

Visual Studio Build Tools vs_buildtools.exe

Start by downloading the Visual Studio bootstrapper for your chosen edition of Visual Studio. Your setup file—
or bootstrapper—will match or be similar to one of the following.

EDITION FILE

Visual Studio Community vs_community.exe

Visual Studio Professional vs_professional.exe

Visual Studio Enterprise vs_enterprise.exe

Visual Studio Build Tools vs_buildtools.exe

TIP
If you previously downloaded a bootstrapper file and want to verify its version, here's how. In Windows, open File Explorer,
right-click the bootstrapper file, choose Properties, choose the Details tab, and then view the Product version number.
To match that number to a release of Visual Studio, see the Visual Studio build numbers and release dates page.
Step 2 - Create a local install cache
You must have an internet connection to complete this step.

IMPORTANT
If you install Visual Studio Community, you must activate it within 30 days of installation. This requires an internet
connection.

Open a command prompt and use one of the commands from the following examples. The examples that are
listed here assume that you're using the Community edition of Visual Studio; adjust the command as appropriate
for your edition.

TIP
To prevent an error, make sure that your full installation path is less than 80 characters.

For .NET web and .NET desktop development, run:

vs_community.exe --layout c:\vslayout --add Microsoft.VisualStudio.Workload.ManagedDesktop --add


Microsoft.VisualStudio.Workload.NetWeb --add Component.GitHub.VisualStudio --includeOptional --lang
en-US

For .NET desktop and Office development, run:

vs_community.exe --layout c:\vslayout --add Microsoft.VisualStudio.Workload.ManagedDesktop --add


Microsoft.VisualStudio.Workload.Office --includeOptional --lang en-US

For C++ desktop development, run:

vs_community.exe --layout c:\vslayout --add Microsoft.VisualStudio.Workload.NativeDesktop --


includeRecommended --lang en-US

To create a complete local layout with all features (this will take a long time—we have lots of features!),
run:

vs_community.exe --layout c:\vslayout --lang en-US

NOTE
A complete Visual Studio layout requires a minimum of 35 GB of disk space. For more information, see System
requirements. And for information about how to create a layout with only the components you want to install, see Use
command-line parameters to install Visual Studio.

NOTE
A complete Visual Studio layout requires a minimum of 35 GB of disk space. For more information, see System
requirements. And for information about how to create a layout with only the components you want to install, see Use
command-line parameters to install Visual Studio.

If you want to install a language other than English, change en-US to a locale from the List of language locales.
Then, use the list of the components and workloads available to further customize your installation cache.
Step 3 - Install Visual Studio from the local cache

TIP
When you run from a local install cache, setup uses the local versions of each of these files. But if you select components
during installation that aren't in the cache, setup attempts to download them from the internet.

IMPORTANT
For offline installations, if you get an error message that says "A product matching the following parameters cannot be
found", make sure that you are using the --noweb switch with version 16.3.5 or later.

To make sure that you install only the files that you've previously downloaded, use the same command-line
options that you used to create the layout cache. For example, if you created a layout cache with the following
command:

vs_community.exe --layout c:\vslayout --add Microsoft.VisualStudio.Workload.ManagedDesktop --add


Microsoft.VisualStudio.Workload.NetWeb --add Component.GitHub.VisualStudio --includeOptional --lang en-US

Then use this command to run the installation:

c:\vslayout\vs_community.exe --add Microsoft.VisualStudio.Workload.ManagedDesktop --add


Microsoft.VisualStudio.Workload.NetWeb --add Component.GitHub.VisualStudio --includeOptional

For more examples of how to use command-line parameters, see the Command-line parameter examples for
Visual Studio installation page.

NOTE
If you get an error that a signature is invalid, you must install updated certificates. Open the Certificates folder in your
offline cache. Double-click each of the certificate files, and then click through the Certificate Manager wizard. If you're asked
for a password, leave it blank.

List of language locales


LANGUAGE-LOCALE LANGUAGE

cs-CZ Czech

de-DE German

en-US English

es-ES Spanish

fr-FR French

it-IT Italian

ja-JP Japanese
LANGUAGE-LOCALE LANGUAGE

ko-KR Korean

pl-PL Polish

pt-BR Portuguese - Brazil

ru-RU Russian

tr-TR Turkish

zh-CN Chinese - Simplified

zh-TW Chinese - Traditional

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio
installation and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and
in the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Create a network installation of Visual Studio
Update a network-based installation of Visual Studio
Install certificates required for Visual Studio offline installation
Use command-line parameters to install Visual Studio
Visual Studio workload and component IDs
Install certificates required for Visual Studio offline
installation
1/16/2020 • 7 minutes to read • Edit Online

Visual Studio is primarily designed to be installed on an internet-connected machine, since many components are
updated regularly. However, with some extra steps, it's possible to deploy Visual Studio in an environment where a
working internet connection is unavailable.
The Visual Studio setup engine installs only content that is trusted. It does this by checking Authenticode
signatures of the content being downloaded and verifying that all content is trusted before installing it. This keeps
your environment safe from attacks where the download location is compromised. Visual Studio setup therefore
requires that several standard Microsoft root and intermediate certificates are installed and up-to- date on a user's
machine. If the machine has been kept up to date with Windows Update, signing certificates usually are up to date.
If the machine is connected to the internet, during installation Visual Studio may refresh certificates as necessary
to verify file signatures. If the machine is offline, the certificates must be refreshed another way.

How to refresh certificates when offline


There are three options for installing or updating certificates in an offline environment.
Option 1 - Manually install certificates from a layout folder
When you create a network layout, the necessary certificates are downloaded to the Certificates folder. You can
then manually install the certificates by double-clicking each of the certificate files, and then clicking through the
Certificate Manager wizard. If asked for a password, leave it blank.
Update: For Visual Studio 2017 version 15.8 Preview 2 or later, you can manually install the certificates by right-
clicking each of the certificate files, selecting Install Certificate, and then clicking through the Certificate Manager
wizard.
When you create a network layout, the necessary certificates are downloaded to the Certificates folder. You can
manually install the certificates by right-clicking each of the certificate files, selecting Install Certificate, and then
clicking through the Certificate Manager wizard. If asked for a password, leave it blank.
Option 2 - Distribute trusted root certificates in an enterprise environment
For enterprises with offline machines that do not have the latest root certificates, an administrator can use the
instructions on the Configure Trusted Roots and Disallowed Certificates page to update them.
Option 3 - Install certificates as part of a scripted deployment of Visual Studio
If you are scripting the deployment of Visual Studio in an offline environment to client workstations, you should
follow these steps:
1. Copy the Certificate Manager Tool (certmgr.exe) to the installation share (for example,
\server\share\vs2017). Certmgr.exe is not included as part of Windows itself, but is available as part of the
Windows SDK.
2. Create a batch file with the following commands:
certmgr.exe -add -c certificates\manifestSignCertificates.p12 -n "Microsoft Code Signing PCA 2011" -s -
r LocalMachine CA

certmgr.exe -add -c certificates\manifestSignCertificates.p12 -n "Microsoft Root Certificate Authority"


-s -r LocalMachine root

certmgr.exe -add -c certificates\manifestCounterSignCertificates.p12 -n "Microsoft Time-Stamp PCA 2010"


-s -r LocalMachine CA

certmgr.exe -add -c certificates\manifestCounterSignCertificates.p12 -n "Microsoft Root Certificate


Authority" -s -r LocalMachine root

certmgr.exe -add -c certificates\vs_installer_opc.SignCertificates.p12 -n "Microsoft Code Signing PCA"


-s -r LocalMachine CA

certmgr.exe -add -c certificates\vs_installer_opc.SignCertificates.p12 -n "Microsoft Root Certificate


Authority" -s -r LocalMachine root

Update: For Visual Studio 2017 version 15.8 Preview 2 or later, create the batch file with the following
commands:

certmgr.exe -add [layout path]\certificates\manifestRootCertificate.cer -n "Microsoft Root Certificate


Authority 2011" -s -r LocalMachine root

certmgr.exe -add [layout path]\certificates\manifestCounterSignRootCertificate.cer -n "Microsoft Root


Certificate Authority 2010" -s -r LocalMachine root

certmgr.exe -add [layout path]\certificates\vs_installer_opc.RootCertificate.cer -n "Microsoft Root


Certificate Authority" -s -r LocalMachine root

Alternatively, create a batch file that uses certutil.exe, which ships with Windows, with the following
commands:

certutil.exe -addstore -f "Root" "[layout path]\certificates\manifestRootCertificate.cer"

certutil.exe -addstore -f "Root" "[layout path]\certificates\manifestCounterSignRootCertificate.cer"

certutil.exe -addstore -f "Root" "[layout path]\certificates\vs_installer_opc.RootCertificate.cer"

3. Deploy the batch file to the client. This command should be run from an elevated process.
1. Copy the Certificate Manager Tool (certmgr.exe) to the installation share (for example,
\server\share\vs2019). Certmgr.exe is not included as part of Windows itself, but is available as part of the
Windows SDK.
2. Create a batch file with the following commands:

certmgr.exe -add [layout path]\certificates\manifestRootCertificate.cer -n "Microsoft Root Certificate


Authority 2011" -s -r LocalMachine root

certmgr.exe -add [layout path]\certificates\manifestCounterSignRootCertificate.cer -n "Microsoft Root


Certificate Authority 2010" -s -r LocalMachine root

certmgr.exe -add [layout path]\certificates\vs_installer_opc.RootCertificate.cer -n "Microsoft Root


Certificate Authority" -s -r LocalMachine root

Alternatively, create a batch file that uses certutil.exe, which ships with Windows, with the following
commands:
certutil.exe -addstore -f "Root" "[layout path]\certificates\manifestRootCertificate.cer

certutil.exe -addstore -f "Root" [layout path]\certificates\manifestCounterSignRootCertificate.cer"

certutil.exe -addstore -f "Root" "[layout path]\certificates\vs_installer_opc.RootCertificate.cer"

3. Deploy the batch file to the client. This command should be run from an elevated process.

What are the certificates files in the Certificates folder?


The three .P12 files in this folder each contain an intermediate certificate and a root certificate. Most systems that
are current with Windows Update have these certificates already installed.
ManifestSignCertificates.p12 contains:
Intermediate certificate: Microsoft Code Signing PCA 2011
Not required. Improves performance in some scenarios if present.
Root certificate: Microsoft Root Certificate Authority 2011
Required on Windows 7 Service Pack 1 systems that do not have the latest Windows Updates
installed.
ManifestCounterSignCertificates.p12 contains:
Intermediate certificate: Microsoft Time-Stamp PCA 2010
Not required. Improves performance in some scenarios if present.
Root certificate: Microsoft Root Certificate Authority 2010
Required for Windows 7 Service Pack 1 systems that do not have the latest Windows Updates
installed.
Vs_installer_opc.SignCertificates.p12 contains:
Intermediate certificate: Microsoft Code Signing PCA
Required for all systems. Note that systems with all updates applied from Windows Update might
not have this certificate.
Root certificate: Microsoft Root Certificate Authority
Required. This certificate ships with systems running Windows 7 or later.
Update: For Visual Studio 2017 version 15.8 Preview 2 or later, the Visual Studio Installer requires only the root
certificates to be installed on the system. These certificates are stored in .cer files instead of .p12.
ManifestSignCertificates.cer contains:
Root certificate: Microsoft Root Certificate Authority 2011
Required on Windows 7 Service Pack 1 systems that do not have the latest Windows Updates
installed.
ManifestCounterSignCertificates.cer contains:
Root certificate: Microsoft Root Certificate Authority 2010
Required for Windows 7 Service Pack 1 systems that do not have the latest Windows Updates
installed.
Vs_installer_opc.SignCertificates.cer contains:
Root certificate: Microsoft Root Certificate Authority
Required. This certificate ships with systems running Windows 7 or later.
The Visual Studio Installer requires only the root certificates to be installed on the system.

Why are the certificates from the Certificates folder not installed
automatically?
When a signature is verified in an online environment, Windows APIs are used to download and add the
certificates to the system. Verification that the certificate is trusted and allowed via administrative settings occurs
during this process. This verification process cannot occur in most offline environments. Installing the certificates
manually allows enterprise administrators to ensure the certificates are trusted and meet the security policy of
their organization.

Checking if certificates are already installed


One way to check on the installing system is to follow these steps:
1. Run mmc.exe.
a. Click File, and then select Add/Remove Snap-in.
b. Double-click Certificates, select Computer account, and then click Next.
c. Select Local computer, click Finish, and then click OK.
d. Expand Certificates (Local Computer).
e. Expand Trusted Root Certification Authorities, and then select Certificates.
Check this list for the necessary root certificates.
f. Expand Intermediate Certification Authorities, and then select Certificates.
Check this list for the required intermediate certificates.
2. Click File, and then select Add/Remove Snap-in.
a. Double-click Certificates, select My user account, click Finish, and then click OK.
b. Expand Certificates – Current User.
c. Expand Intermediate Certification Authorities, and then select Certificates.
Check this list for the required intermediate certificates.
If the certificates names were not in the Issued To columns, they must be installed. If an intermediate certificate
was only in the Current User Intermediate Certificate store, then it is available only to the user that is logged in.
You might need to install it for other users.

Install Visual Studio


After you install the certificates, deployment of Visual Studio can proceed by using the instructions from the
Deploying from a network installation section of the "Create a network installation of Visual Studio" page.

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio installation
and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and in
the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Install Visual Studio
Visual Studio administrator guide
Use command-line parameters to install Visual Studio
Visual Studio workload and component IDs
Install Visual Studio versions side-by-side
1/16/2020 • 3 minutes to read • Edit Online

You can install Visual Studio on a computer that has an earlier or later version of Visual Studio already installed.
Before you install versions side-by-side, review the following conditions:
If you use Visual Studio 2017 to open a solution that was created in Visual Studio 2015, you can later open
and modify the solution again in the earlier version as long as you haven't implemented any features that
are specific to Visual Studio 2017.
If you try to use Visual Studio 2017 to open a solution that was created in Visual Studio 2015 or an earlier
version, you might need to modify your projects and files to be compatible with Visual Studio 2017. For
more information, see the Port, migrate, and upgrade Visual Studio Projects page.
Before you install versions side-by-side, review the following conditions:
If you use Visual Studio 2019 to open a solution that was created in Visual Studio 2017, you can later open
and modify the solution again in the earlier version as long as you haven't implemented any features that
are specific to Visual Studio 2019.
If you try to use Visual Studio 2019 to open a solution that was created in Visual Studio 2017 or an earlier
version, you might need to modify your projects and files to be compatible with Visual Studio 2019. For
more information, see the Port, migrate, and upgrade Visual Studio Projects page.
If you uninstall a version of Visual Studio on a computer that has more than one version installed, the file
associations for Visual Studio are removed for all versions.
Visual Studio doesn't automatically upgrade extensions because not all extensions are compatible. You must
reinstall the extensions from the Visual Studio Marketplace or the software publisher.

.NET Framework versions and side-by-side installations


Visual Basic, Visual C#, and Visual F# projects use the Target Framework option in the Project Designer to
specify which version of the .NET Framework that a project uses. For a C++ project, you can manually change the
target framework by modifying the .vcxproj file. For more information, see the Version compatibility in the .NET
Framework page.
When you create a project, you can specify which version of the .NET Framework the project targets in the .NET
Framework list in the New Project dialog box.
For language-specific information, see the appropriate topic in the following table.

LANGUAGE TOPIC

Visual Basic Application Page, Project Designer (Visual Basic)

Visual C# Application Page, Project Designer (C#)

Visual F# Develop with Visual F# in Visual Studio

C++ How to: Modify the target framework and platform toolset
Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio installation
and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and in
the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Install Visual Studio
Port, migrate, and upgrade Visual Studio projects
Building C/C++ isolated applications and side-by-side assemblies

LANGUAGE TOPIC

Visual Basic Application Page, Project Designer (Visual Basic)

Visual C# Application Page, Project Designer (C#)

Visual F# Develop with Visual F# in Visual Studio

C++ How to: Modify the target framework and platform toolset

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio installation
and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and in
the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Install Visual Studio
Port, migrate, and upgrade Visual Studio projects
Building C/C++ isolated applications and side-by-side assemblies
Select the installation locations in Visual Studio
1/16/2020 • 3 minutes to read • Edit Online

You can reduce the installation footprint of Visual Studio on your system drive by changing the location for some
of its files. Specifically, you can use a different location for the download cache, shared components, SDKs, and
tools files.
New in version 15.7: You can reduce the installation footprint of Visual Studio on your system drive by changing
the location for some of its files. Specifically, you can use a different location for the download cache, shared
components, SDKs, and tools files.

NOTE
There are some tools and SDKs that have different rules on where they can be installed. Such tools and SDKs are installed on
your system drive even if you choose another location.

Ready to get started? Here's how.


1. When you install Visual Studio, choose the Installation locations tab.

2. In the Visual Studio IDE section, accept the default. Visual Studio installs the core product and includes
files that are specific to this version of Visual Studio.

TIP
If your system drive is a solid-state drive (SSD), we recommend that you accept the default location on your system
drive. The reason? When you develop with Visual Studio, you read from and write to a lot of files, which increases the
disk I/O activity. It's best to choose your fastest drive to handle the load.
3. In the Download cache section, decide if you want to keep the download cache, and then decide where
you want to store its files.

a. Check or uncheck Keep download cache after the installation.


If you decide not to keep the download cache, the location is used only temporarily. This action won't
affect or delete files from previous installations.
b. Specify the drive where you want to store installation files and manifests from the download cache.
For example, if you select the "Desktop development with C++" workload, the temporarily required
size is 1.58 GB on your system drive, which is then freed as soon as the installation completes.

IMPORTANT
This location is set with your first installation and cannot be changed later from the installer UI. Instead, you
must use command-line parameters to move the download cache.

4. In the Shared components, tools, and SDKs section, specify the drive where you want to store the files
that are shared by side-by-side Visual Studio installations. SDKs and tools are also stored in this directory.

1. When you install Visual Studio, choose the Installation locations tab.

2. In the Visual Studio IDE section, accept the default. Visual Studio installs the core product and includes
files that are specific to this version of Visual Studio.
TIP
If your system drive is a solid-state drive (SSD), we recommend that you accept the default location on your system
drive. The reason? When you develop with Visual Studio, you read from and write to a lot of files, which increases the
disk I/O activity. It's best to choose your fastest drive to handle the load.

3. In the Download cache section, decide if you want to keep the download cache, and then decide where
you want to store its files.
Check or uncheck Keep download cache after the installation.
If you decide not to keep the download cache, the location is used only temporarily. This action won't
affect or delete files from previous installations.
Specify the drive where you want to store installation files and manifests from the download cache.
For example, if you select the "Desktop development with C++" workload, the temporarily required
size is 1.58 GB on your system drive, which is then freed as soon as the installation completes.

IMPORTANT
This location is set with your first installation and cannot be changed later from the installer UI. Instead, you
must use command-line parameters to move the download cache.

4. In the Shared components, tools, and SDKs section, note that it uses the same drive that you chose in
the "Download cache" section. The \Microsoft\VisualStudio\Shared directory is where Visual Studio stores
the files that are shared by side-by-side Visual Studio installations. SDKs and tools are also stored in this
directory.

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio installation
and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and in
the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Install Visual Studio
Update Visual Studio
Modify Visual Studio
Uninstall Visual Studio
Import or export installation configurations
1/16/2020 • 2 minutes to read • Edit Online

You can configure Visual Studio across your organization with installation configuration files. To do so, simply
export the workload and component information to a .vsconfig file by using the Visual Studio installer. You can
then import the configuration into new or existing installations, and share them with others, too.
Here's how.

NOTE
This functionality is available only in Visual Studio 2017 version 15.9 and later.

Export a configuration
You can choose to export an installation configuration file from either a previously installed instance of Visual
Studio or one that you're currently installing.
1. Open the Visual Studio Installer.
2. On the product card, choose the More button, and then select Export configuration.

3. Browse to or type the location where you want to save your .vsconfig file, and then choose Review details.

4. Make sure you've got the workloads and components that you want, and then choose Export.
Import a configuration
When you're ready to import an installation configuration file, follow these steps.
1. Open the Visual Studio Installer.
2. On the product card, choose the More button, and then select Import configuration.
3. Locate the .vsconfig file that you want to import, and then choose Review details.
4. Make sure you've got the workloads and components that you want, and then choose Close.

Automatically install missing components


New in Visual Studio 2019: When you save a .vsconfig file to your solution root directory and then open a
solution, Visual Studio automatically detects which components are missing and prompts you to install them.

You can also generate a .vsconfig file right from Solution Explorer.
1. Right-click on your solution file.
2. Choose Add > Installation Configuration File.
3. Confirm the location where you want to save the .vsconfig file, and then choose Review details.
4. Make sure you've got the workloads and components that you want, and then choose Export.

NOTE
For more information, see the Configure Visual Studio across your organization with .vsconfig blog post.

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio installation
and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and in
the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Create a network installation of Visual Studio
Update a networked-based installation of Visual Studio
Control updates to Visual Studio deployments
Set defaults for enterprise deployments
Troubleshoot Visual Studio installation and
upgrade issues
1/16/2020 • 5 minutes to read • Edit Online

IMPORTANT
Having a problem installing? We can help. We offer a live chat (English only) support option.

This troubleshooting guide includes step-by-step instructions that should resolve most installation issues.

Online installations
The following steps are optimized for a typical online installation. For an issue that affects an offline
installation, please see How to troubleshoot an offline installation.
Step 1 - Check whether this problem is a known issue
There are some known issues with the Visual Studio Installer that Microsoft is working on fixing. To see if
there's a workaround for your problem, check the Known Issues section of our release notes.
There are some known issues with the Visual Studio Installer that Microsoft is working on fixing. To see if
there's a workaround for your problem, check the Known Issues section of our release notes.
Step 2 - Check with the developer community
Search on your error message with the Visual Studio Developer Community. Other members of the
community might have documented a solution to your problem.
Step 3 - Delete the Visual Studio Installer directory to fix upgrade problems
The Visual Studio Installer bootstrapper is a minimal light-weight executable that installs the rest of the
Visual Studio Installer. Deleting Visual Studio Installer files and then rerunning the bootstrapper might solve
some update failures.

NOTE
Performing the following actions reinstalls the Visual Studio Installer files and resets the installation metadata.

1. Close the Visual Studio Installer.


2. Delete the Visual Studio Installer directory. Typically, the directory is
C:\Program Files (x86)\Microsoft Visual Studio\Installer .
3. Run the Visual Studio Installer bootstrapper. You might find the bootstrapper in your Downloads folder
with a file name that follows a vs_[Visual Studio edition]__*.exe pattern. If you don't find that
application, you can download the bootstrapper by going to the Visual Studio downloads page and
clicking Download for your edition of Visual Studio. Then, run the executable to reset your installation
metadata.
4. Try to install or update Visual Studio again. If the Installer continues to fail, go to the next step.
1. Close the Visual Studio Installer.
2. Delete the Visual Studio Installer directory. Typically, the directory is
C:\Program Files (x86)\Microsoft Visual Studio\Installer .
3. Run the Visual Studio Installer bootstrapper. You might find the bootstrapper in your Downloads folder
with a file name that follows a vs_[Visual Studio edition]__*.exe pattern. If you don't find that
application, you can download the bootstrapper by going to the Visual Studio downloads page and
clicking Download for your edition of Visual Studio. Then, run the executable to reset your installation
metadata.
4. Try to install or update Visual Studio again. If the Installer continues to fail, go to the next step.
Step 4 - Report a problem
In some situations, such as those related to corrupted files, the problems might have to be looked at on a
case-by-case basis. To help us help you, please do the following:
1. Collect your setup logs. See How to get the Visual Studio installation logs for details.
2. Open the Visual Studio Installer, and then click Report a problem to open the Visual Studio Feedback
tool.

3. Give your problem report a title, and provide relevant details. Click Next to go to the Attachments
section, and then attach the generated log file (typically, the file is at %TEMP%\vslogs.zip ).
4. Click Next to review your problem report, and then click Submit.
1. Collect your setup logs. See How to get the Visual Studio installation logs for details.
2. Open the Visual Studio Installer, and then click Report a problem to open the Visual Studio Feedback
tool.

3. Give your problem report a title, and provide relevant details. Click Next to go to the Attachments
section, and then attach the generated log file (typically, the file is at %TEMP%\vslogs.zip ).
4. Click Next to review your problem report, and then click Submit.
Step 5 - Run InstallCleanup.exe to remove installation files
As a last resort, you can remove Visual Studio to remove all installation files and product information.
1. Follow the instructions in Remove Visual Studio.
2. Rerun the bootstrapper that's described in Step 3 - Delete the Visual Studio Installer directory to fix
upgrade problems.
3. Try to install or update Visual Studio again.
Step 6 - Contact us (optional)
If none of the previous steps help you successfully install or upgrade Visual Studio, contact us by using our
live chat support option (English only) for further assistance.

Offline installations
Here is a table of known issues and some workarounds that might help you when you create an offline
installation and then install from a local layout.

ISSUE ITEM SOLUTION

Users do not have access to files. permissions (ACLs) Make sure that you adjust the
permissions (ACLs) so that they grant
Read access to other users before you
share the offline install.

New workloads, components, or --layout Make sure that you have internet
languages fail to install. access if you install from a partial
layout and select workloads,
components, or languages that were
not downloaded previously in that
partial layout.

For more information about how to resolve issues with a network installation, see Troubleshoot network-
related errors when you install or use Visual Studio.

Installation logs
Setup logs are needed to troubleshoot most installation issues. When you submit an issue by using Report a
Problem in the Visual Studio Installer, these logs are automatically included in your report.
If you contact Microsoft Support, you might need to provide these setup logs by using the Microsoft Visual
Studio and .NET Framework Log Collection Tool. The log collection tool collects setup logs from all
components installed by Visual Studio, including .NET Framework, Windows SDK, and SQL Server. It also
collects computer information, a Windows Installer inventory, and Windows event log information for Visual
Studio Installer, Windows Installer, and System Restore.
To collect the logs:
1. Download the tool.
2. Open an administrative command prompt.
3. Run Collect.exe from the directory where you saved the tool.
4. Find the resulting vslogs.zip file in your %TEMP% directory, for example,
C:\Users\YourName\AppData\Local\Temp\vslogs.zip .

NOTE
The tool must be run under the same user account that the failed installation was run under. If you are running the
tool from a different user account, set the –user:<name> option to specify the user account under which the failed
installation was run. Run Collect.exe -? from an administrator command prompt for additional options and usage
information.

Live help
If the solutions listed in this troubleshooting guide do not help you to successfully install or upgrade Visual
Studio, use our live chat support option (English only) for further assistance.
See also
Remove Visual Studio
Install and use Visual Studio and Azure Services behind a firewall or proxy server
Tools for detecting and managing Visual Studio instances
Visual Studio administrator guide
Update Visual Studio to the most recent release
2/19/2020 • 7 minutes to read • Edit Online

We encourage you to update to the most recent release of Visual Studio 2017 so that you always get the latest
features, fixes, and improvements.
And if you'd like to try out our newest version, consider downloading and installing Visual Studio 2019 instead.

IMPORTANT
You must log on with an account that has administrative permissions to install, update, or modify Visual Studio. For more
information, see User Permissions and Visual Studio.

NOTE
This topic applies to Visual Studio on Windows. For Visual Studio for Mac, see Update Visual Studio for Mac.

Update Visual Studio 2017 version 15.6 or later


We've streamlined the installation and update experience to make it easier to use directly from within the IDE.
Here's how to update from version 15.6 and later to newer versions of Visual Studio.
Using the Notifications hub
When there's an update, there's a corresponding notification flag in Visual Studio.
1. Save your work.
2. Choose the notification flag to open the Notifications hub, and then choose the update that you want to
install.

TIP
An update for an edition of Visual Studio 2017 is cumulative, so always choose to install the one with the most
recent version number.

3. When the Update dialog box opens, choose Update Now.


If a User Access Control dialog box opens, choose Yes. Next, a "Please wait" dialog might open for a
moment, and then the Visual Studio Installer opens to start the update.

Your update continues. Then, when it's complete, Visual Studio restarts.

NOTE
When you run Visual Studio in administrator mode, you must manually restart Visual Studio after the update.

Using the IDE


You can check for an update and then install the update from the menu bar in Visual Studio.
1. Save your work.
2. Choose Help > Check for Updates.
3. When the Update dialog box opens, choose Update Now.
The update proceeds as described in the previous section, and then Visual Studio restarts after the update
completes successfully.

NOTE
When you run Visual Studio in administrator mode, you must manually restart Visual Studio after the update.

Using the Visual Studio Installer


As in earlier versions of Visual Studio, you can use the Visual Studio Installer to install an update.
1. Save your work.
2. Open the installer. The Visual Studio Installer might require updating before you continue.

NOTE
On a computer running Windows 10, you can find the installer under the letter V as the Visual Studio Installer, or
under the letter M as the Microsoft Visual Studio Installer.

3. On the Product page in the installer, look for the edition of Visual Studio that you installed previously.
4. If an update is available, you see an Update button. (It might take a few seconds for the installer to
determine whether an update is available.)
Choose the Update button to install the updates.
Update Visual Studio 2017 version 15.5 or earlier
If you're using an earlier version, here's how to apply an update from Visual Studio 2017 version 15.0 through
version 15.5.
Update by using the Notifications hub
1. When there are updates, there's a corresponding notification flag in Visual Studio.

Choose the notification flag to open the Notifications hub.

TIP
An update for an edition of Visual Studio 2017 is cumulative, so always choose to install the one with the most
recent version number.

2. Choose "Visual Studio Update" is available, which opens the Extensions and Updates dialog box.

3. In the Extensions and Updates dialog box, choose the Update button.

More about Visual Studio notifications


Visual Studio notifies you when an update is available for Visual Studio itself or for any components, and also
when certain events occur in the Visual Studio environment.
When the notification flag is yellow, there's a Visual Studio product update available for you to install.
When the notification flag is red, there's a problem with your license.
When the notification flag is black, there are optional or informational messages to review.
Choose the notifications flag to open the Notifications hub and then choose the notifications that you want to
act on. Or, choose to ignore or dismiss a notification.

If you choose to ignore a notification, Visual Studio stops showing it. If you want to reset the list of ignored
notifications, choose the Settings button in the Notifications hub.

Update by using the Visual Studio Installer


1. Open the installer. You might need to update the installer before continuing. If this is the case, you're
prompted to do so.

NOTE
On a computer running Windows 10, you can find the installer under the letter V as the Visual Studio Installer, or
under the letter M as the Microsoft Visual Studio Installer.

2. On the Product page in the installer, look for the edition of Visual Studio that installed previously.
3. If an update is available, you see an Update button. (It might take a few seconds for the installer to
determine whether an update is available.)
Choose the Update button to install the updates.

We encourage you to update to the most recent release of Visual Studio 2019 so that you always get the latest
features, fixes, and improvements.
If you haven't already installed Visual Studio 2019, go to the Visual Studio downloads page to install it for free. If
you are currently using a different version of Visual Studio, you can either install Visual Studio versions side-by-
side, or uninstall previous versions of Visual Studio.
IMPORTANT
You must log on with an account that has administrative permissions to install, update, or modify Visual Studio. For more
information, see User Permissions and Visual Studio.

NOTE
This topic applies to Visual Studio on Windows. For Visual Studio for Mac, see Update Visual Studio for Mac.

Here's how to update Visual Studio 2019.

Use the Visual Studio Installer


1. Open the installer.

You might have to update the installer before continuing. If so, follow the prompts.
2. In the installer, look for the edition of Visual Studio that you installed.
For example, if you previously installed Visual Studio Community 2019 and there's an update for it, then
an Update available message appears in the installer.
3. Choose Update to install the updates.

4. After the update is complete, you might be asked to restart your computer. If so, do so, and then start
Visual Studio as you typically would.
If you aren't asked to restart your computer, choose Launch to start Visual Studio from the installer.

Use the IDE


You can check for an update and then install it by using the menu bar or the search box in Visual Studio 2019.
Open Visual Studio
1. From the Windows Start menu, choose Visual Studio 2019.
2. Under Get started, choose any option to open the IDE.

Visual Studio opens. In the IDE, a Visual Studio 2019 update message appears.
3. In the Visual Studio 2019 update message, choose View details.

4. In the Update downloaded and ready to install dialog box, choose Update.

Visual Studio updates, closes, and then reopens.


In Visual Studio
1. From the menu bar, choose Help, and then choose Check for Updates.

NOTE
You can also use the search box in the IDE to check for updates. Press Ctrl+Q, type "check for updates", and then
choose the search result that matches.

2. In the Update available dialog box, choose Update.

Visual Studio updates, closes, and then reopens.

Use the Notifications hub


1. In Visual Studio, save your work.
2. Choose the notification icon from the lower-right corner of the Visual Studio IDE to open the
Notifications hub.
3. In the Notifications hub, choose the update that you want to install, and then choose View details.

TIP
An update for an edition of Visual Studio 2019 is cumulative, so always choose to install the one with the most
recent version number.

4. In the Update available dialog box, choose Update.


Visual Studio updates, closes, and then reopens.

Customize update settings


You can customize the update settings in Visual Studio in several different ways, such as by changing the
installation mode and by selecting automatic downloads.
There are two installation modes to choose from:
Install while downloading
Download all, then install
You can also choose the Automatically download updates setting, which allows updates to download while
your machine is idle.
Here's how:
1. On the menu bar, choose Tools > Options.
2. Expand Environment, and then choose Product Updates.
3. Choose the installation mode and the automatic download options you want for your Visual Studio
updates.

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio
installation and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and
in the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Install Visual Studio versions side-by-side
Update a network-based installation of Visual Studio
Update Visual Studio while on a servicing baseline
Control updates to network-based Visual Studio deployments
Modify Visual Studio
Uninstall Visual Studio
Modify Visual Studio by adding or removing
workloads and components
2/11/2020 • 4 minutes to read • Edit Online

It's easy to modify Visual Studio so that it includes only what you want, when you want it. To do so, open the
Visual Studio Installer to add or remove workloads and components.
Not only have we made it easier for you to personalize Visual Studio to match the tasks you want to accomplish,
we've also made it easier to customize Visual Studio, too. To do so, open the new Visual Studio Installer and make
the changes you want.
Here's how.

IMPORTANT
To install, update, or modify Visual Studio, you must log on with an account that has administrative permissions. For more
information, see User permissions and Visual Studio.

NOTE
The following procedures assume that you have an internet connection.
For more information about how to modify a previously created offline installation of Visual Studio, see both the Update a
network-based installation of Visual Studio page and the Control updates to network-based Visual Studio deployments
page.

Open the Visual Studio Installer


1. Find the Visual Studio Installer on your computer.
For example, on a computer running Windows 10, select Start, and then scroll to the letter V, where it's
listed as Visual Studio Installer.
TIP
On some computers, the Visual Studio Installer might be listed under the letter "M" as the Microsoft Visual Studio
Installer.

Alternatively, you can find the Visual Studio Installer in the following location:
C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe

2. Open the installer, and then choose Modify.

IMPORTANT
If you have an update pending, the Modify button is in a different place. This way, you can modify Visual Studio
without updating it, should you choose to do so. Click More, and then choose Modify.

1. Find the Visual Studio Installer on your computer.


For example, on a computer running Windows 10, select Start, and then scroll to the letter V, where it's
listed as Visual Studio Installer.

NOTE
You can also find the Visual Studio Installer in the following location:
C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe

You might have to update the installer before continuing. If so, follow the prompts.
2. In the installer, look for the edition of Visual Studio that you installed, and then choose Modify.
IMPORTANT
If you have an update pending, the Modify button is in a different place. This way, you can modify Visual Studio
without updating it, should you want to. Choose More, and then choose Modify.

Modify workloads
Workloads contain the features you need for the programming language or platform that you're using. Use
workloads to modify Visual Studio so that it supports the work you want to do, when you want to do it.
1. In the Visual Studio Installer, choose the Workloads tab, and then select or deselect the workloads that you
want.

2. Choose whether you want to accept the default Install while downloading option or the Download all,
then install option.

The "Download all, then install" option is handy if you want to download first and then install later.
3. Choose Modify.
4. After the new workloads are installed, choose Launch from the Visual Studio Installer to open Visual
Studio.
Workloads contain the features you need for the programming language or platform that you're using. Use
workloads to modify Visual Studio so that it supports the work you want to do, when you want to do it.

TIP
For more information about which tool and component bundles you need for development, see Visual Studio workloads.

1. In in the Visual Studio Installer, choose the Workloads tab, and then select or deselect the workloads that
you want.

2. Choose whether you want to accept the default Install while downloading option or the Download all,
then install option.

The "Download all, then install" option is handy if you want to download first and then install later.
3. Choose Modify.
4. After the new workloads are installed, choose Launch from the Visual Studio Installer to open Visual
Studio.

Modify individual components


If you don't want to use workloads to customize your Visual Studio installation, choose the Individual
Components tab in the Visual Studio Installer, select the components you want, and then follow the prompts.
TIP
For information about the SQL Server Data Tools (SSDT) component, see Download and install SSDT for Visual Studio.

Modify language packs


By default, the installer matches the language of the operating system when it runs for the first time. However,
you can change the language whenever you want. To do so, choose the Language packs tab in the Visual Studio
Installer, select the language you prefer, and then follow the prompts.

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio installation
and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and
in the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
List of Visual Studio workload & component IDs
Update Visual Studio
Update a network-based installation of Visual Studio
Update Visual Studio while on a servicing baseline
Control updates to network-based Visual Studio deployments
Uninstall Visual Studio
Repair Visual Studio
1/16/2020 • 2 minutes to read • Edit Online

Sometimes your Visual Studio installation becomes damaged or corrupted. A repair can fix this.
1. Find the Visual Studio Installer on your computer.
For example, on a computer running Windows 10 Anniversary Update or later, select Start, and then scroll
to the letter V, where it's listed as Visual Studio Installer.

NOTE
On some computers, the Visual Studio Installer might be listed under the letter "M" as the Microsoft Visual Studio
Installer.
Alternatively, you can find the Visual Studio Installer in the following location:
C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe

2. Open the installer, choose More, and then choose Repair.

NOTE
Repairing Visual Studio will reset the environment. Local customizations like per-user extensions installed without
elevation, user settings, and profiles will be removed. Your synchronized settings such as themes, colors, key bindings
will be restored.

TIP
The Repair option appears only for installed instances of Visual Studio. If you do not see the Repair option, chances
are that you've selected More in a version that's listed in the Visual Studio Installer as "Available" rather than
"Installed".

1. Find the Visual Studio Installer on your computer.


For example, on a computer running Windows 10, select Start, and then scroll to the letter V, where it's
listed as Visual Studio Installer.
NOTE
You can also find the Visual Studio Installer in the following location:
C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe

You might have to update the installer before continuing. If so, follow the prompts.
2. In the installer, look for the edition of Visual Studio that you installed. Next, choose More, and then choose
Repair.

NOTE
Repairing Visual Studio will reset the environment. Local customizations like per-user extensions installed without
elevation, user settings, and profiles will be removed. Your synchronized settings such as themes, colors, key bindings
will be restored.
TIP
The Repair option appears only for installed instances of Visual Studio. If you do not see the Repair option, chances
are that you've selected More in a version that's listed in the Visual Studio Installer as "Available" rather than
"Installed".

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio installation
and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and in
the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Install Visual Studio
Update Visual Studio
Uninstall Visual Studio
Troubleshooting Visual Studio installation and upgrade issues
Uninstall Visual Studio
1/16/2020 • 2 minutes to read • Edit Online

This page walks you through uninstalling Visual Studio, our integrated suite of productivity tools for developers.

NOTE
This topic applies to Visual Studio on Windows. For Visual Studio for Mac, see Uninstall Visual Studio for Mac.

1. Find the Visual Studio Installer on your computer.


For example, on a computer running Windows 10 Anniversary Update or later, select Start and scroll to
the letter V, where it's listed as Visual Studio Installer.

NOTE
On some computers, the Visual Studio Installer might be listed under the letter "M" as the Microsoft Visual
Studio Installer.

Alternatively, you can find the Visual Studio Installer in the following location:
C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe

2. In the installer, look for the edition of Visual Studio that you installed. Next, choose More, and then choose
Uninstall.

3. Click OK to confirm your choice.


If you change your mind later and want to reinstall Visual Studio 2017, start the Visual Studio Installer again, and
then select Install from the selection screen.

Uninstall Visual Studio Installer


To completely remove all installations of Visual Studio 2017 and the Visual Studio Installer from your machine,
uninstall it from Apps & Features.
1. In Windows 10, type Apps and Features in the "Type here to search" box.
2. Find Microsoft Visual Studio 2017 (or, Visual Studio 2017).
3. Choose Uninstall.
4. Then, find Microsoft Visual Studio Installer.
5. Choose Uninstall.
1. Find the Visual Studio Installer on your computer.
For example, on a computer running Windows 10, select Start, and then scroll to the letter V, where it's
listed as Visual Studio Installer.

NOTE
You can also find the Visual Studio Installer in the following location:
C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe

You might have to update the installer before continuing. If so, follow the prompts.
2. In the installer, look for the edition of Visual Studio that you installed. Next, choose More, and then choose
Uninstall.
3. Click OK to confirm your choice.

If you change your mind later and want to reinstall Visual Studio 2019, start the Visual Studio Installer again,
choose the Available tab, choose the edition of Visual Studio that you want to install, and then select Install.

Uninstall Visual Studio Installer


To remove all installations of Visual Studio 2019 and the Visual Studio Installer from your machine, uninstall it
from Apps & Features.
1. In Windows 10, type Apps and Features in the "Type here to search" box.
2. Find Visual Studio 2019.
3. Choose Uninstall.
4. Then, find Microsoft Visual Studio Installer.
5. Choose Uninstall.

Remove all files


If you experience a catastrophic error and can't uninstall Visual Studio by using the previous instructions, there is
a "last resort" option that you can consider using instead. For more information about how to remove all Visual
Studio installation files and product information completely, see the Remove Visual Studio page.

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio
installation and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and
in the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Modify Visual Studio
Update Visual Studio
Visual Studio administrator guide
3/12/2020 • 6 minutes to read • Edit Online

In enterprise environments, system administrators typically deploy installations to end-users from a network
share or by using systems management software. We've designed the Visual Studio setup engine to support
enterprise deployment by giving system administrators the ability to create a network install location, to pre-
configure installation defaults, to deploy product keys during the installation process, and to manage product
updates after a successful rollout.
This administrator guide provides scenario-based guidance for enterprise deployment in networked
environments.

Before you begin


Before you deploy Visual Studio across your organization, there are a few decisions to make and tasks to
complete:
Make sure that each target computer meets the minimum installation requirements.
Decide on your servicing needs.
If your company needs to stay on a feature set longer but still wants to get regular servicing updates,
plan to use a servicing baseline. For more information, see the Support options for Enterprise and
Professional customers section of the Visual Studio product lifecycle and servicing page, as well as the
How to: Update Visual Studio while on a servicing baseline page.
If you plan to apply servicing updates along with cumulative feature updates, then you can choose the
latest bits.
Decide on the update model.
Where do you want individual client machines to get updates? Specifically, decide whether you want to
get updates from the internet or from a company-wide local share. Then, if you choose to use a local
share, decide whether individual users can update their own clients or if you want an admin to update the
clients programmatically.
Decide which workloads and components your company needs.
Decide whether to use a response file (that simplifies managing details in the script file).
Decide if you want to enable Group Policy, and if you want to configure Visual Studio to disable
customer feedback on individual computers.
Make sure that each target computer meets the minimum installation requirements.
Decide on your servicing needs.
If your company needs to stay on a feature set longer but still wants to get regular servicing updates,
plan to use a servicing baseline. For more information, see the Support for older versions of Visual
Studio section of the Visual Studio product lifecycle and servicing page, as well as the How to: Update
Visual Studio while on a servicing baseline page.
If you plan to apply servicing updates along with cumulative feature updates, then you can choose the
latest bits.
Decide on the update model.
Where do you want individual client machines to get updates? Specifically, decide whether you want to
get updates from the internet or from a company-wide local share. Then, if you choose to use a local
share, decide whether individual users can update their own clients or if you want an admin to update the
clients programmatically.
Decide which workloads and components your company needs.
Decide whether to use a response file (that simplifies managing details in the script file).
Decide if you want to enable Group Policy, and if you want to configure Visual Studio to disable
customer feedback on individual computers.

Step 1 - Download Visual Studio product files


Select the workloads and components that you want to install.
Create a network share for the Visual Studio product files.

Step 2 - Build an installation script


Build an installation script that uses command-line parameters to control the installation.

NOTE
You can simplify scripts by using a response file. Make sure to create a response file that contains your default
installation option.

(Optional) Apply a volume license product key as part of the installation script so that users don't need to
activate the software separately.
(Optional) Update the network layout to control when and from where product updates are delivered to
your end-users.
(Optional) Set registry policies that affect the deployment of Visual Studio such as where some packages
shared with other versions or instances are installed, where packages are cached or whether packages
are cached.
(Optional) Set Group Policy. You can also configure Visual Studio to disable customer feedback on
individual computers.

Step 3 - Deploy
Use your deployment technology of choice to execute your script onto your target developer workstations.

Step 4 - Deploy updates


Refresh your network location with the latest updates to Visual Studio by running the command you
used in step 1 on a regular basis to add updated components.
You can update Visual Studio by using an update script. To do so, use the update command-line
parameter.

Step 5 - (Optional) Use Visual Studio tools


We have several tools available to help you detect and manage installed Visual Studio instances on client
machines.

Advanced configuration
By default, the Visual Studio installation enables custom type inclusion in Bing searches from error list F1 and
code links. You can configure Visual Studio to disable the search mechanism from including any custom user
types by changing the value of the following registry key by policy:
“PutCustomTypeInBingSearch” DWORD 0
The registry is located in the *Software\Microsoft\VisualStudio\16.0_{InstanceId}\Roslyn\Internal\Diagnostics*
directory of your private registry hive. For instructions on how to open the registry hive, see editing the registry
for a Visual Studio instance.

Step 1 - Download Visual Studio product files


Select the workloads and components that you want to install.
Create a network share for the Visual Studio product files.

Step 2 - Build an installation script


Build an installation script that uses command-line parameters to control the installation.

NOTE
You can simplify scripts by using a response file. Make sure to create a response file that contains your default
installation option.

(Optional) Apply a volume license product key as part of the installation script so that users don't need to
activate the software separately.
(Optional) Update the network layout to control when and from where product updates are delivered to
your end-users.
(Optional) Set registry policies that affect the deployment of Visual Studio such as where some packages
shared with other versions or instances are installed, where packages are cached or whether packages
are cached.
(Optional) Set Group Policy. You can also configure Visual Studio to disable customer feedback on
individual computers.

Step 3 - Deploy
Use your deployment technology of choice to execute your script onto your target developer workstations.

Step 4 - Deploy updates


Refresh your network location with the latest updates to Visual Studio by running the command you
used in step 1 on a regular basis to add updated components.
You can update Visual Studio by using an update script. To do so, use the update command-line
parameter.

Step 5 - (Optional) Use Visual Studio tools


We have several tools available to help you detect and manage installed Visual Studio instances on client
machines.

Advanced configuration
By default, the Visual Studio installation enables custom type inclusion in Bing searches from error list F1 and
code links. You can configure Visual Studio to disable the search mechanism from including any custom user
types by changing the value of the following registry key by policy:
“PutCustomTypeInBingSearch” DWORD 0
The registry is located in the *Software\Microsoft\VisualStudio\15.0_{InstanceId}\Roslyn\Internal\Diagnostics*
directory of your private registry hive. For instructions on how to open the registry hive, see editing the registry
for a Visual Studio instance.

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio
installation and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and
in the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation
in the Gitter community.

See also
Command-line parameter examples
Install certificates required for Visual Studio offline installation
Import or export installation configurations
Visual Studio Setup Archives
Visual Studio product lifecycle and servicing
Synchronous autoload settings
Use command-line parameters to install Visual
Studio
1/16/2020 • 18 minutes to read • Edit Online

When you install Visual Studio from a command prompt, you can use a variety of command-line
parameters to control or customize the installation. From the command line, you can perform the
following actions:
Start the install with certain options preselected.
Automate the installation process.
Create a cache (layout) of the installation files for later use.
The command-line options are used in conjunction with the setup bootstrapper, which is the small (1 MB )
file that initiates the download process. The bootstrapper is the first executable that is launched when you
download from the Visual Studio site.
To get a bootstrapper for Visual Studio 2017, see the Visual Studio previous versions download page
for details on how to do so.
Use the following links to get a direct link to the latest release bootstrapper for the product edition that
you're installing:
Visual Studio 2019 Enterprise
Visual Studio 2019 Professional
Visual Studio 2019 Community
Your bootstrapper file should match or be similar to one of the following file names:
vs_enterprise.exe
vs_professional.exe
vs_community.exe

TIP
If you previously downloaded a bootstrapper file and want to verify its version, here's how. In Windows, open File
Explorer, right-click the bootstrapper file, choose Properties, choose the Details tab, and then view the Product
version number. To match that number to a release of Visual Studio, see the Visual Studio build numbers and
release dates page.

Command-line parameters
Visual Studio command-line parameters are case-insensitive.

Syntax: vs_enterprise.exe [command] <options>...

Replace vs_enterprise.exe as appropriate for the product edition you're installing. (Alternatively, you can
use vs_installer.exe .)
TIP
For more examples of how to use the command line to install Visual Studio, see the Command-line parameter
examples page.

COMMAND DESCRIPTION

(blank) Installs the product.

modify Modifies an installed product.

update Updates an installed product.

repair Repairs an installed product.

uninstall Uninstalls an installed product.

export New in version 15.9: Exports installation selection to an


installation configuration file. Note: Can only be used
with vs_installer.exe.

COMMAND DESCRIPTION

(blank) Installs the product.

modify Modifies an installed product.

update Updates an installed product.

repair Repairs an installed product.

uninstall Uninstalls an installed product.

export Exports installation selection to an installation


configuration file. Note: Can only be used with
vs_installer.exe.

Install options
INSTALL OPTION DESCRIPTION

--installPath <dir> The installation directory for the instance to act upon. For
the install command, this is Optional and is where the
instance will be installed. For other commands, this is
Required and is where the previously installed instance
was installed.
INSTALL OPTION DESCRIPTION

--addProductLang <language-locale> Optional: During an install or modify operation, this


determines the UI language packs that are installed to
the product. It can appear multiple times on the
command line to add multiple language packs. If not
present, the installation uses the machine locale. For
more information, see the List of language locales section
on this page.

--removeProductLang <language-locale> Optional: During an install or modify operation, this


determines the UI language packs that are to be
removed from the product. It can appear multiple times
on the command line to add multiple language packs. For
more information, see the List of language locales section
on this page.

--add <one or more workload or component IDs> Optional: One or more workload or component IDs to
add. The required components of the artifact are
installed, but not the recommended or optional
components. You can control additional components
globally using --includeRecommended and/or
--includeOptional . To include multiple workloads or
components, repeat the --add command (for example,
--add Workload1 --add Workload2 ). For finer-grained
control, you can append ;includeRecommended or
;includeOptional to the ID (for example,
--add Workload1;includeRecommended or
--add
Workload2;includeRecommended;includeOptional
). For more information, see the Workload and
component IDs page. You can repeat this option as
necessary.

--remove <one or more workload or component IDs> Optional: One or more workload or component IDs to
remove. For more information, see our Workload and
component IDs page. You can repeat this option as
necessary.

--in <path> Optional: The URI or path to a response file.

--all Optional: Whether to install all workloads and


components for a product.

--allWorkloads Optional: Installs all workloads and components, no


recommended or optional components.

--includeRecommended Optional: Includes the recommended components for


any workloads that are installed, but not the optional
components. The workloads are specified either with
--allWorkloads or --add .

--includeOptional Optional: Includes the optional components for any


workloads that are installed, but not the recommended
components. The workloads are specified either with
--allWorkloads or --add .
INSTALL OPTION DESCRIPTION

--quiet, -q Optional: Don't display any user interface while


performing the installation.

--passive, -p Optional: Display the user interface, but don't request


any interaction from the user.

--norestart Optional: If present, commands with --passive or


--quiet won't automatically restart the machine (if
necessary). This is ignored if neither --passive nor
--quiet are specified.

--nickname <name> Optional: This defines the nickname to assign to an


installed product. The nickname can't be longer than 10
characters.

--productKey Optional: This defines the product key to use for an


installed product. It's composed of 25 alphanumeric
characters either in the format
xxxxx-xxxxx-xxxxx-xxxxx-xxxxx or
xxxxxxxxxxxxxxxxxxxxxxxxx .

--help, --?, -h, -? Display an offline version of this page.

--config <path> Optional and New in 15.9: During an install or modify


operation, this determines the workloads and
components to add based on a previously saved
installation configuration file. This operation is additive
and it won't remove any workload or component if they
aren't present in the file. Also, items that don't apply to
the product won't be added. During an export operation,
this determines the location to save the installation
configuration file.

INSTALL OPTION DESCRIPTION

--installPath <dir> The installation directory for the instance to act upon. For
the install command, this is Optional and is where the
instance will be installed. For other commands, this is
Required and is where the previously installed instance
was installed.

--addProductLang <language-locale> Optional: During an install or modify operation, this


determines the UI language packs that are installed to
the product. It can appear multiple times on the
command line to add multiple language packs. If not
present, the installation uses the machine locale. For
more information, see the List of language locales section
on this page.

--removeProductLang <language-locale> Optional: During an install or modify operation, this


determines the UI language packs that are to be
removed from the product. It can appear multiple times
on the command line to add multiple language packs. For
more information, see the List of language locales section
on this page.
INSTALL OPTION DESCRIPTION

--add <one or more workload or component IDs> Optional: One or more workload or component IDs to
add. The required components of the artifact are
installed, but not the recommended or optional
components. You can control additional components
globally using --includeRecommended and/or
--includeOptional . To include multiple workloads or
components, repeat the --add command (for example,
--add Workload1 --add Workload2 ). For finer-grained
control, you can append ;includeRecommended or
;includeOptional to the ID (for example,
--add Workload1;includeRecommended or
--add
Workload2;includeRecommended;includeOptional
). For more information, see the Workload and
component IDs page. You can repeat this option as
necessary.

--remove <one or more workload or component IDs> Optional: One or more workload or component IDs to
remove. For more information, see our Workload and
component IDs page. You can repeat this option as
necessary.

--in <path> Optional: The URI or path to a response file.

--all Optional: Whether to install all workloads and


components for a product.

--allWorkloads Optional: Installs all workloads and components, no


recommended or optional components.

--includeRecommended Optional: Includes the recommended components for


any workloads that are installed, but not the optional
components. The workloads are specified either with
--allWorkloads or --add .

--includeOptional Optional: Includes the optional components for any


workloads that are installed, but not the recommended
components. The workloads are specified either with
--allWorkloads or --add .

--quiet, -q Optional: Don't display any user interface while


performing the installation.

--passive, -p Optional: Display the user interface, but don't request


any interaction from the user.

--norestart Optional: If present, commands with --passive or


--quiet won't automatically restart the machine (if
necessary). This is ignored if neither --passive nor
--quiet are specified.

--nickname <name> Optional: This defines the nickname to assign to an


installed product. The nickname can't be longer than 10
characters.
INSTALL OPTION DESCRIPTION

--productKey Optional: This defines the product key to use for an


installed product. It's composed of 25 alphanumeric
characters either in the format
xxxxx-xxxxx-xxxxx-xxxxx-xxxxx or
xxxxxxxxxxxxxxxxxxxxxxxxx .

--help, --?, -h, -? Display an offline version of this page.

--config <path> Optional: During an install or modify operation, this


determines the workloads and components to add based
on a previously saved installation configuration file. This
operation is additive and it won't remove any workload
or component if they aren't present in the file. Also, items
that don't apply to the product won't be added. During
an export operation, this determines the location to save
the installation configuration file.

IMPORTANT
When specifying multiple workloads and components, you must repeat the --add or --remove command-line
switch for each item.

Layout options
LAYOUT OPTIONS DESCRIPTION

--layout <dir> Specifies a directory to create an offline install cache. For


more information, see Create a network-based
installation of Visual Studio.

--lang <one or more language-locales> Optional: Used with --layout to prepare an offline
install cache with resource packages with the specified
language(s). For more information, see the List of
language locales section on this page.

--add <one or more workload or component IDs> Optional: One or more workload or component IDs to
add. The required components of the artifact are
installed, but not the recommended or optional
components. You can control additional components
globally using --includeRecommended and/or
--includeOptional . For finer-grained control, you can
append ;includeRecommended or ;includeOptional
to the ID (for example,
--add Workload1;includeRecommended or
--add Workload2;includeOptional ). For more
information, see the Workload and component IDs page.
Note: If --add is used, only the specified workloads and
components and their dependencies are downloaded. If
--add isn't specified, all workloads and components are
downloaded to the layout.
LAYOUT OPTIONS DESCRIPTION

--includeRecommended Optional: Includes the recommended components for


any workloads that are installed, but not the optional
components. The workloads are specified either with
--allWorkloads or --add .

--includeOptional Optional: Includes the recommended and optional


components for any workloads being included in the
layout. The workloads are specified with --add .

--keepLayoutVersion New in 15.3, optional: Apply changes to the layout


without updating the version of the layout.

--verify New in 15.3, optional: Verify the contents of a layout.


Any corrupt or missing files are listed.

--fix New in 15.3, optional: Verify the contents of a layout. If


any files are corrupt or missing, they're redownloaded.
Internet access is required to fix a layout.

--clean <one or more paths to catalogs> New in 15.3, optional: Removes old versions of
components from a layout that has been updated to a
newer version.

ADVANCED INSTALL OPTIONS DESCRIPTION

--channelId <id> Optional: The ID of the channel for the instance to be


installed. This is required for the install command, and
ignored for other commands if --installPath is
specified.

--channelUri <uri> Optional: The URI of the channel manifest. If updates


aren't wanted, --channelUri can point to a non-
existent file (for example, --channelUri
C:\doesntExist.chman). This can be used for the install
command; it's ignored for other commands.

--installChannelUri <uri> Optional: The URI of the channel manifest to use for the
installation. The URI specified by --channelUri (which
must be specified when --installChannelUri is
specified) is used to detect updates. This can be used for
the install command; it's ignored for other commands.

--installCatalogUri <uri> Optional: The URI of the catalog manifest to use for the
installation. If specified, the channel manager attempts to
download the catalog manifest from this URI before
using the URI in the install channel manifest. This
parameter is used to support offline install, where the
layout cache will be created with the product catalog
already downloaded. This can be used for the install
command; it's ignored for other commands.

--productId <id> Optional The ID of the product for the instance that will
be installed. This is pre-populated in normal installation
conditions.
ADVANCED INSTALL OPTIONS DESCRIPTION

--wait Optional: The process will wait until the install is


completed before returning an exit code. This is useful
when automating installations where one needs to wait
for the install to finish to handle the return code from
that install.

--locale <language-locale> Optional: Change the display language of the user


interface for the installer itself. Setting will be persisted.
For more information, see the List of language locales
section on this page.

--cache New in 15.2, optional: If present, packages will be kept


after being installed for subsequent repairs. This overrides
the global policy setting to be used for subsequent
installs, repairs, or modifications. The default policy is to
cache packages. This is ignored for the uninstall
command. Read how to disable or move the package
cache for more information.

--nocache New in 15.2, optional: If present, packages will be


deleted after being installed or repaired. They'll be
downloaded again only if needed and deleted again after
use. This overrides the global policy setting to be used for
subsequent installs, repairs, or modifications. The default
policy is to cache packages. This is ignored for the
uninstall command. Read how to disable or move the
package cache for more information.

--noUpdateInstaller New in 15.2, optional: If present, prevents the installer


from updating itself when quiet is specified. The installer
will fail the command and return a non-zero exit code if
noUpdateInstaller is specified with quiet when an installer
update is required.

--noWeb New in 15.3, optional: If present, Visual Studio setup


uses the files in your layout directory to install Visual
Studio. If a user tries to install components that aren't in
the layout, setup fails. For more information, see
Deploying from a network installation.

Important: This switch doesn't stop Visual Studio setup


from checking for updates. For more information, see
Control updates to network-based Visual Studio
deployments.

--path <name>=<path> New in 15.7, optional: Used to specify custom install


paths for the installation. Supported path names are
shared, cache, and install.

--path cache=<path> New in 15.7, optional: Uses the location you specify to
download installation files. This location can only be set
the first time that Visual Studio is installed. Example:
--path cache="C:\VS\cache"
ADVANCED INSTALL OPTIONS DESCRIPTION

--path shared=<path> New in 15.7, optional: Contains shared files for side-by-
side Visual Studio installations. Some tools and SDKs
install to a location on this drive, while some others
might override this setting and install to another drive.
Example: --path shared="C:\VS\shared"

Important: This can be set only once and on the first time
that Visual Studio is installed.

--path install=<path> New in 15.7, optional: Equivalent to –-installPath .


Specifically, --installPath "C:\VS" and
--path install="C:\VS" are equivalent. Only one of
these commands can be used at a time.

LAYOUT OPTIONS DESCRIPTION

--layout <dir> Specifies a directory to create an offline install cache. For


more information, see Create a network-based
installation of Visual Studio.

--lang <one or more language-locales> Optional: Used with --layout to prepare an offline
install cache with resource packages with the specified
language(s). For more information, see the List of
language locales section on this page.

--add <one or more workload or component IDs> Optional: One or more workload or component IDs to
add. The required components of the artifact are
installed, but not the recommended or optional
components. You can control additional components
globally using --includeRecommended and/or
--includeOptional . For finer-grained control, you can
append ;includeRecommended or ;includeOptional
to the ID (for example,
--add Workload1;includeRecommended or
--add Workload2;includeOptional ). For more
information, see the Workload and component IDs page.
Note: If --add is used, only the specified workloads and
components and their dependencies are downloaded. If
--add isn't specified, all workloads and components are
downloaded to the layout.

--includeRecommended Optional: Includes the recommended components for


any workloads that are installed, but not the optional
components. The workloads are specified either with
--allWorkloads or --add .

--includeOptional Optional: Includes the recommended and optional


components for any workloads being included in the
layout. The workloads are specified with --add .

--keepLayoutVersion Optional: Apply changes to the layout without updating


the version of the layout.

--verify Optional: Verify the contents of a layout. Any corrupt or


missing files are listed.
LAYOUT OPTIONS DESCRIPTION

--fix Optional: Verify the contents of a layout. If any files are


corrupt or missing, they're redownloaded. Internet access
is required to fix a layout.

--clean <one or more paths to catalogs> Optional: Removes old versions of components from a
layout that has been updated to a newer version.

ADVANCED INSTALL OPTIONS DESCRIPTION

--channelId <id> Optional: The ID of the channel for the instance to be


installed. This is required for the install command, and
ignored for other commands if --installPath is
specified.

--channelUri <uri> Optional: The URI of the channel manifest. If updates


aren't wanted, --channelUri can point to a non-
existent file (for example, --channelUri
C:\doesntExist.chman). This can be used for the install
command; it's ignored for other commands.

--installChannelUri <uri> Optional: The URI of the channel manifest to use for the
installation. The URI specified by --channelUri (which
must be specified when --installChannelUri is
specified) is used to detect updates. This can be used for
the install command; it's ignored for other commands.

--installCatalogUri <uri> Optional: The URI of the catalog manifest to use for the
installation. If specified, the channel manager attempts to
download the catalog manifest from this URI before
using the URI in the install channel manifest. This
parameter is used to support offline install, where the
layout cache will be created with the product catalog
already downloaded. This can be used for the install
command; it's ignored for other commands.

--productId <id> Optional The ID of the product for the instance that will
be installed. This is pre-populated in normal installation
conditions.

--wait Optional: The process will wait until the install is


completed before returning an exit code. This is useful
when automating installations where one needs to wait
for the install to finish to handle the return code from
that install.

--locale <language-locale> Optional: Change the display language of the user


interface for the installer itself. Setting will be persisted.
For more information, see the List of language locales
section on this page.

--cache Optional: If present, packages will be kept after being


installed for subsequent repairs. This overrides the global
policy setting to be used for subsequent installs, repairs,
or modifications. The default policy is to cache packages.
This is ignored for the uninstall command. Read how to
disable or move the package cache for more information.
ADVANCED INSTALL OPTIONS DESCRIPTION

--nocache Optional: If present, packages will be deleted after being


installed or repaired. They'll be downloaded again only if
needed and deleted again after use. This overrides the
global policy setting to be used for subsequent installs,
repairs, or modifications. The default policy is to cache
packages. This is ignored for the uninstall command.
Read how to disable or move the package cache for more
information.

--noUpdateInstaller Optional: If present, prevents the installer from updating


itself when quiet is specified. The installer will fail the
command and return a non-zero exit code if
noUpdateInstaller is specified with quiet when an installer
update is required.

--noWeb Optional: If present, Visual Studio setup uses the files in


your layout directory to install Visual Studio. If a user
tries to install components that aren't in the layout, setup
fails. For more information, see Deploying from a network
installation.

Important: This switch doesn't stop Visual Studio setup


from checking for updates. For more information, see
Control updates to network-based Visual Studio
deployments. New in 16.3.5: This switch prevents errors
and improves performance with offline installs and
updates.

--path <name>=<path> Optional: Used to specify custom install paths for the
installation. Supported path names are shared, cache, and
install.

--path cache=<path> Optional: Uses the location you specify to download


installation files. This location can only be set the first
time that Visual Studio is installed. Example:
--path cache="C:\VS\cache"

--path shared=<path> Optional: Contains shared files for side-by-side Visual


Studio installations. Some tools and SDKs install to a
location on this drive, while some others might override
this setting and install to another drive. Example:
--path shared="C:\VS\shared"

Important: This can be set only once and on the first time
that Visual Studio is installed.

--path install=<path> Optional: Equivalent to –-installPath . Specifically,


--installPath "C:\VS" and
--path install="C:\VS" are equivalent. Only one of
these commands can be used at a time.

List of workload IDs and component IDs


For a list of workload and component IDs sorted by Visual Studio product, see the Visual Studio workload
and component IDs page.
List of language locales
LANGUAGE-LOCALE LANGUAGE

Cs-cz Czech

De-de German

En-us English

Es-es Spanish

Fr-fr French

It-it Italian

Ja-jp Japanese

Ko-kr Korean

Pl-pl Polish

Pt-br Portuguese - Brazil

Ru-ru Russian

Tr-tr Turkish

Zh-cn Chinese - Simplified

Zh-tw Chinese - Traditional

Error codes
Depending on the result of the operation, the %ERRORLEVEL% environment variable is set to one of the
following values:

VALUE RESULT

0 Operation completed successfully

1602 Operation was canceled

1641 Operation completed successfully, and reboot was


initiated

3010 Operation completed successfully, but install requires


reboot before it can be used

5003 Bootstrapper failed to download installer

5004 Operation was canceled


VALUE RESULT

5005 Bootstrapper command-line parse error

5007 Operation was blocked - the computer does not meet


the requirements

-1073741510 Microsoft Visual Studio Installer was terminated (by the


user or external process)

Other Failure condition occurred - check the logs for more


(for example: information
-1, 1, 1603)

Each operation generates several log files in the %TEMP% directory that indicate the progress of the
installation. Sort the folder by date and look for files that begin with dd_bootstrapper , dd_client , and
dd_setup for the bootstrapper, the installer app, and the setup engine, respectively.

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio
installation and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio
Installer and in the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio
conversation in the Gitter community.

See also
Command-line parameter examples for Visual Studio installation
Create an offline installation of Visual Studio
Automate Visual Studio installation with a response file
Visual Studio workload and component IDs
Command-line parameter examples for Visual
Studio installation
2/14/2020 • 4 minutes to read • Edit Online

To illustrate how to use command-line parameters to install Visual Studio, here are several examples that you
can customize to match your needs.
In each example, vs_enterprise.exe , vs_professional.exe and vs_community.exe represent the respective
edition of the Visual Studio bootstrapper, which is the small (approximately 1MB ) file that initiates the download
process. If you are using a different edition, substitute the appropriate bootstrapper name.

NOTE
All commands require administrative elevation, and a User Account Control prompt will be displayed if the process is not
started from an elevated prompt.

NOTE
You can use the ^ character at the end of a command line to concatenate multiple lines into a single command.
Alternatively, you can simply place these lines together onto a single row. In PowerShell, the equivalent is the backtick ( ` )
character.

For lists of the workloads and components that you can install by using the command line, see the Visual Studio
workload and component IDs page.

Using --installPath
Install a minimal instance of Visual Studio, with no interactive prompts but progress displayed:

vs_enterprise.exe --installPath C:\minVS ^


--add Microsoft.VisualStudio.Workload.CoreEditor ^
--passive --norestart

Update a Visual Studio instance by using the command line, with no interactive prompts but progress
displayed:

vs_enterprise.exe --update --quiet --wait


vs_enterprise.exe update --wait --passive --norestart --installPath "C:\installPathVS"

NOTE
Both commands are advised. The first command updates the Visual Studio Installer. The second command updates
the Visual Studio instance. To avoid a User Account Control dialog, run the command prompt as an Administrator.

Install a desktop instance of Visual Studio silently, with the French language pack, returning only when
the product is installed.
vs_enterprise.exe --installPath C:\desktopVS ^
--addProductLang fr-FR ^
--add Microsoft.VisualStudio.Workload.ManagedDesktop ^
--includeRecommended --quiet --wait

Using --wait
Use in batch files or scripts to wait for the Visual Studio installer to complete before the next command is
executed. For batch files, an %ERRORLEVEL% environment variable will contain the return value of the
command, as documented in the Use command-line parameters to install Visual Studio page. Some
command utilities require additional parameters to wait for completion and to get the installer's return
value. The following is an example of the additional parameters used with the PowerShell script command
'Start-Process':

start /wait vs_professional.exe --installPath "C:\VS" --passive --wait > nul


echo %errorlevel%

$exitCode = Start-Process -FilePath vs_enterprise.exe -ArgumentList "--installPath", "C:\VS", "--


passive", "--wait" -Wait -PassThru

or

$startInfo = New-Object System.Diagnostics.ProcessStartInfo


$startInfo.FileName = "vs_enterprise.exe"
$startInfo.Arguments = "--all --quiet --wait"
$process = New-Object System.Diagnostics.Process
$process.StartInfo = $startInfo
$process.Start()
$process.WaitForExit()

The first '--wait' is used by the Visual Studio Installer, and the second '-Wait' is used by 'Start-Process' to
wait for completion. The '-PassThru' parameter is used by 'Start-Process' to use the installer's exit code
for its return value.

Using --layout
Download the Visual Studio core editor (the most minimal Visual Studio configuration). Only include the
English language pack:

vs_community.exe --layout C:\VS ^


--lang en-US ^
--add Microsoft.VisualStudio.Workload.CoreEditor

Download the .NET desktop and .NET web workloads along with all recommended components and the
GitHub extension. Only include the English language pack:

vs_community.exe --layout C:\VS ^


--lang en-US ^
--add Microsoft.VisualStudio.Workload.NetWeb ^
--add Microsoft.VisualStudio.Workload.ManagedDesktop ^
--add Component.GitHub.VisualStudio ^
--includeRecommended
Using --all
Start an interactive installation of all workloads and components that are available in the Visual Studio
Enterprise edition:

vs_enterprise.exe --all

Using --includeRecommended
Install a second, named instance of Visual Studio Professional on a machine with Visual Studio
Community edition already installed, with support for Node.js development:

vs_professional.exe --installPath C:\VSforNode ^


--add Microsoft.VisualStudio.Workload.Node --includeRecommended --nickname VSforNode

Using --remove
Remove the Profiling Tools component from the default installed Visual Studio instance:

vs_enterprise.exe modify ^
--installPath "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise" ^
--remove Microsoft.VisualStudio.Component.DiagnosticTools ^
--passive

Remove the Profiling Tools component from the default installed Visual Studio instance:

vs_enterprise.exe modify ^
--installPath "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" ^
--remove Microsoft.VisualStudio.Component.DiagnosticTools ^
--passive

Using --path
These command-line parameters are new in 15.7. For more information about them, see the Use command-line
parameters to install Visual Studio page.
Using the install, cache, and shared paths:
vs_enterprise.exe --add Microsoft.VisualStudio.Workload.CoreEditor --path install="C:\VS" --path
cache="C:\VS\cache" --path shared="C:\VS\shared"

Using only the install and cache paths:


vs_enterprise.exe --add Microsoft.VisualStudio.Workload.CoreEditor --path install="C:\VS" --path
cache="C:\VS\cache"

Using only the install and shared paths:


vs_enterprise.exe --add Microsoft.VisualStudio.Workload.CoreEditor --path install="C:\VS" --path
shared="C:\VS\shared"

Using only the install path:


vs_enterprise.exe --add Microsoft.VisualStudio.Workload.CoreEditor --path install="C:\VS"
Using export
This command-line command is new in 15.9. For more information about it, see the Use command-line
parameters to install Visual Studio page.
Using export to save the selection from an installation:

"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe" export --installPath


"C:\VS" --config "C:\.vsconfig"

Using export to save custom selection from scratch:

"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe" export --add


Microsoft.VisualStudio.Workload.ManagedDesktop --includeRecommended --config "C:\.vsconfig"

Using --config
This command-line parameter is new in 15.9. For more information about it, see the Use command-line
parameters to install Visual Studio page.
Using --config to install the workloads and components from a previously saved installation configuration
file:

vs_enterprise.exe --config "C:\.vsconfig" --installPath "C:\VS"

Using --config to add workloads and components to an existing installation:

vs_enterprise.exe modify --installPath "C:\VS" --config "C:\.vsconfig"

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio
installation and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and
in the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Visual Studio Administrator Guide
Use command-line parameters to install Visual Studio
Create an offline installation of Visual Studio
Visual Studio workload and component IDs
Create a network installation of Visual Studio
1/16/2020 • 9 minutes to read • Edit Online

Typically, an enterprise administrator creates a network install point to deploy to client workstations. We've
designed Visual Studio to enable you to cache the files for the initial installation along with all product updates
to a single folder. (This process is also referred to as creating a layout.)
We've done this so that client workstations can use the same network location to manage their installation even
if they haven't yet updated to the latest servicing update.

NOTE
If you have multiple editions of Visual Studio in use within your enterprise (for example, both Visual Studio Professional
and Visual Studio Enterprise), you must create a separate network install share for each edition.

Download the Visual Studio bootstrapper


Download a bootstrapper file for the edition of Visual Studio you want. Make sure to choose Save, and then
choose Open folder.
To get a bootstrapper for Visual Studio 2017, see the Visual Studio previous versions download page for details
on how to do so.
Your setup executable—or to be more specific, the bootstrapper file—should match or be similar to one of the
following.

EDITION FILENAME

Visual Studio Enterprise vs_enterprise.exe

Visual Studio Professional vs_professional.exe

Visual Studio Build Tools vs_buildtools.exe

Other supported bootstrappers include vs_feedbackclient.exe, vs_teamexplorer.exe, vs_testagent.exe,


vs_testcontroller.exe, and vs_testprofessional.exe.
Your setup executable—or to be more specific, a bootstrapper file—should match or be similar to one of the
following.

EDITION DOWNLOAD

Visual Studio Enterprise vs_enterprise.exe

Visual Studio Professional vs_professional.exe

Visual Studio Build Tools vs_buildtools.exe

Other supported bootstrappers include vs_teamexplorer.exe, vs_testagent.exe, and vs_testcontroller.exe.


TIP
If you previously downloaded a bootstrapper file and want to verify its version, here's how. In Windows, open File
Explorer, right-click the bootstrapper file, choose Properties, choose the Details tab, and then view the Product
version number. To match that number to a release of Visual Studio, see the Visual Studio build numbers and release
dates page.

Create an offline installation folder


You must have an internet connection to complete this step. To create an offline installation with all languages
and all features, use a command that is similar to one of the following examples.

IMPORTANT
A complete Visual Studio layout requires a minimum of 35 GB of disk space and can take some time to download. See
the Customize the network layout section for details on how to create a layout with only the components you want to
install.

TIP
Make sure that you run the command from your Download directory. Typically, that's C:\Users\<username>\Downloads
on a computer running Windows 10.

For Visual Studio Enterprise, run:


vs_enterprise.exe --layout c:\VSLayout

For Visual Studio Professional, run:


vs_professional.exe --layout c:\VSLayout

Modify the response.json file


You can modify the response.json to set default values that are used when setup is run. For example, you can
configure the response.json file to select a specific set of workloads selected automatically. See Automate
Visual Studio installation with a response file for details.
And, if you run into a problem with the Visual Studio bootstrapper throwing an error when you pair it with a
response.json file, see the "Failed to parse ID from parent process" section of the Troubleshoot network-related
errors when you install or use Visual Studio page for more information on what to do.

Copy the layout to a network share


Host the layout on a network share so it can be run from other machines.
The following example uses xcopy. You can also use robocopy, should you wish.
Example:

xcopy /e c:\VSLayout \\server\products\VS2017

xcopy /e c:\VSLayout \\server\products\VS2019


IMPORTANT
To prevent an error, make sure that your full layout path is less than 80 characters.

Customize the network layout


There are several options you can use to customize your network layout. You can create a partial layout that
only contains a specific set of language locales, workloads, components, and their recommended or optional
dependencies. This might be useful if you know that you're going to deploy only a subset of workloads to client
workstations. Typical command-line parameters for customizing the layout include:
--add to specify workload or component IDs.
If --add is used, only those workloads and components specified with --add are downloaded. If --add
isn't used, all workload and components are downloaded.
--includeRecommended to include all the recommended components for the specified workload IDs
--includeOptional to include all the recommended and optional components for the specified workload IDs.
--lang to specify language locales.

Here are a few examples of how to create a custom partial layout.


To download all workloads and components for only one language, run:

vs_enterprise.exe --layout C:\VSLayout --lang en-US

To download all workloads and components for multiple languages, run:

vs_enterprise.exe --layout C:\VSLayout --lang en-US de-DE ja-JP

To download one workload for all languages, run:

vs_enterprise.exe --layout C:\VSLayout --add Microsoft.VisualStudio.Workload.Azure --


includeRecommended

To download two workloads and one optional component for three languages, run:

vs_enterprise.exe --layout C:\VSLayout --add Microsoft.VisualStudio.Workload.Azure --add


Microsoft.VisualStudio.Workload.ManagedDesktop --add Component.GitHub.VisualStudio --
includeRecommended --lang en-US de-DE ja-JP

To download two workloads and all of their recommended components:

vs_enterprise.exe --layout C:\VSLayout --add Microsoft.VisualStudio.Workload.Azure --add


Microsoft.VisualStudio.Workload.ManagedDesktop --add Component.GitHub.VisualStudio --
includeRecommended

To download two workloads and all of their recommended and optional components, run:

vs_enterprise.exe --layout C:\VSLayout --add Microsoft.VisualStudio.Workload.Azure --add


Microsoft.VisualStudio.Workload.ManagedDesktop --add Component.GitHub.VisualStudio --includeOptional

New in version 15.3


Save your layout options
When you run a layout command, the options that you specify are saved (such as the workloads and
languages). Subsequent layout commands will include all of the previous options. Here is an example of a
layout with one workload for English only:

vs_enterprise.exe --layout c:\VSLayout --add Microsoft.VisualStudio.Workload.ManagedDesktop --lang en-US

When you want to update that layout to a newer version, you don't have to specify any additional command-
line parameters. The previous settings are saved and used by any subsequent layout commands in this layout
folder. The following command will update the existing partial layout.

vs_enterprise.exe --layout c:\VSLayout

When you want to add an additional workload, here's an example of how to do so. In this case, we'll add the
Azure workload and a localized language. Now, both Managed Desktop and Azure are included in this layout.
The language resources for English and German are included for all these workloads. The layout is updated to
the latest available version.

vs_enterprise.exe --layout c:\VSLayout --add Microsoft.VisualStudio.Workload.Azure --lang de-DE

If you want to update an existing layout to a full layout, use the --all option, as shown in the following example.

vs_enterprise.exe --layout c:\VSLayout --all

Deploy from a network installation


Administrators can deploy Visual Studio onto client workstations as part of an installation script. Or, users who
have administrator rights can run setup directly from the share to install Visual Studio on their machine.
Users can install by running the following command:

\\server\products\VS\vs_enterprise.exe

Administrators can install in an unattended mode by running the following command:

\\server\products\VS\vs_enterprise.exe --quiet --wait --norestart

IMPORTANT
To prevent an error, make sure that your full layout path is less than 80 characters.
TIP
When executed as part of a batch file, the --wait option ensures that the vs_enterprise.exe process waits until the
installation is complete before it returns an exit code.
This is useful if an enterprise administrator wants to perform further actions on a completed installation (for example, to
apply a product key to a successful installation) but must wait for the installation to finish to handle the return code from
that installation.
If you do not use --wait , the vs_enterprise.exe process exits before the installation is complete and returns an
inaccurate exit code that doesn't represent the state of the install operation.

IMPORTANT
For offline installations, if you get an error message that says "A product matching the following parameters cannot be
found", make sure that you are using the --noweb switch with version 16.3.5 or later.

When you install from a layout, the content that is installed is acquired from the layout. However, if you select a
component that isn't in the layout, it will be acquired from the internet. If you want to prevent Visual Studio
setup from downloading any content that is missing in your layout, use the --noWeb option. If --noWeb is used
and the layout is missing any content that is selected to be installed, setup fails.

IMPORTANT
The --noWeb option does not stop Visual Studio setup from checking for updates. For more information, see the
Control updates to network-based Visual Studio deployments page.

Error codes
If you used the --wait parameter, then depending on the result of the operation, the %ERRORLEVEL%
environment variable is set to one of the following values:

VALUE RESULT

0 Operation completed successfully

1602 Operation was canceled

1641 Operation completed successfully, and reboot was initiated

3010 Operation completed successfully, but install requires reboot


before it can be used

5003 Bootstrapper failed to download installer

5004 Operation was canceled

5005 Bootstrapper command-line parse error

5007 Operation was blocked - the computer does not meet the
requirements
VALUE RESULT

-1073741510 Microsoft Visual Studio Installer was terminated (by the user
or external process)

Other Failure condition occurred - check the logs for more


(for example: information
-1, 1, 1603)

Update a network install layout


As product updates become available, you might want to update the network install layout to incorporate
updated packages.

How to create a layout for a previous Visual Studio release


NOTE
The Visual Studio bootstrappers that are available on visualstudio.microsoft.com download and install the latest Visual
Studio release that's available whenever they are run.
So, if you download a Visual Studio bootstrapper today and run it six months from now, it installs the Visual Studio
release that is current at the time you run the bootstrapper.
But, if you create a layout and then install from it, the layout installs the specific version of Visual Studio that exists in the
layout. Even though a newer version might exist online, you get the version of Visual Studio that is in the layout.

NOTE
The Visual Studio bootstrappers that are available on visualstudio.microsoft.com download and install the latest Visual
Studio release that's available whenever they are run.
So, if you download a Visual Studio bootstrapper today and run it six months from now, it installs the Visual Studio
release that is current at the time you run the bootstrapper.
But, if you create a layout and then install from it, the layout installs the specific version of Visual Studio that exists in the
layout. Even though a newer version might exist online, you get the version of Visual Studio that is in the layout.

If you need to create a layout for an older version of Visual Studio, go to https://my.visualstudio.com to
download "fixed" versions of the Visual Studio bootstrappers.
How to get support for your offline installer
If you experience a problem with your offline installation, we want to know about it. The best way to tell us is by
using the Report a Problem tool. When you use this tool, you can send us the telemetry and logs we need to
help us diagnose and fix the problem.
We also offer a live chat (English only) support option for installation-related issues.
We have other support options available, too. For a list, see our Feedback page.

See also
Visual Studio administrator guide
Update a network-based installation of Visual Studio
Troubleshoot network-related errors when you install or use Visual Studio
Control updates to network-based Visual Studio deployments
Visual Studio product lifecycle and servicing
Update Visual Studio while on a servicing baseline
Use command-line parameters to install Visual Studio
Visual Studio workload and component IDs
Install and use Visual Studio and Azure Services
behind a firewall or proxy server
2/21/2020 • 11 minutes to read • Edit Online

If you or your organization uses security measures such as a firewall or a proxy server, then there are domain
URLs that you might want to add to an "allow list" and ports and protocols that you might want to open so that
you have the best experience when you install and use Visual Studio and Azure Services.
Install Visual Studio: These tables include the domain URLs to add to an allow list so that you have access
to all the components and workloads that you want.
Use Visual Studio and Azure Services: This table includes the domain URLs to add to an allow list and
the ports and protocols to open so that you have access to all the features and services that you want.

NOTE
This article was written for Visual Studio on Windows, but certain information is also applicable to installing Visual Studio for
Mac behind a firewall or proxy server.

Install Visual Studio


URLs to add to an allow list
Because the Visual Studio Installer downloads files from various domains and their download servers, here are the
domain URLs that you might want to add to an allow list as trusted in the UI or in your deployment scripts.
Microsoft domains

DOMAIN PURPOSE

go.microsoft.com Setup URL resolution

aka.ms Setup URL resolution

download.visualstudio.microsoft.com Setup packages download location

download.microsoft.com Setup packages download location

download.visualstudio.com Setup packages download location

dl.xamarin.com Setup packages download location

xamarin-downloads.azureedge.net Android SDK packages download list location

marketplace.visualstudio.com Visual Studio Extensions download location

*.gallerycdn.vsassets.io Visual Studio Extensions download location

visualstudio.microsoft.com Documentation location


DOMAIN PURPOSE

docs.microsoft.com Documentation location

msdn.microsoft.com Documentation location

www.microsoft.com Documentation location

*.windows.net Sign-in location

*.microsoftonline.com Sign-in location

*.live.com Sign-in location

Non-Microsoft domains

DOMAIN INSTALLS THESE WORKLOADS

archive.apache.org Mobile development with JavaScript (Cordova)

cocos2d-x.org Game development with C++ (Cocos)

download.epicgames.com Game development with C++ (Unreal Engine)

download.oracle.com Mobile development with JavaScript (Java SDK)

Mobile Development with .NET (Java SDK)

download.unity3d.com Game development with Unity (Unity)

netstorage.unity3d.com Game development with Unity (Unity)

dl.google.com Mobile development with JavaScript (Android SDK and NDK,


Emulator)

Mobile Development with .NET (Android SDK and NDK,


Emulator)

www.incredibuild.com Game development with C++ (IncrediBuild)

incredibuildvs2017i.azureedge.net Game development with C++ (IncrediBuild)

www.python.org Python development (Python)

Data science and analytical applications (Python)

developerservices2.apple.com Xamarin.iOS provisioning

developer.apple.com Xamarin.iOS provisioning

appstoreconnect.apple.com Xamarin.iOS provisioning

idmsa.apple.com Xamarin.iOS provisioning


DOMAIN INSTALLS THESE WORKLOADS

Use Visual Studio and Azure Services


URLs to add to an allow list and ports and protocols to open
To make sure that you have access to everything you want when you use Visual Studio or Azure Services behind a
firewall or proxy server, here are the URLs you should add to an allow list and the ports and protocols that you
might want to open.

PROTOCOL
SERVICE OR SCENARIO DNS ENDPOINT /PORT DESCRIPTION

URL go.microsoft.com Used to shorten URLs, which


resolution then resolve into longer
aka.ms URLs

Start Page vsstartpage.blob.core.windo 443 Used to display Developer


ws.net News shown on the start
page (Visual Studio 2017
only)

Targeted targetednotifications- 443 Used to filter a global list of


Notification tm.trafficmanager.net notifications to a list that is
Service 443 applicable only to specific
www.research.net types of machines/usage
scenarios

Extension marketplace.visualstudio.co 443 Used to provide notifications


update check m when an installed extension
has an update available
*.windows.net
*.microsoftonline.com Used as a sign-in location
*.live.com

AI Project az861674.vo.msecnd.net 443 Used to configure new


Integration projects to send usage data
to your registered
Application Insights account

Code Lens codelensprodscus1su0.app. 443 Used to provide information


codelens.visualstudio.com in the editor about when a
file was last updated, the
timeline of changes, the
work items that changes are
associated with, the authors,
and more

Experimental visualstudio-devdiv- 80 Used to activate


feature enabling c2s.msedge.net experimental new features or
feature changes
PROTOCOL
SERVICE OR SCENARIO DNS ENDPOINT /PORT DESCRIPTION

Identity “badge” app.vssps.visualstudio.com 443 Used to display the user's


(user name and avatar) name and avatar in the IDE
and app.vsspsext.visualstudio.co
Roaming settings m Used to make sure that
setting changes roam from
app.vssps.visualstudio.com one machine to another

ns-sb2-prod-ch1-
002.cloudapp.net

az700632.vo.msecnd.net

api.vstsusers.visualstudio.co
m/profiles/*

Remote Settings az700632.vo.msecnd.net 443 Used to turn off extensions


that are known to cause
problems in Visual Studio

Windows Tools developer.microsoft.com https/443 Used for Windows app store


scenarios
dev.windows.com

appdev.microsoft.com

JSON Schema json.schemastore.org http/80 Used to discover and


Discovery schemastoreorg.azurewebsit https/443 download JSON schemas
es.net that the user might use
JSON Schema http/80 when editing JSON
Definition json-schema.org documents
https/443
JSON Schema schema.management.azure.c Used to obtain the meta-
Support for om validation schema for JSON
Azure Resources
Used to obtain the current
schema for Azure Resource
Manager deployment
templates

NPM package Skimdb.npmjs.com https/443 Required for searching for


discovery NPM packages, and used for
Registry.npmjs.org http/80 & client-side script package
https/443 installation in web projects
Api.npms.io https/443

Bower package Bower.io http/80 Provides the default bower


icons package icon
bowercache.azurewebsites.n https/443
Bower package et http/80 Provides the ability to search
search go.microsoft.com https/443 for Bower packages
Registry.bower.io
PROTOCOL
SERVICE OR SCENARIO DNS ENDPOINT /PORT DESCRIPTION

NuGet api.nuget.org https/443 Used to verify signed NuGet


www.nuget.org packages.
NuGet package nuget.org http/80 &
discovery azuresearch-usnc.nuget.org https/443 Required for searching for
azuresearch-ussc.nuget.org NuGet packages and
licenses.nuget.org versions
nuget.cdn.azure.cn
azuresearch-ea.nuget.org
azuresearch-sea.nuget.org

crl3.digicert.com
crl4.digicert.com
ocsp.digicert.com
cacerts.digicert.com

GitHub repository api.github.com https/443 Required for getting


information additional information about
bower packages

Web Linters Eslint.org http/80

www.Bing.com

www.coffeelint.org

Cookiecutter api.github.com https/443 Used to discover online


Explorer template raw.githubusercontent.com templates from our
discovery go.microsoft.com recommended feed and
from GitHub repositories
Cookiecutter pypi.org
Explorer project pypi.python.org Used to create a project
creation from a cookiecutter template
that requires a one-time on-
demand installation of a
cookiecutter Python package
from the Python package
index (PyPI)

Python package pypi.org https/443 Provides the ability to search


discovery for pip packages
pypi.python.org
Python package bootstrap.pypa.io Used to install pip
management automatically if it is missing
go.microsoft.com
New Used to resolve the
Python following new Python
project project templates to
templates cookiecutter template URLs:
- Classifier Project
- Clustering Project
- Regression Project
- PyGame using PyKinect
- Pyvot Project
PROTOCOL
SERVICE OR SCENARIO DNS ENDPOINT /PORT DESCRIPTION

Office web verificationservice.osi.office.n https/443 Used to validate manifests


add-in et for Office web add-ins
Manifest
Verification
Service

SharePoint and sharepoint.com https/443 Used to publish and test


Office Add-ins office365.com SharePoint and Office Add-
microsoftonline.com ins to SharePoint Online and
outlook.com Office 365

Workflow Manager http/12292 A firewall rule that is created


Test Service automatically for testing
Host SharePoint add-ins with
workflows

Automatically collected vortex.data.microsoft.com https/443 Used to send reliability


reliability statistics statistics (crash/hang data)
and other dc.services.visualstudio.com from the user to Microsoft.
Customer Experience Actual crash/hang dumps
Improvement Programs will still be uploaded if
(CEIP) Windows Error Reporting is
for Azure SDK and enabled; only statistical
for SQL Tools information will be
suppressed;
Used to reveal anonymous
usage patterns for the Azure
Tools SDK extension to
Visual Studio, and for usage
patterns for the SQL tooling
to Visual Studio

Visual Studio vortex.data.microsoft.com https/443 Used to collect anonymous


Customer Experience dc.services.visualstudio.com usage patterns and error
Improvement Program visualstudio-devdiv- logs
(CEIP) c2s.msedge.net
az667904.vo.msecnd.net Used to track UI freeze
PerfWatson.exe scus-breeziest- issues
in.cloudapp.net

Creation and management.azure.com https/443 Used for creating Azure


Management of management.core.windows.n Websites or other resources
Azure resources et to support the publishing of
web applications, Azure
Functions, or WebJobs

Updated web publish marketplace.visualstudio.co https/443 Used for checking for the
tooling m availability of updated
checks and extension publish tooling. If disabled, a
recommendations potential recommended
extension for web publishing
may not be shown
PROTOCOL
SERVICE OR SCENARIO DNS ENDPOINT /PORT DESCRIPTION

Updated Azure Resource *.blob.core.windows.net https/443 Used to update the


Creation Endpoint endpoints used for the
Information creation of Azure Resources
for certain Azure Services. If
disabled, the last
downloaded or built in
endpoint locations are used
instead

Remote debugging and *.cloudapp.net 4022 Used for attaching the


Remote profiling of *.azurewebsites.net remote debugger to Azure
Azure Websites Websites. If disabled,
attaching the remote
debugger to Azure Websites
will not work

Active Directory graph.windows.net https/443 Used to provision new Azure


Graph Active Directory applications.
Also used by the Office 365
MSGraph- connected service
provider

Azure Functions functionscdn.azureedge.net https/443 Used for checking for


CLI Update updated versions of the
Check Azure Functions CLI. If
disabled, a cached copy (or
the copy carried by the
Azure Functions component)
of the CLI will be used
instead

Cordova npmjs.org http/80 & HTTP is used for Gradle


gradle.org https/443 downloads during build;
HTTPS is used to include
Cordova plug-ins in projects
PROTOCOL
SERVICE OR SCENARIO DNS ENDPOINT /PORT DESCRIPTION

Cloud explorer 1. <clusterendpoint> 1. Example:


Service Fabric 1.https/19080 test12.eastus.cloudapp.com
2. <management endpoint> 2. https/443 2. Retrieves subscriptions
General Cloud Exp 3. https/443 and retrieves/manages
3. <graph endpoint> 4. https/443 Azure resources
General Cloud Exp 5. https/443 3. Retrieves Azure Stack
4. <storage account 6. https/443 subscriptions
endpoint> 7.tcp/dynamic 4. Manages Storage
Storage Nodes resources (example:
5. <Azure portal URLs> mystorageaccount.blob.core.
General Cloud Exp windows.net)
6. <key vault endpoints> 5. "Open in Portal" context
Azure Resource Manager menu option (opens a
VM Nodes resource in the Azure portal)
7. 6. Creates and uses key
<PublicIPAddressOfCluster> vaults for VM debugging
Service Fabric Remote (Example:
debugging and ETW Traces myvault.vault.azure.net)

7. Dynamically allocates
block of ports based on
number of nodes in the
cluster and the available
ports.

A port block will try to get


three times the number of
nodes with minimum of 10
ports.

For Streaming traces, an


attempt is made to get the
port block from 810. If any
of that port block is already
used, then an attempt is
made to get the next block,
and so on. (It the load
balancer is empty, then
ports from 810 are most
likely used)

Similarly for debugging, four


sets of the ports blocks are
reserved:
- connectorPort: 30398,
- forwarderPort: 31398,
- forwarderPortx86: 31399,
- fileUploadPort: 32398
PROTOCOL
SERVICE OR SCENARIO DNS ENDPOINT /PORT DESCRIPTION

Cloud Services 1. RDP 1. rdp/3389 1. Remote Desktop to Cloud


Services VM
2. core.windows.net 2. https/443
2. Storage account
3. management.azure.com 3. https/443 component of the private
management.core.windows.n diagnostics configuration
et 4. https/443
3. Azure portal
4. *.blob.core.windows.net 5. https/443
*.queue.core.windows.net 4. Server Explorer - Azure
*.table.core.windows.net 6. tcp Storage * is customer named
a) 30398 storage account
5. portal.azure.com b) 30400
c) 31398 5. Links to open the portal /
6. <user's cloud d) 31400 Download the subscription
service>.cloudapp.net e) 32398 certificate / Publish settings
<user's VM>. f) 32400 file
<region>.azure.com
6. a) Connector local port for
remote debug for cloud
service and VM
6. b) Connector public port
for remote debug for cloud
service and VM
6. c) Forwarder local port for
remote debug for cloud
service and VM
6. d) Forwarder public port
for remote debug for cloud
service and VM
6. e) File uploader local port
for remote debug for cloud
service and VM
6. f) File uploader public port
for remote debug for cloud
service and VM

Service Fabric 1. https/443 1. Documentation


ocs.Microsoft.com
aka.ms 2. Create Cluster feature
go.microsoft.com
3. The * is the Azure key
2. vault name (Example:-
vssftools.blob.core.windows. test11220180112110108.va
net ult.azure.net
Vault.azure.com
Portal.azure.com 4. The * is dynamic (Example:
vsspsextprodch1su1.vsspsex
3. * vault.azure.net t.visualstudio.com)

4.
app.vsaex.visualstudio.com
* .vsspsext.visualstudio.com
clouds.vsrm.visualstudio.com
clouds.visualstudio.com
app.vssps.visualstudio.com
* .visualstudio.com
PROTOCOL
SERVICE OR SCENARIO DNS ENDPOINT /PORT DESCRIPTION

Snapshot 1. go.microsoft.com 1. https/443 1. Query .json file for app


Debugger 2. management.azure.com 2. https/443 service SKU size
3. *.azurewebsites.net 3. http/80 2. Various Azure RM calls
4. *.scm.azurewebsites.net 4. https/443 3. Site warmup call via
5. 5. https/443 4. Customer's targeted App
api.nuget.org/v3/index.json 6. Concord/ Service Kudu endpoint
6. Remote Service/Servers IP 4022 (Visual Studio version 5. Query Site Extension
address/FQDN dependent) version published in
nuget.org
6. Remote debugging

Azure Stream Analytics Management.azure.com https/443 Used to view, submit, run,


and manage ASA jobs
HDInsight
Used to browse HDI clusters,
and to submit, diagnose,
and debug HDI jobs

Azure Data Lake *.azuredatalakestore.net https/443 Used to compile, submit,


*.azuredatalakeanalytics.net view, diagnose, and debug
jobs; used to browse ADLS
files; used to upload and
download files

Packaging Service [account].visualstudio.com https/443 The *.npmjs.org, *.nuget.org,


[account].*.visualstudio.com and *.nodejs.org are only
*.blob.core.windows.net required for certain build
registry.npmjs.org task scenarios (for example:
nodejs.org NuGet Tool Installer, Node
dist.nuget.org Tool Installer) or if you
nuget.org intend to use public
upstream with your Feeds.
The other three domains are
required for core
functionality of the
Packaging service.

Azure DevOps Services *.vsassets.io Used to connect with Azure


static2.sharepointonline.com DevOps Services
dev.azure.com

Developer Community sendvsfeedback2.azurewebsi https/443 Used to call Developer


tes.net/api Community Feedback Tool
APIs (my issues, search, vote,
comment, submit, upload,
resume)

Intellicode *.intellicode.vsengsaas.visual https/443 Used to call Intellicode APIs


studio.com

Live Share *.liveshare.vsengsaas.visualst https/443 Used to call Live Share APIs


udio.com

Visual Studio Online *.online.visualstudio.com https/443 Used to call Visual Studio


Online APIs
PROTOCOL
SERVICE OR SCENARIO DNS ENDPOINT /PORT DESCRIPTION

JavaScript Automatic Type registry.npmjs.org https/443 Used to install TypeScript


Acquisition type definitions to provide
Intellisense for popular
JavaScript libraries

Visual Studio Subscriptions app.vssps.visualstudio.com/a https/443 Licensing for online


Licensing Service pis/ activation
Licensing/ClientRights

Debugger 1. https/443 1.
vsdebugger.blob.core.windo Used for downloading
ws.net debugger bits for .NET Core
vsdebugger.azureedge.net debugging on Unix / macOS
over SSH
2.
download.visualstudio.com/* 2.
/ Used for downloading
onecore.msvsmon.*.zip debugger bits for remote
Windows Docker container
3. debugging
referencesource.microsoft.co
m/symbols 3. Used for .NET framework
source stepping
4.
symbols.nuget.org/downloa 4.
d/symbols (If user opts-in) Used for
downloading symbols
5. visualstudio.com published to nuget.org
symbol server.
6.
msdl.microsoft.com/downloa 5. (If user opts-in) Used for
d/symbols downloading MS symbols
and binaries, might also be
needed for debugging
managed code in dumps

Visual Studio Online *.online.visualstudio.com https/443 Used to call Visual Studio


Online APIs

Xamarin Android App *.googleapis.com https/443 Used to interact with Google


Publishing play.google.com Play Store service to
accounts.google.com publish/upload Xamarin
Android Applications directly
from Visual Studio.

Azure Container Registry *.azurecr.io https/443 Access container registries


hosted on Azure, for
configuration of CICD
pipelines

Troubleshoot network-related errors


Sometimes, you might run in to network- or proxy-related errors when you install or use Visual Studio behind a
firewall or a proxy server. For more information about solutions for such error messages, see the Troubleshooting
network-related errors when you install or use Visual Studio page.
Get support
We offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and in
the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Connectivity requirements for Live Share
Create a network installation of Visual Studio
Troubleshoot network-related errors in Visual Studio
Visual Studio administrator guide
Install behind a firewall or proxy server (Visual Studio for Mac)
Troubleshoot network-related errors when you install
or use Visual Studio
1/16/2020 • 4 minutes to read • Edit Online

We've got solutions for the most typical network- or proxy-related errors that you might encounter when you
install or use Visual Studio behind a firewall or a proxy server.

Error: “Proxy authorization required”


This error generally occurs when users are connected to the internet through a proxy server, and the proxy server
blocks the calls that Visual Studio makes to some network resources.
To fix this proxy error
Restart Visual Studio. A proxy authentication dialog box should appear. Enter your credentials when
prompted in the dialog.
If restarting Visual Studio does not solve the problem, it might be that your proxy server does not prompt
for credentials for http://go.microsoft.com addresses but does so for *.visualStudio.microsoft.com
addresses. For these servers, consider adding the following URLs to an allow list to unblock all sign-in
scenarios in Visual Studio:
*.windows.net
*.microsoftonline.com
*.visualstudio.microsoft.com
*.microsoft.com
*.live.com
You can otherwise remove the http://go.microsoft.com address from the allow list so that the proxy
authentication dialog shows up for both the http://go.microsoft.com address and the server endpoints
when Visual Studio is restarted.
-OR -
If you want to use your default credentials with your proxy, you can perform the following actions:
1. Find devenv.exe.config (the devenv.exe configuration file) in: %ProgramFiles%\Microsoft Visual
Studio\2017\Enterprise\Common7\IDE or %ProgramFiles(x86)%\Microsoft Visual
Studio\2017\Enterprise\Common7\IDE.
2. In the configuration file, find the <system.net> block, and then add this code:

<defaultProxy enabled="true" useDefaultCredentials="true">


<proxy bypassonlocal="True" proxyaddress="http://<yourproxy:port#>"/>
</defaultProxy>

You must insert the correct proxy address for your network in proxyaddress="<http://<yourproxy:port#> .
NOTE
For more information, see the <defaultProxy> Element (Network Settings) and <proxy> Element (Network Settings)
pages.

1. Find devenv.exe.config (the devenv.exe configuration file) in: %ProgramFiles%\Microsoft Visual


Studio\2019\Enterprise\Common7\IDE or %ProgramFiles(x86)%\Microsoft Visual
Studio\2019\Enterprise\Common7\IDE.
2. In the configuration file, find the <system.net> block, and then add this code:

<defaultProxy enabled="true" useDefaultCredentials="true">


<proxy bypassonlocal="True" proxyaddress="http://<yourproxy:port#>"/>
</defaultProxy>

You must insert the correct proxy address for your network in proxyaddress="<http://<yourproxy:port#> .

NOTE
For more information, see the <defaultProxy> Element (Network Settings) and <proxy> Element (Network Settings)
pages.

Error: “The underlying connection was closed”


If you are using Visual Studio in a private network that has a firewall, Visual Studio might not be able to connect
to some network resources. These resources can include Azure DevOps Services for sign-in and licensing, NuGet,
and Azure services. If Visual Studio fails to connect to one of these resources, you might see the following error
message:
The underlying connection was closed: An unexpected error occurred on send
Visual Studio uses Transport Layer Security (TLS ) 1.2 protocol to connect to network resources. Security
appliances on some private networks block certain server connections when Visual Studio uses TLS 1.2.
To fix this connection error
Enable connections for the following URLs:
https://management.core.windows.net
https://app.vssps.visualstudio.com
https://login.microsoftonline.com
https://login.live.com
https://go.microsoft.com
https://graph.windows.net
https://app.vsspsext.visualstudio.com
*.azurewebsites.net (for Azure connections)
*.visualstudio.microsoft.com
cdn.vsassets.io (hosts content delivery network, or CDN, content)
*.gallerycdn.vsassets.io (hosts Azure DevOps Services extensions)
static2.sharepointonline.com (hosts resources that Visual Studio uses in the Office UI Fabric kit, such as
fonts)
*.nuget.org (for NuGet connections)

NOTE
Privately owned NuGet server URLs may not be included in this list. You can check for the NuGet servers that you
are using in %APPData%\Nuget\NuGet.Config.

Error: "Failed to parse ID from parent process"


You might encounter this error message when you use a Visual Studio bootstrapper and a response.json file on a
network drive. The error's source is the User Account Control (UAC ) in Windows.
Here's why this error can happen: A mapped network drive or UNC share is linked to a user's access token. When
UAC is enabled, two user access tokens are created: One with administrator access, and one without administrator
access. When a network drive or share is created, the user's current access token is linked to it. Because the
bootstrapper must be run as administrator, it won't be able to access the network drive or share if either the drive
or the share isn't linked to a user access token that has administrator access.
To fix this error
You can use the net use command or you can change the UAC Group Policy setting. For more information about
these workarounds and how to implement them, see the following Microsoft support articles:
Mapped drives are not available from an elevated prompt when UAC is configured to "Prompt for credentials"
in Windows
Programs may be unable to access some network locations after you turn on User Account Control in
Windows operating systems

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio
installation and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and
in the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Install and use Visual Studio behind a firewall or proxy server
Visual Studio administrator guide
Install Visual Studio
How to define settings in a response file
1/16/2020 • 3 minutes to read • Edit Online

Administrators who deploy Visual Studio can specify a response file by using the --in parameter, as in the
following example:

vs_enterprise.exe --in customInstall.json

Response files are JSON files whose contents mirror the command-line arguments. In general, if a command-
line parameter takes no arguments (for example, --quiet , --passive , etc.), the value in the response file should
be true/false. If it takes an argument (for example, --installPath <dir> ), the value in the response file should be
a string. If it takes an argument and can appear on the command line more than once (for example, --add <id> ),
it should be an array of strings.
Parameters that are specified on the command-line override settings from the response file, except when
parameters take multiple inputs (for example, --add ). When you have multiple inputs, the inputs supplied on the
command line are merged with settings from the response file.

Setting a default configuration for Visual Studio


If you created a network layout cache with the --layout , an initial response.json file is created in the layout. If
you create a partial layout, this response file includes the workloads and languages that were included in the
layout. Running setup from this layout automatically uses this response.json file, which selects the workloads and
components included in the layout. Users can still select or unselect any workloads in the setup UI before
installing Visual Studio.
Administrators who create a layout can modify the response.json file in the layout to control the default settings
that their users see when they install Visual Studio from the layout. For example, if an administrator wants
specific workloads and components installed by default, they can configure the response.json file to add them.
When Visual Studio setup is run from a layout folder, it automatically uses the response file in the layout folder.
You don't have to use the --in option.
You can update the response.json file that is created in an offline layout folder to define the default setting for
users who install from this layout.

WARNING
It's critical that you leave the existing properties that were defined when the layout was created.

The base response.json file in a layout should look similar to the following example, except that it would include
the value for the product and channel that you want to install:

{
"installChannelUri": ".\\ChannelManifest.json",
"channelUri": "https://aka.ms/vs/15/release/channel",
"installCatalogUri": ".\\Catalog.json",
"channelId": "VisualStudio.15.Release",
"productId": "Microsoft.VisualStudio.Product.Enterprise"
}
{
"installChannelUri": ".\\ChannelManifest.json",
"channelUri": "https://aka.ms/vs/16/release/channel",
"installCatalogUri": ".\\Catalog.json",
"channelId": "VisualStudio.16.Release",
"productId": "Microsoft.VisualStudio.Product.Enterprise"
}

When you create or update a layout, a response.template.json file is also created. This file contains all of the
workload, component, and language IDs that can be used. This file is provided as a template for what all could be
included in a custom install. Administrators can use this file as a starting point for a custom response file. Just
remove the IDs for the things you do not want to install and save it in your own response file. Do not customize
the response.template.json file or your changes will be lost whenever the layout is updated.

Example layout response file content


The following example installs Visual Studio Enterprise with six common workloads and components, and with
both English and French UI languages. You can use this example as a template; just change the workloads and
components to those that you want to install:

{
"installChannelUri": ".\\ChannelManifest.json",
"channelUri": "https://aka.ms/vs/15/release/channel",
"installCatalogUri": ".\\Catalog.json",
"channelId": "VisualStudio.15.Release",
"productId": "Microsoft.VisualStudio.Product.Enterprise",

"installPath": "C:\\VS2017",
"quiet": false,
"passive": false,
"includeRecommended": true,
"norestart": false,

"addProductLang": [
"en-US",
"fr-FR"
],

"add": [
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.Data",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.NetWeb",
"Microsoft.VisualStudio.Workload.Office",
"Microsoft.VisualStudio.Workload.Universal",
"Component.GitHub.VisualStudio"
]
}
{
"installChannelUri": ".\\ChannelManifest.json",
"channelUri": "https://aka.ms/vs/16/release/channel",
"installCatalogUri": ".\\Catalog.json",
"channelId": "VisualStudio.16.Release",
"productId": "Microsoft.VisualStudio.Product.Enterprise",

"installPath": "C:\\VS2019",
"quiet": false,
"passive": false,
"includeRecommended": true,
"norestart": false,

"addProductLang": [
"en-US",
"fr-FR"
],

"add": [
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.Data",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.NetWeb",
"Microsoft.VisualStudio.Workload.Office",
"Microsoft.VisualStudio.Workload.Universal",
"Component.GitHub.VisualStudio"
]
}

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio
installation and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and
in the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Visual Studio workload and component IDs
Troubleshoot network-related errors when you install or use Visual Studio
Automatically apply product keys when deploying
Visual Studio
1/16/2020 • 2 minutes to read • Edit Online

You can apply your product key programmatically as part of a script that is used to automate the deployment of
Visual Studio. You can set a product key on a device programmatically either during an installation of Visual
Studio or after an installation completes.

Apply the license after installation


You can activate an installed version of Visual Studio with a product key by using the StorePID.exe utility on the
target machines, in silent mode. StorePID.exe is a utility program that installs with Visual Studio 2017 at the
following default location:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE

You can activate an installed version of Visual Studio with a product key by using the StorePID.exe utility on the
target machines, in silent mode. StorePID.exe is a utility program that installs with Visual Studio 2019 at the
following default location:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE

Run StorePID.exe with elevated privileges, either by using a System Center agent or an elevated command
prompt. Follow it with the product key and the Microsoft Product Code (MPC ).

IMPORTANT
Make sure to include the dashes in the product key.

StorePID.exe [product key including the dashes] [MPC]

The following example shows a command line for applying the license for Visual Studio 2017 Enterprise, which
has an MPC of 08860, a product key of AAAAA-BBBBB-CCCCC-DDDDDD-EEEEEE , and assumes a default installation
location:

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\StorePID.exe" AAAAA-BBBBB-CCCCC-


DDDDDD-EEEEEE 08860

The following example shows a command line for applying the license for Visual Studio 2019 Enterprise, which
has an MPC of 09260, a product key of AAAAA-BBBBB-CCCCC-DDDDDD-EEEEEE , and assumes a default installation
location:

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\StorePID.exe" AAAAA-BBBBB-CCCCC-


DDDDDD-EEEEEE 09260

The following table lists the MPC codes for each edition of Visual Studio:
VISUAL STUDIO EDITION MPC

Visual Studio Enterprise 2017 08860

Visual Studio Professional 2017 08862

Visual Studio Test Professional 2017 08866

VISUAL STUDIO EDITION MPC

Visual Studio Enterprise 2019 09260

Visual Studio Professional 2019 09262

If StorePID.exe successfully applies the product key, it returns an %ERRORLEVEL% of 0. If it encounters errors, it
returns one of the following codes, depending on the error condition:

ERROR CODE

PID_ACTION_SUCCESS 0

PID_ACTION_NOTINSTALLED 1

PID_ACTION_INVALID 2

PID_ACTION_EXPIRED 3

PID_ACTION_INUSE 4

PID_ACTION_FAILURE 5

PID_ACTION_NOUPGRADE 6

NOTE
When you run a virtual instance of Visual Studio, make sure that you also virtualize the local AppData folder and the
registry. To troubleshoot virtual instances, run
C:\Program Files (x86)\Microsoft Visual Studio\<version>\Common7\IDE\DDConfigCA.exe .

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio installation
and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and in
the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Install Visual Studio
Create an offline installation of Visual Studio
Set defaults for enterprise deployments of Visual
Studio
1/16/2020 • 2 minutes to read • Edit Online

You can set registry policies that affect the deployment of Visual Studio. These policies are global for the new
installer and affect:
Where some packages shared with other versions or instances are installed
Where packages are cached
Whether all packages are cached
You can set some of these policies using command-line options, set registry values on your machine, or even
distribute them using Group Policy across an organization.

Registry keys
There are several locations where you can set enterprise defaults, to enable their control either through Group
Policy or directly in the registry. Visual Studio looks sequentially to see if any enterprise policies have been set; as
soon as a policy value is discovered in the order below, the remaining keys are ignored.
1. HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\VisualStudio\Setup
2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup
3. HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\Setup (on 64-bit operating systems)

IMPORTANT
If you do not set the HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\VisualStudio\Setup key and instead set one
of the other keys, you should set both other keys on 64-bit operating systems. This issue is addressed in a future product
update.

Some registry values are set automatically the first time they are used if not set already. This practice ensures that
subsequent installs use the same values. These values are stored in the second registry key,
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup .

You can set the following registry values:

NAME TYPE DEFAULT DESCRIPTION

CachePath REG_SZ or %ProgramData%\Microsoft\ The directory where package


REG_EXPAND_SZ VisualStudio\Packages manifests and, optionally,
payloads are stored. For
more information, see the
Disable or move the
package cache page.
NAME TYPE DEFAULT DESCRIPTION

KeepDownloadedPayloads REG_DWORD 1 Keep package payloads even


after they are installed. You
can change the value
anytime. Disabling the policy
removes any cached
package payloads for the
instance you repair or
modify. For more
information, see the Disable
or move the package cache
page.

SharedInstallationPath REG_SZ or %ProgramFiles(x86)%\Micro The directory where some


REG_EXPAND_SZ soft Visual Studio\Shared packages shared across
versions of instances of
Visual Studio are installed.
You can change the value
any time, but it will only
affect future installs. Any
products already installed to
the old location must not be
moved or they might not
function correctly.

BackgroundDownloadDisabled REG_DWORD 1 Prevent setup from


downloading updates
automatically for all installed
Visual Studio products. You
can change the value
anytime.

IMPORTANT
If you change the CachePath registry policy after any installations, you must move the existing package cache to the new
location and make sure it's secured so that SYSTEM and Administrators have Full Control and that Everyone has Read
access. Failure to move the existing cache or securing it might cause problems with future installs.

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio
installation and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and
in the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Install Visual Studio
Disable or move the package cache
Use command-line parameters to install Visual Studio
Help Viewer administrator guide
7/11/2019 • 3 minutes to read • Edit Online

The Help Viewer allows you to manage local Help installations for network environments with or without internet
access. Local help content is configured on a per machine basis. By default, users must have administrator rights to
update their local Help installation.
If your network environment allows clients to access the internet, you can use the Help Content Manager
executable to deploy local Help content from the internet. For more information about HlpCtntMgr.exe command
line syntax, see Command-line arguments for the Help Content Manager.
For information about creating content, creating an intranet service endpoint, and similar types of activities, see
the Help Viewer SDK.
If you do not have internet access in your network environment, Help Viewer can deploy local Help content from
the intranet or a network share. You can also disable Visual Studio IDE Help options by using registry key
overrides for functionality such as:
online versus offline help
content installation at first launch of the IDE
specifying an intranet content service
managing content

Deploy local Help content from the internet


You can use Help Content Manager (HlpCtntMgr.exe) to deploy local Help content from the internet to client
computers. Use the following syntax:

\\%ProgramFiles(x86)%\Microsoft Help Viewer\v2.3\HlpCtntmgr.exe /operation \<*name*> /catalogname \<*catalog


name*> /locale \<*locale*>

For more information about HlpCtntMgr.exe command line syntax, see Command-line arguments for the Help
Content Manager.
Requirements:
Client computers must have access to the internet.
Users must have administrator rights to update, add, or remove the local Help content after it has been
installed.
Caveats:
The default source for Help will still be online.
Example
The following example installs English content for Visual Studio to a client computer.
To install English content from the internet
1. Choose Start and then choose Run.
2. Type the following:
C:\Program Files (x86)\Microsoft Help Viewer\v2.3\hlpctntmgr.exe /operation install /catalogname
VisualStudio15 /locale en-us

3. Press Enter.

Deploy pre-installed local Help content on client computers


You can install a set of content from online to one computer, and then copy that installed set of content to other
computers.
Requirements:
The computer you install the set of content to must have access to the internet.
Users must have administrator rights to update, add, or remove the local Help content after it has been
installed.

TIP
If users do not have administrator rights, it is recommended that you disable the Manage Content tab in the Help
Viewer. For more information, see Help Content Manager overrides.

Caveats:
The default source for Help will still be online.
Create the content set
Before you can create the base content set, you must first uninstall all local Visual Studio content on the target
computer.
To uninstall local help
1. In the Help Viewer, choose the Manage Content tab.
2. Navigate to the Visual Studio document set.
3. Choose Remove next to each sub-item.
4. Choose Update to uninstall.
5. Browse to %ProgramData%\Microsoft\HelpLibrary2\Catalogs\VisualStudio15 and verify that the folder
only contains the file catalogType.xml.
Once you have removed all previously installed local Visual Studio Help content, you are ready to
download the base content set.
To download the content
1. In the Help Viewer, choose the Manage Content tab.
2. Under Recommended Documentation or Available Documentation, navigate to the documentation
sets you want to download and then choose Add.
3. Choose Update.
Next, you need to package the content so it can be deployed to client computers.
To package the content
1. Create a folder to copy the content to for later deployment. For example: C:\VSHelp.
2. Open cmd.exe with Administrator permissions.
3. Navigate to the folder you created in step 1.
4. Type the following:
Xcopy %ProgramData%\Microsoft\HelpLibrary2 \<*foldername*>\ /y /e /k /o

For example: Xcopy %ProgramData%\Microsoft\HelpLibrary2 c:\VSHelp\ /y /e /k /o

Deploy the content


1. Create a network share and copy the help content to that location.
For example, copy the content in C:\VSHelp to \\myserver\VSHelp.
2. Create a .bat file to contain the deployment script for the help content. Since the client could possibly have a
read lock on any of the files being deleted as part of the push, you should have the client shut down prior to
pushing updates. For example:

REM - copy pre-ripped content to ProgramData


Xcopy %~dp0HelpLibrary2 %SYSTEMDRIVE%\ProgramData\Microsoft\HelpLibrary2\ /y /e /k /o
if ERRORLEVEL 1 ECHO *** ERROR COPYING Help Library files to ProgramData (%ERRORLEVEL%)

3. Run the .bat file on the local machines that you want to install the Help content on.

See also
Command-line arguments for the Help Content Manager
Help Content Manager overrides
Microsoft Help Viewer
Help Viewer SDK
Command-line arguments for the Help Content
Manager
10/18/2019 • 5 minutes to read • Edit Online

You can specify how to deploy and manage local Help content by using command-line arguments for Help
Content Manager (HlpCtntMgr.exe). You must run scripts for this command-line tool with administrator
permissions, and you can't run these scripts as a service. You can perform the following tasks by using this tool:
Add or update local Help content from a disk or the cloud.
Remove local Help content.
Move the local Help content store.
Add, update, remove, or move local Help content silently.
Syntax:

HlpCtntmgr.exe /operation Value /catalogname CatalogName /locale Locale /sourceuri InstallationPoint

For example:

hlpctntmgr.exe /operation install /catalogname VisualStudio15 /locale en-us /sourceuri


d:\productDocumentation\HelpContentSetup.msha

NOTE
The catalog name is VisualStudio15 for both Visual Studio 2017 and Visual Studio 2019. This might be unexpected, but this
is because the same Help Viewer is used for both Visual Studio versions.

Switches and arguments


The following table defines the switches and arguments that you can use for the command-line tool for Help
Content Manager:

SWITCH REQUIRED? ARGUMENTS


SWITCH REQUIRED? ARGUMENTS

/operation Yes - Install--Adds books from the


specified installation source to the local
content store.
This switch requires the /booklist
argument, the /sourceURI argument, or
both. If you don't specify the
/sourceURI argument, the default Visual
Studio URI is used as the installation
source. If you don't specify the /booklist
argument, all books on the /sourceUri
are installed.
- Uninstall--Removes the books that
you specify from the local content
store.
This switch requires the /booklist
argument or the /sourceURI argument.
If you specify the /sourceURI argument,
all books are removed, and the
/booklist argument is ignored.
- Move--Moves the local store to the
path that you specify. The default local
store path is set as a directory under
%ProgramData%
This switch requires the /locationPath
and /catalogName arguments. Error
messages will be logged in the event
log if you specify a path that isn't valid
or if the drive doesn't contain enough
free space to hold the content.
- Refresh--Updates topics that have
changed since they were installed or
most recently updated.
This switch requires the /sourceURI
argument.

/catalogName Yes Specifies the name of the content


catalog. For Visual Studio 2017 and
Visual Studio 2019, this is
VisualStudio15.

/locale No Specifies the product locale that's used


to view and manage content for the
current instance of the Help viewer. For
example, you specify EN-US for
English-United States.

If you don't specify a locale, the locale


of the operating system is used. If that
locale can't be determined, EN-US is
used.

If you specify a locale that isn't valid, an


error message is logged in the event
log.

/e No Elevates the Help Content Manager to


Administrative privileges if the current
user has administrative credentials.
SWITCH REQUIRED? ARGUMENTS

/sourceURI No Specifies the URL from which content is


installed (Service API) or the path to the
content installation file (.msha). The
URL can point to the Product Group
(top-level node) or to the Product
Books (leaf-level node) in a Visual
Studio 2010 style endpoint. You don't
need to include a slash (/) at the end of
the URL. If you do include a trailing
slash, it will be handled appropriately.

An error message is logged in the event


log if you specify a file that isn't found,
isn't valid, or isn't accessible or if a
connection to the internet isn't available
or is interrupted while content is being
managed.

/vendor No Specifies the vendor for the product


content that will be removed (for
example, Microsoft ). The default
argument for this switch is Microsoft.

/productName No Specifies the product name for the


books that will be removed. The
product name is identified in the
helpcontentsetup.msha or books.html
files that shipped with the content. You
can remove books from only one
product at a time. To remove books
from multiple products, you must
perform multiple installations.

/booklist No Specifies the names of the books to be


managed, separated by spaces. Values
must match the book names as listed
on the installation media.

If you don't specify this argument, all


recommended books for the specified
product in the /sourceURI are installed.

If the name of a book contains one or


more spaces, surround it with double
quotes (") so that the list is delimited
appropriately.

Error messages will be logged if you


specify a /sourceURI that isn't valid or
isn't reachable.

/skuId No Specifies the stock keeping unit (SKU) of


the product from the installation
source, and filters books that the
/SourceURI switch identifies.
SWITCH REQUIRED? ARGUMENTS

/membership No - Minimum-- Installs a minimum set of


Help content based on the SKU that
you specify by using the /skuId switch.
The mapping between the SKU and the
content set is exposed in the Service
API.
- Recommended—Installs a set of
recommended books for the SKU that
you specify by using the /skuId
argument. The Installation source is the
service API or .MSHA.
- Full-- Installs the entire set of books
for the SKU that you specify by using
the /skuId argument. The Installation
source is the service API or .MSHA.

/locationpath No Specifies the default folder for local Help


content. You must use this switch only
to install or move content. If you
specify this switch, you must also
specify the /silent switch.

/silent No Installs or removes Help content


without prompting the user or
displaying any UI, including the icon in
the status notification area. Output is
logged to a file in the %Temp%
directory. Important: To install content
silently, you must use digitally signed
.cab files, not .mshc files.

/launchingApp No Defines the application and catalog


context when the Help viewer is
launched without the parent
application. The arguments for this
switch are CompanyName,
ProductName, and VersionNumber (for
example,
/launchingApp
Microsoft,VisualStudio,16.0
).

This is required for installing content


with the /silent parameter.

/wait Seconds No Pauses install, uninstall, and refresh


operations. If an operation is already in
progress for the catalog, the process
will wait up to the given number of
seconds to continue. Use 0 to wait
indefinitely.

/? No Lists the switches and their descriptions


for the command-line tool for Help
Content Manager.

Exit codes
When you run the command-line tool for the Help Content Manager in silent mode, it returns the following exit
codes:
Success = 0,

FailureToElevate = 100
InvalidCmdArgs = 101,
FailOnFetchingOnlineContent = 110,
FailOnFetchingContentFromDisk = 120,
FailOnFetchingInstalledBooks = 130,
NoBooksToUninstall = 200,
NoBooksToInstall = 300,
FailOnUninstall = 400,
FailOnInstall = 500,
FailOnMove = 600,
FailOnUpdate = 700,
FailOnRefresh = 800,
Cancelled = 900,
Others = 999,
ContentManagementDisabled = 1200,
OnlineHelpPreferenceDisabled = 1201
UpdateAlreadyRunning = 1300 - (Signals that the update didn't run because another was in progress.)

See also
Help Viewer administrator guide
Help Content Manager overrides
Microsoft Help Viewer
Help Content Manager overrides
7/11/2019 • 2 minutes to read • Edit Online

You can change the default behavior of Help Viewer and help-related features in the Visual Studio IDE. Some
options are specified by creating a .pkgdef file to set various registry key values. Others are set directly in the
registry.

How to control Help Viewer behavior by using a .pkgdef file


1. Create a .pkgdef file with the first line as [$RootKey$\Help] .
2. Add any or all of the registry key values described in the table below on separate lines, for example
"UseOnlineHelp"=dword:00000001 .

3. Copy the file to %ProgramFiles(x86 )%\Microsoft Visual Studio\2017\


<edition>\Common7\IDE\CommonExtensions.
4. Run devenv /updateconfiguration in a developer command prompt.
Registry key values
REGISTRY KEY VALUE TYPE DATA DESCRIPTION

NewContentAndUpdateServ string <http URL for service Define a unique service


ice endpoint> endpoint

UseOnlineHelp dword 0 to specify local Help, 1 Define online or offline Help


to specify online Help default

OnlineBaseUrl string <http URL for service Define a unique F1 endpoint


endpoint>

OnlineHelpPreferenceDisabl dword 0 to enable or 1 to Disable online Help


ed disable online Help preference option
preference option

DisableManageContent dword 0 to enable or 1 to Disable the Manage


disable the Manage Content tab
Content tab in Help Viewer

DisableFirstRunHelpSelectio dword 0 to enable or 1 to Disable installation of


n disable help features that content at first launch of
are configured the first time Visual Studio
that Visual Studio starts

Example .pkgdef file contents


[$RootKey$\Help]
"NewContentAndUpdateService"="https://some.service.endpoint"
"UseOnlineHelp"=dword:00000001
"OnlineBaseUrl"="https://some.service.endpoint"
"OnlineHelpPreferenceDisabled"=dword:00000000
"DisableManageContent"=dword:00000000
"DisableFirstRunHelpSelection"=dword:00000001

Use Registry Editor to change Help Viewer behavior


The following two behaviors can be controlled by setting registry key values in the Registry Editor.

TASK REGISTRY KEY VALUE DATA

Override BITS job priority HKEY_LOCAL_MACHINE\SO BITSPriority foreground, high, normal,


FTWARE\Wow6432Node or low
(on a 64-bit
machine)\Microsoft\Help\v2.
3

Point to local content store HKEY_LOCAL_MACHINE\SO LocationPath "ContentStoreNetworkShare


on network share FTWARE\Microsoft\Help\ "
v2.3\Catalogs\VisualStudio1
5

See also
Help Viewer administrator guide
Command-line arguments for the Help Content Manager
Microsoft Help Viewer
Tools for detecting and managing Visual Studio
instances
1/16/2020 • 2 minutes to read • Edit Online

There are several tools that you can use to detect Visual Studio installations on client machines, and to manage
the installations, too.

Detecting existing Visual Studio instances


We have made several tools available that will help you detect and manage installed Visual Studio instances on
client machines:
vswhere: an executable built into Visual Studio or available for separate distribution that helps you find the
location of all Visual Studio instances on a particular machine.
VSSetup.PowerShell: PowerShell scripts that use the Setup Configuration API to identify installed instances
of Visual Studio.
VS -Setup-Samples: C# and C++ samples that demonstrate how to use the Setup Configuration API to query
an existing installation.
In addition, the Setup Configuration API provides interfaces for developers who want to build their own utilities
for interrogating Visual Studio instances.

Using vswhere.exe
vswhere.exe is automatically included in Visual Studio (starting with Visual Studio 2017 version 15.2 and later
versions), or you can download it from the vswhere releases page. Use vswhere -? to get help information about
the tool. As an example, this command shows all releases of Visual Studio, including earlier versions of the
product and prereleases, and outputs the results in JSON format:

C:\Program Files (x86)\Microsoft Visual Studio\Installer> vswhere.exe -legacy -prerelease -format json

TIP
For more information about Visual Studio 2017 installation, see Visual Studio Setup Archives.

Editing the registry for a Visual Studio instance


In Visual Studio, registry settings are stored in a private location, which enables multiple side-by-side instances
of the same version of Visual Studio on the same machine.
As these entries are not stored in the global registry, there are special instructions for using the Registry Editor to
make changes to registry settings:
1. If you have an open instance of Visual Studio, close it.
2. Start regedit.exe .
3. Select the HKEY_LOCAL_MACHINE node.
4. From the Regedit main menu, select File > Load Hive... and then select the private registry file, which is
stored in the AppData\Local folder. For example:

%localappdata%\Microsoft\VisualStudio\<config>\privateregistry.bin

NOTE
<config> corresponds to the instance of Visual Studio that you would like to browse.

You will be prompted to provide a hive name, which becomes the name of your isolated hive. After you do so,
you should be able to browse the registry under the isolated hive that you created.

IMPORTANT
Before you start Visual Studio again, you must unload the isolated hive that you created. To do this, select File > Unload
Hive from the Regedit main menu. (If you do not do this, then the file remains locked and Visual Studio will not be able to
start.)

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio
installation and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and
in the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Visual Studio Administrators Guide
Update a network-based installation of Visual Studio
1/16/2020 • 7 minutes to read • Edit Online

It's possible to update a network installation layout of Visual Studio with the latest product updates so that it can
be used both as an installation point for the latest update of Visual Studio and also to maintain installations that
are already deployed to client workstations.

How to update a network layout


IMPORTANT
These instructions assume that you've previously created a network installation layout. For more information about how
to do so, see the Create a network installation of Visual Studio page.

To refresh your network install share so that it includes the latest updates, run the --layout command to
incrementally download updated packages.
New in 15.3: If you selected a partial layout when you first created the network layout, those settings are saved.
Any future layout commands use the previous options plus any new options that you specify. But if you are
using a layout of an earlier version, you should use the same command-line parameters that you used when you
first created the network install layout (in other words, the same workloads and languages) to update its content.
If you selected a partial layout when you first created the network layout, those settings are saved. Any future
layout commands use the previous options plus any new options that you specify.
If you host a layout on a file share, you should update a private copy of the layout (for example, c:\VSLayout)
and then, after all of the updated content is downloaded, copy it to your file share (for example,
\server\products\VS ). If you don't do this, there is a greater chance that any users who run Setup while you are
updating the layout might not be able to get all of the content from the layout because it is not yet completely
updated.
Let's walk through a few examples of how to create and then update a layout:
First, here's an example of how to create a layout with one workload for English only:

vs_enterprise.exe --layout c:\VSLayout --add Microsoft.VisualStudio.Workload.ManagedDesktop --lang


en-US

Here's how to update that same layout to a newer version. You don't have to specify any additional
command-line parameters. The previous settings were saved and will be used by any subsequent layout
commands in this layout folder.

vs_enterprise.exe --layout c:\VSLayout

Here's how to update your layout to a newer version in an unattended manner. The layout operation runs
the setup process in a new console window. The window is left open so users can see the final result and
a summary of any errors that might have occurred. If you are performing a layout operation in an
unattended manner (for example, you have a script that is regularly run to update your layout to the latest
version), then use the --passive parameter and the process will automatically close the window.
vs_enterprise.exe --layout c:\VSLayout --passive

Here's how to add an additional workload and localized language. (This command adds the Azure
development workload.) Now both Managed Desktop and Azure are included in this layout. The
language resources for English and German are also included for all these workloads. And, the layout is
updated to the latest available version.

vs_enterprise.exe --layout c:\VSLayout --add Microsoft.VisualStudio.Workload.Azure --lang de-DE

IMPORTANT
An update operation doesn't install newly added optional components, even if you include these components in
an "add" section of a response file. This occurs because the add operation isn't used during an update.
Workaround: Run a separate modify operation after an upgrade to install the missing components.

And finally, here's how to add an additional workload and localized language without updating the
version. (This command adds the ASP.NET and web development workload.) Now the Managed Desktop,
Azure, and ASP.NET & Web Development workloads are included in this layout. The language resources
for English, German, and French are also included for all these workloads. However, the layout was not
updated to the latest available version when this command was run. It remains at the existing version.

vs_enterprise.exe --layout c:\VSLayout --add Microsoft.VisualStudio.Workload.NetWeb --lang fr-FR --


keepLayoutVersion

Deploy an update to client machines


Depending on how your network environment is configured, an update can either be deployed by an enterprise
administrator or initiated from a client machine.
Users can update a Visual Studio instance that was installed from an offline installation folder:
Run the Visual Studio Installer.
Then, click Update.
Administrators can update client deployments of Visual Studio without any user interaction with two
separate commands:
First, update the Visual Studio installer:
vs_enterprise.exe --quiet --update
Then, update the Visual Studio application itself:
vs_enterprise.exe update --installPath "C:\Program Files (x86)\Microsoft Visual
Studio\2017\Enterprise" --quiet --wait --norestart

Administrators can update client deployments of Visual Studio without any user interaction with two
separate commands:
First, update the Visual Studio installer:
vs_enterprise.exe --quiet --update
Then, update the Visual Studio application itself:
vs_enterprise.exe update --installPath "C:\Program Files (x86)\Microsoft Visual
Studio\2019\Enterprise" --quiet --wait --norestart
NOTE
Use the vswhere.exe command to identify the install path of an existing instance of Visual Studio on a client machine.

TIP
For details on how to control when update notifications are presented to users, see Control updates to network-based
Visual Studio deployments.

Verify a layout
Use --verify to perform verification on the offline cache supplied. It checks if packages files are either missing
or invalid. At the end of the verification, it prints the list of missing files and invalid files.

vs_enterprise.exe --layout <layoutDir> --verify

The vs_enterprise.exe can be invoked inside the layoutDir.

NOTE
Some important metadata files that are needed by the --verify option must be in the layout offline cache. If these
metadata files are missing, "--verify" cannot run and Setup gives you an error. If you experience this error, re-create a new
offline layout to a different folder (or to the same offline cache folder. To so do, run the same layout command that you
used to create the initial offline layout. For example, vs_enterprise.exe --layout <layoutDir> .

Microsoft ships updates to Visual Studio periodically, so the new layout that you create might not be the same
version as the initial layout.

NOTE
Verification works only for the latest version of a specific minor version of Visual Studio. As soon as a new version is
released, verification won't work for earlier patch level releases of the same minor version.

Fix a layout
Use --fix to perform the same verification as --verify and also try to fix the identified issues. The --fix
process needs an internet connection, so make sure your machine is connected to the internet before you invoke
--fix .

vs_enterprise.exe --layout <layoutDir> --fix

The vs_enterprise.exe can be invoked inside the layoutDir.

Remove older versions from a layout


After you perform layout updates to an offline cache, the layout cache folder may have some obsolete packages
that are no longer needed by the latest Visual Studio installation. You can use the --clean option to remove
obsolete packages from an offline cache folder.
To do this, you'll need the file path(s) to catalog manifest(s) that contain those obsolete packages. You can find
the catalog manifests in an "Archive" folder in the offline layout cache. They are saved there when you update a
layout. In the "Archive" folder, there is one or more "GUID" named folders, each of which contains an obsolete
catalog manifest. The number of "GUID" folders should be the same as the number of updates made to your
offline cache.
A few files are saved inside each "GUID" folder. The two files of most interest are a "catalog.json" file and a
"version.txt" file. The "catalog.json" file is the obsolete catalog manifest you'll need to pass to the --clean
option. The other version.txt file contains the version of this obsolete catalog manifest. Based on the version
number, you can decide whether you want to remove obsolete packages from this catalog manifest. You can do
the same as you go through the other "GUID" folders. After you make the decision on the catalog(s) you want to
clean, run the --clean command by supplying the files paths to these catalogs.
Here are a few examples of how to use the --clean option:

vs_enterprise.exe --layout <layoutDir> --clean <file-path-of-catalog1> <file-path-of-catalog2> …

vs_enterprise.exe --layout <layoutDir> --clean <file-path-of-catalog1> --clean <file-path-of-catalog2> …

You can also invoke vs_enterprise.exe inside the <layoutDir>. Here's an example:

c:\VSLayout\vs_enterprise.exe --layout c:\VSLayout --clean c:\VSLayout\Archive\1cd70189-fc55-4583-8ad8-


a2711e928325\Catalog.json --clean c:\VS2017Layout\Archive\d420889f-6aad-4ba4-99e4-ed7833795a10\Catalog.json

When you execute this command, Setup analyzes your offline cache folder to find the list of files that it will
remove. You will then have a chance to review the files that are going to be deleted and confirm the deletions.

Get support for your offline installer


If you experience a problem with your offline installation, we want to know about it. The best way to tell us is by
using the Report a Problem tool. When you use this tool, you can send us the telemetry and logs we need to
help us diagnose and fix the problem.
We also offer a live chat (English only) support option for installation-related issues.
We have other support options available, too. For a list, see our Feedback page.

See also
Install Visual Studio
Visual Studio administrator guide
Use command-line parameters to install Visual Studio
Tools for detecting and managing Visual Studio instances
Control updates to network-based Visual Studio deployments
Visual Studio product lifecycle and servicing
Update Visual Studio while on a servicing baseline
1/16/2020 • 3 minutes to read • Edit Online

We update Visual Studio often during its product lifecycle. There are two types of updates:
Minor release updates—for example, 16.0 to 16.1—that include new features and components.
Servicing updates—for example, 16.0.4 to 16.0.5—that include only targeted fixes for critical issues.
Enterprise administrators can choose to keep their clients on a servicing baseline. A servicing baseline is
supported with servicing updates for a year past the release of the next servicing baseline.
The servicing baseline option gives developers and administrators more flexibility to adopt the new features, bug
fixes, or components included in new minor updates. The first servicing baseline is 16.0.x. For more information,
see Support options for enterprise and professional customers.

How to get onto a servicing baseline


To start using a servicing baseline, download a fixed-version Visual Studio installer bootstrapper from
My.VisualStudio.com. The bootstrappers have links to the product configurations, workloads, and components for
that specific version.

NOTE
Be careful to distinguish between the fixed-version bootstrapper and the standard bootstrappers. The standard
bootstrappers are configured to use the latest available release of Visual Studio. The standard boostrappers have a number
in the file name (for example, vs_enterprise__123456789-123456789.exe) when they're downloaded from
My.VisualStudio.com.

During installation, enterprise administrators must configure their clients to prevent the clients from updating to
the latest release. There are several ways to do this:
Change the channelUri setting in the response configuration file to use a channel manifest in the layout or
local folder.
Modify the channelUri through command-line execution to use a nonexistent file.
Set policies on the client system to disable updates, to prevent clients from self-updating.
Install a servicing baseline on a network
Administrators who use a network layout installation should modify the channelUri value in the response.json file
in the layout to use the channelmanifest.json file that's in the same folder. For the steps to take, see Control
updates to network-based Visual Studio deployments. Changing the channelUri value enables clients to look for
updates in the layout location.
Install a servicing baseline via the internet
For an internet-based installation, add --channelUri with a non-existent channel manifest to the command-line
used to launch setup. This disables Visual Studio from using the latest available release for an update. Here's an
example:

vs_enterprise.exe --channelUri c:\doesnotexist.chman

Use policy settings to disable clients from updating


Another option to control updates on a client is to turn off update notifications. Use this option if the channelUri
value was not changed on installation. It will disable the client from receiving links to the latest available release. A
fixed-version bootstrapper is still necessary to update to a specific version on the client.

How to stay on a servicing baseline


When an update for a servicing baseline is available, fixed-version bootstrapper files are made available for the
servicing update at My.VisualStudio.com.
For administrators who deploy by using a network layout install, the administrator should update the layout
location. Clients that installed from the location will receive update notifications. If the update must be deployed
to clients, follow these instructions. When you modify the 'response.json' for an update, do not add additional
workloads, components, or languages. Managing these settings must be done as a 'modify' deployment after the
product has been updated.
For an internet-based installation, run the new fixed version bootstrapper with the --channelUri parameter
pointing to a non-existent channel manifest on the client. If the update is deployed in quiet or passive mode, use
two separate commands:
1. Update the Visual Studio installer:

vs_enterprise.exe --quiet --update

2. Update the Visual Studio application itself:

vs_enterprise.exe update --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise"


--quiet --wait --norestart --channelUri c:\doesnotexist.chman

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio
installation and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and
in the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Install Visual Studio
Visual Studio administrator guide
Use command-line parameters to install Visual Studio
Tools for detecting and managing Visual Studio instances
How to define settings in a response file
Control updates to network-based Visual Studio deployments
Visual Studio product lifecycle and servicing
Control updates to network-based Visual Studio
deployments
1/16/2020 • 3 minutes to read • Edit Online

Enterprise administrators often create a layout and host it on a network file share to deploy to their end-users.

Controlling where Visual Studio looks for updates


By default, Visual Studio continues to look online for updates even if the installation was deployed from a
network share. If an update is available, the user can install it. Any updated content that is not found in the
offline layout is downloaded from the web.
If you want direct control over where Visual Studio looks for updates, you can modify the location where it
looks. You can also control the version your users are updated to. To do so, follow these steps:
1. Create an offline layout:

vs_enterprise.exe --layout C:\vsoffline --lang en-US

2. Copy it to the file share where you want to host it:

xcopy /e C:\vsoffline \\server\share\VS

3. Modify the response.json file in the layout and change the channelUri value to point to a copy of the
channelManifest.json that the admin controls.
Be sure to escape backslashes in the value, as in the following example:

"channelUri":"\\\\server\\share\\VS\\ChannelManifest.json"

Now end-users can run setup from this share to install Visual Studio.

\\server\share\VS\vs_enterprise.exe

When an enterprise administrator determines it is time for their users to update to a newer version of Visual
Studio, they can update the layout location to incorporate the updated files, as follows.
1. Use a command that is similar to the following command:

vs_enterprise.exe --layout \\server\share\VS --lang en-US

2. Ensure that the response.json file in the updated layout still contains your customizations, specifically the
channelUri modification, as follows:

"channelUri":"\\\\server\\share\\VS\\ChannelManifest.json"

Existing Visual Studio installs from this layout look for updates at
\\server\share\VS\ChannelManifest.json . If the channelManifest.json is newer than what the user has
installed, Visual Studio notifies the user that an update is available.
New installs automatically install the updated version of Visual Studio directly from the layout.

Controlling notifications in the Visual Studio IDE


As described earlier, Visual Studio checks the location from which it has been installed, such as a network share
or the internet, to see whether any updates are available. When an update is available, Visual Studio notifies the
user with a notification flag in the top right-hand corner of the window.

As described earlier, Visual Studio checks the location from which it has been installed, such as a network share
or the internet, to see whether any updates are available. When an update is available, Visual Studio notifies the
user with a notification icon in the lower right-hand corner of the window.

You can disable the notifications if you don't want end-users to be notified of updates. (For example, you might
want to disable notifications if you deliver updates through a central software distribution mechanism.)
Because Visual Studio 2017 stores registry entries in a private registry, you can't directly edit the registry in the
typical way. However, Visual Studio includes a vsregedit.exe utility that you can use to change Visual Studio
settings. You can turn off notifications with the following command:

vsregedit.exe set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise" HKCU ExtensionManager


AutomaticallyCheckForUpdates2Override dword 0

Because Visual Studio 2019 stores registry entries in a private registry, you can't directly edit the registry in the
typical way. However, Visual Studio includes a vsregedit.exe utility that you can use to change Visual Studio
settings. You can turn off notifications with the following command:

vsregedit.exe set "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" HKCU ExtensionManager


AutomaticallyCheckForUpdates2Override dword 0

(Make sure to replace the directory to match the installed instance that you want to edit.)

TIP
Use vswhere.exe to find a specific instance of Visual Studio on a client workstation.

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio
installation and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer
and in the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation
in the Gitter community.

See also
Install Visual Studio
Visual Studio administrator guide
Use command-line parameters to install Visual Studio
Tools for managing Visual Studio instances
Visual Studio product lifecycle and servicing
Package payload changes
1/16/2020 • 2 minutes to read • Edit Online

Some package payloads are allowed to change after a release has already shipped. When you or someone else
creates a layout, this behavior might result in different layout content, depending on when a layout was created.

Verify that a layout includes package payload changes


Here's how to determine if the layout that was previously created has acquired the package payloads that were
modified after the release shipped:
1. Open the setup log. The log is typically at %TEMP%\dd_setup_[date].log where [date] is when the layout
operation started in yyyyMMddHHmmss format.
2. Look for a line in the log that is structured like the following text:
Falling back to signature and signer check because hash verification returned HashMismatch for path:
[path]

3. Then, look for lines later in the log that indicate that the download succeeded for the [path]. They might look
similar to the following text:
Download of [url] succeeded using engine 'WebClient'

END: Downloading [url] to [path]

See also
Create a network installation of Visual Studio
Update a networked-based installation of Visual Studio
Disable or move the package cache
1/16/2020 • 2 minutes to read • Edit Online

The package cache provides a source of installed packages in case you need to repair Visual Studio or other
related products in cases where you have no Internet connection. With some drives or system set ups, however,
you might not want to keep all those packages around. The installer will download them when needed, so if you
want to save or recover disk space, you can disable or move the package cache.

Disable the package cache


Before you install, modify, or repair Visual Studio or other products with the new installer, you can start the
installer with the --nocache switch to the installer.

"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vs_installer.exe" --nocache

Any operation you do on any product will remove any existing packages for that product and will avoid saving
any packages after they are installed. If you modify or repair Visual Studio and packages are required, they will
be downloaded automatically and removed after they are installed.
If you want to re-enable the cache, pass --cache instead. Only packages that are required will be cached, so if
you need to restore all packages, you should repair Visual Studio before you disconnect from your network.

"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vs_installer.exe" repair --passive --norestart --


cache

You can also set the KeepDownloadedPayloads registry policy to disable the cache before you install, modify, or
repair Visual Studio.

Move the package cache


A common system configuration is to have Windows installed on an SSD with a larger hard disk (or more) for
development needs, such as source code, program binaries, and more. If you want to work offline, you can move
the package cache instead.
Currently, you can do this only if you set the CachePath registry policy before you install, modify, or repair Visual
Studio.

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio
installation and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio Installer and
in the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio conversation in
the Gitter community.

See also
Install Visual Studio
Set defaults for enterprise deployments
Use command-line parameters to install Visual Studio
Visual Studio workload and component IDs
3/17/2020 • 2 minutes to read • Edit Online

Click the edition names in the following table to see the available workload and component IDs you need
to install Visual Studio by using a command line, or to specify as a dependency in a VSIX manifest.
Updated for the 15.9 release

EDITION ID DESCRIPTION

Visual Studio Enterprise 2017 Microsoft.VisualStudio.Product.Enter Microsoft DevOps solution for


prise productivity and coordination across
teams of any size

Visual Studio Professional 2017 Microsoft.VisualStudio.Product.Profe Professional developer tools and


ssional services for small teams

Visual Studio Community 2017 Microsoft.VisualStudio.Product.Com Free, fully featured IDE for students,
munity open-source, and individual
developers

Visual Studio Team Explorer 2017 Microsoft.VisualStudio.Product.Team Interact with Team Foundation
Explorer Server and Azure DevOps Services
without a Visual Studio developer
toolset

Visual Studio Desktop Express 2017 Microsoft.VisualStudio.Product.WDE Build Native and Managed
xpress applications like WPF, WinForms,
and Win32 with syntax-aware code
editing, source code control, and
work item management. Includes
support for C#, Visual Basic, and
Visual C++.

Visual Studio Build Tools 2017 Microsoft.VisualStudio.Product.Build The Visual Studio Build Tools allows
Tools you to build native and managed
MSBuild-based applications without
requiring the Visual Studio IDE.
There are options to install the
Visual C++ compilers and libraries,
MFC, ATL, and C++/CLI support.

Visual Studio Test Agent 2017 Microsoft.VisualStudio.Product.TestA Supports running automated tests
gent and load tests remotely

Visual Studio Test Controller 2017 Microsoft.VisualStudio.Product.TestC Distribute automated tests to


ontroller multiple machines

Visual Studio Test Professional 2017 Microsoft.VisualStudio.Product.TestP Visual Studio Test Professional 2017
rofessional

Visual Studio Feedback Client 2017 Microsoft.VisualStudio.Product.Feed Visual Studio Feedback Client 2017
backClient
For more information about how to use these lists, see the Use command-line parameters to install
Visual Studio 2017 page and the How to: Migrate extensibility projects to Visual Studio 2017 page.
Updated for the 16.5 release

EDITION ID DESCRIPTION

Visual Studio Enterprise 2019 Microsoft.VisualStudio.Product.Enter Microsoft DevOps solution for


prise productivity and coordination across
teams of any size

Visual Studio Professional 2019 Microsoft.VisualStudio.Product.Profe Professional developer tools and


ssional services for small teams

Visual Studio Community 2019 Microsoft.VisualStudio.Product.Com Free, fully featured IDE for students,
munity open-source, and individual
developers

Visual Studio Team Explorer 2019 Microsoft.VisualStudio.Product.Team Interact with Team Foundation
Explorer Server and Azure DevOps Services
without a Visual Studio developer
toolset

Visual Studio Build Tools 2019 Microsoft.VisualStudio.Product.Build The Visual Studio Build Tools allows
Tools you to build native and managed
MSBuild-based applications without
requiring the Visual Studio IDE.
There are options to install the
Visual C++ compilers and libraries,
MFC, ATL, and C++/CLI support.

Visual Studio Test Agent 2019 Microsoft.VisualStudio.Product.TestA Supports running automated tests
gent and load tests remotely

Visual Studio Load Test Controller Microsoft.VisualStudio.Product.TestC Distribute automated tests to


2019 ontroller multiple machines

For more information about how to use these lists, see the Use command-line parameters to install
Visual Studio page and the How to: Migrate extensibility projects to Visual Studio page.

NOTE
For a list of the workload and component IDs for the previous version, see Visual Studio 2017 workload and
component IDs

Get support
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio
installation and upgrade issues for step-by-step guidance.
We also offer a live chat (English only) support option for installation-related issues.
Here are a few more support options:
Report product issues to us via the Report a Problem tool that appears both in the Visual Studio
Installer and in the Visual Studio IDE.
Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.
Use your GitHub account to talk to us and other Visual Studio developers in the Visual Studio
conversation in the Gitter community.

See also
Visual Studio administrator guide for Visual Studio
Use command-line parameters to install Visual Studio
Command-line parameter examples
Create an offline installation of Visual Studio
Visual Studio Enterprise component directory
3/16/2020 • 71 minutes to read • Edit Online

The tables on this page list the IDs that you can use to install Visual Studio from the command line, or that you can
specify as a dependency in a VSIX manifest. We'll add additional components when we release updates to Visual
Studio.
Also note the following about the page:
Each workload has its own section, followed by the workload ID and a table of the components that are
available for the workload.
By default, the Required components will be installed when you install the workload.
If you choose to, you can also install the Recommended and Optional components.
We've also added a section that lists the additional components that are not affiliated with any workload.
When you set dependencies in your VSIX manifest, you must specify Component IDs only. Use the tables on this
page to determine the minimum component dependencies. In some scenarios, this might mean that you specify
only one component from a workload. In other scenarios, it might mean that you specify multiple components
from a single workload or multiple components from multiple workloads. For more information, see the How to:
Migrate extensibility projects to Visual Studio 2017 page.
For more information about how to use these IDs, see the Use command-line parameters to install Visual Studio
2017 page. And, for a list of workload and component IDs for other products, see the Visual Studio workload and
component IDs page.

Visual Studio core editor (included with Visual Studio Enterprise 2017)
ID: Microsoft.VisualStudio.Workload.CoreEditor
Description: The Visual Studio core shell experience, including syntax-aware code editing, source code control
and work item management.
Components included by this workload
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp Visual Studio core editor 15.8.27729.1 Required


onent.CoreEditor

Microsoft.VisualStudio.Comp Visual Studio Start Page for 15.0.27128.1 Optional


onent.StartPageExperiment. C++ Users
Cpp

Azure development
ID: Microsoft.VisualStudio.Workload.Azure
Description: Azure SDKs, tools, and projects for developing cloud apps, creating resources, and building
Containers including Docker support.
Components included by this workload
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Component.Microsoft.Visual Razor Language Services 15.0.26720.2 Required


Studio.RazorExtension

Component.Microsoft.Visual Microsoft Azure WebJobs 15.7.27617.1 Required


Studio.Web.AzureFunctions Tools

Component.Microsoft.Web.L Library Manager 15.8.27705.0 Required


ibraryManager

Component.WebSocket WebSocket4Net 15.0.26606.0 Required

Microsoft.Component.ClickO ClickOnce Publishing 15.8.27825.0 Required


nce

Microsoft.Component.MSBui MSBuild 15.7.27520.0 Required


ld

Microsoft.Component.NetFX .NET Core runtime 15.0.26208.0 Required


.Core.Runtime

Microsoft.Net.Component.4. .NET Framework 4.5.2 15.6.27406.0 Required


5.2.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.5 15.6.27406.0 Required


5.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.6.1 SDK 15.6.27406.0 Required


6.1.SDK

Microsoft.Net.Component.4. .NET Framework 4.6.1 15.6.27406.0 Required


6.1.TargetingPack targeting pack

Microsoft.Net.ComponentGr .NET Framework 4.6.1 15.8.27825.0 Required


oup.DevelopmentPrerequisit development tools
es

Microsoft.Net.Core.Compon .NET Core 2.1 development 15.8.27924.0 Required


ent.SDK.2.1 tools

Microsoft.NetCore.Compone .NET Core 2.1 development 15.8.27924.0 Required


ntGroup.DevelopmentTools. tools
2.1

Microsoft.NetCore.Compone .NET Core 2.1 development 15.8.27924.0 Required


ntGroup.Web.2.1 tools

Microsoft.VisualStudio.Comp Azure Authoring Tools 15.9.28307.421 Required


onent.Azure.AuthoringTools

Microsoft.VisualStudio.Comp Azure libraries for .NET 15.0.26208.0 Required


onent.Azure.ClientLibs
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp Azure Compute Emulator 15.9.28307.421 Required


onent.Azure.Compute.Emula
tor

Microsoft.VisualStudio.Comp Azure Storage Emulator 15.9.28125.51 Required


onent.Azure.Storage.Emulat
or

Microsoft.VisualStudio.Comp Cloud Explorer 15.9.28230.55 Required


onent.CloudExplorer

Microsoft.VisualStudio.Comp Connectivity and publishing 15.9.28107.0 Required


onent.Common.Azure.Tools tools

Microsoft.VisualStudio.Comp Container development 15.8.27906.1 Required


onent.DockerTools tools

Microsoft.VisualStudio.Comp Container development 15.7.27617.1 Required


onent.DockerTools.BuildTool tools - Build Tools
s

Microsoft.VisualStudio.Comp F# language support 15.8.27825.0 Required


onent.FSharp

Microsoft.VisualStudio.Comp F# language support for 15.9.28307.421 Required


onent.FSharp.WebTemplates web projects

Microsoft.VisualStudio.Comp IIS Express 15.0.26208.0 Required


onent.IISExpress

Microsoft.VisualStudio.Comp JavaScript diagnostics 15.8.27729.1 Required


onent.JavaScript.Diagnostics

Microsoft.VisualStudio.Comp JavaScript and TypeScript 15.9.28125.51 Required


onent.JavaScript.TypeScript language support

Microsoft.VisualStudio.Comp Managed Desktop Workload 15.8.27729.1 Required


onent.ManagedDesktop.Cor Core
e

Microsoft.VisualStudio.Comp NuGet package manager 15.9.28016.0 Required


onent.NuGet

Microsoft.VisualStudio.Comp .NET Portable Library 15.6.27309.0 Required


onent.PortableLibrary targeting pack

Microsoft.VisualStudio.Comp C# and Visual Basic Roslyn 15.6.27309.0 Required


onent.Roslyn.Compiler compilers

Microsoft.VisualStudio.Comp C# and Visual Basic 15.8.27729.1 Required


onent.Roslyn.LanguageServi
ces
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp SQL ADAL runtime 15.6.27406.0 Required


onent.SQL.ADAL

Microsoft.VisualStudio.Comp CLR data types for SQL 15.0.26208.0 Required


onent.SQL.CLR Server

Microsoft.VisualStudio.Comp SQL Server Command Line 15.0.26208.0 Required


onent.SQL.CMDUtils Utilities

Microsoft.VisualStudio.Comp Data sources for SQL Server 15.0.26621.2 Required


onent.SQL.DataSources support

Microsoft.VisualStudio.Comp SQL Server Express 2016 15.7.27617.1 Required


onent.SQL.LocalDB.Runtime LocalDB

Microsoft.VisualStudio.Comp SQL Server Native Client 15.0.26208.0 Required


onent.SQL.NCLI

Microsoft.VisualStudio.Comp SQL Server Data Tools 15.9.28107.0 Required


onent.SQL.SSDT

Microsoft.VisualStudio.Comp Static analysis tools 15.0.26208.0 Required


onent.Static.Analysis.Tools

Microsoft.VisualStudio.Comp Text Template 15.0.26208.0 Required


onent.TextTemplating Transformation

Microsoft.VisualStudio.Comp TypeScript 3.1 SDK 15.0.28218.60 Required


onent.TypeScript.3.1

Microsoft.VisualStudio.Comp Data sources and service 15.6.27406.0 Required


onent.VisualStudioData references

Microsoft.VisualStudio.Comp ASP.NET and web 15.8.27825.0 Required


onent.Web development tools

Microsoft.VisualStudio.Comp Azure development 15.9.28107.0 Required


onentGroup.Azure.Prerequisi prerequisites
tes

Microsoft.VisualStudio.Comp Microsoft Azure WebJobs 15.7.27617.1 Required


onentGroup.AzureFunctions Tools

Microsoft.VisualStudio.Comp ASP.NET and web 15.9.28219.51 Required


onentGroup.Web development tools
prerequisites

Microsoft.VisualStudio.Comp ASP.NET and web 15.8.27825.0 Required


onentGroup.WebToolsExtens development
ions

Microsoft.Component.Azure. Azure Data Lake and Stream 15.9.28107.0 Recommended


DataLake.Tools Analytics Tools
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.Net.Component.4. .NET Framework 4.5.1 15.6.27406.0 Recommended


5.1.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.6 15.6.27406.0 Recommended


6.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4 targeting 15.6.27406.0 Recommended


TargetingPack pack

Microsoft.Net.ComponentGr .NET Framework 4 – 4.6 15.6.27406.0 Recommended


oup.TargetingPacks.Commo development tools
n

Microsoft.VisualStudio.Comp Advanced ASP.NET features 15.7.27625.0 Recommended


onent.AspNet45

Microsoft.VisualStudio.Comp Azure Mobile Apps SDK 15.7.27625.0 Recommended


onent.Azure.MobileAppsSdk

Microsoft.VisualStudio.Comp Azure Resource Manager 15.9.28107.0 Recommended


onent.Azure.ResourceManag core tools
er.Tools

Microsoft.VisualStudio.Comp Service Fabric Tools 15.8.27825.0 Recommended


onent.Azure.ServiceFabric.To
ols

Microsoft.VisualStudio.Comp Azure Cloud Services core 15.9.28107.0 Recommended


onent.Azure.Waverton tools

Microsoft.VisualStudio.Comp Azure Cloud Services build 15.7.27617.1 Recommended


onent.Azure.Waverton.Build tools
Tools

Microsoft.VisualStudio.Comp Snapshot Debugger 15.8.28010.0 Recommended


onent.Debugger.Snapshot

Microsoft.VisualStudio.Comp .NET profiling tools 15.8.27729.1 Recommended


onent.DiagnosticTools

Microsoft.VisualStudio.Comp IntelliTrace 15.8.27729.1 Recommended


onent.IntelliTrace.FrontEnd

Microsoft.VisualStudio.Comp Web Deploy 15.8.27729.1 Recommended


onent.WebDeploy

Microsoft.VisualStudio.Comp Azure Cloud Services tools 15.0.26504.0 Recommended


onentGroup.Azure.CloudSer
vices

Microsoft.VisualStudio.Comp Azure Resource Manager 15.0.27005.2 Recommended


onentGroup.Azure.Resource tools
Manager.Tools
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.Net.Component.4. .NET Framework 4.6.2 SDK 15.6.27406.0 Optional


6.2.SDK

Microsoft.Net.Component.4. .NET Framework 4.6.2 15.6.27406.0 Optional


6.2.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.7.1 SDK 15.6.27406.0 Optional


7.1.SDK

Microsoft.Net.Component.4. .NET Framework 4.7.1 15.6.27406.0 Optional


7.1.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.7.2 SDK 15.8.27825.0 Optional


7.2.SDK

Microsoft.Net.Component.4. .NET Framework 4.7.2 15.8.27825.0 Optional


7.2.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.7 SDK 15.6.27406.0 Optional


7.SDK

Microsoft.Net.Component.4. .NET Framework 4.7 15.6.27406.0 Optional


7.TargetingPack targeting pack

Microsoft.Net.ComponentGr .NET Framework 4.6.2 15.6.27406.0 Optional


oup.4.6.2.DeveloperTools development tools

Microsoft.Net.ComponentGr .NET Framework 4.7.1 15.6.27406.0 Optional


oup.4.7.1.DeveloperTools development tools

Microsoft.Net.ComponentGr .NET Framework 4.7.2 15.8.27825.0 Optional


oup.4.7.2.DeveloperTools development tools

Microsoft.Net.ComponentGr .NET Framework 4.7 15.6.27406.0 Optional


oup.4.7.DeveloperTools development tools

Microsoft.Net.Core.Compon .NET Core 2.0 development 15.6.27406.0 Optional


ent.SDK tools

Microsoft.Net.Core.Compon .NET Core 1.0 - 1.1 15.6.27406.0 Optional


ent.SDK.1x development tools

Microsoft.NetCore.1x.Comp .NET Core 1.0 - 1.1 15.6.27406.0 Optional


onentGroup.Web development tools for Web

Microsoft.NetCore.Compone .NET Core 2.0 development 15.8.27729.1 Optional


ntGroup.DevelopmentTools tools

Microsoft.NetCore.Compone .NET Core 2.0 development 15.7.27625.0 Optional


ntGroup.Web tools

Microsoft.VisualStudio.Comp Azure Storage AzCopy 15.0.26906.1 Optional


onent.Azure.Storage.AzCopy
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp Windows Communication 15.8.27924.0 Optional


onent.Wcf.Tooling Foundation

Data storage and processing


ID: Microsoft.VisualStudio.Workload.Data
Description: Connect, develop, and test data solutions with SQL Server, Azure Data Lake, or Hadoop.
Components included by this workload
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Component.Microsoft.Visual Razor Language Services 15.0.26720.2 Recommended


Studio.RazorExtension

Component.Microsoft.Web.L Library Manager 15.8.27705.0 Recommended


ibraryManager

Component.Redgate.ReadyR Redgate ReadyRoll Core 1.17.18155.10346 Recommended


oll

Component.Redgate.SQLPro Redgate SQL Prompt Core 9.2.0.5601 Recommended


mpt.VsPackage

Component.Redgate.SQLSea Redgate SQL Search 3.1.7.2062 Recommended


rch.VSExtension

Component.WebSocket WebSocket4Net 15.0.26606.0 Recommended

Microsoft.Component.Azure. Azure Data Lake and Stream 15.9.28107.0 Recommended


DataLake.Tools Analytics Tools

Microsoft.Component.ClickO ClickOnce Publishing 15.8.27825.0 Recommended


nce

Microsoft.Component.MSBui MSBuild 15.7.27520.0 Recommended


ld

Microsoft.Net.Component.4. .NET Framework 4.5.1 15.6.27406.0 Recommended


5.1.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.5.2 15.6.27406.0 Recommended


5.2.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.5 15.6.27406.0 Recommended


5.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.6.1 SDK 15.6.27406.0 Recommended


6.1.SDK

Microsoft.Net.Component.4. .NET Framework 4.6.1 15.6.27406.0 Recommended


6.1.TargetingPack targeting pack
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.Net.Component.4. .NET Framework 4.6 15.6.27406.0 Recommended


6.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4 targeting 15.6.27406.0 Recommended


TargetingPack pack

Microsoft.Net.ComponentGr .NET Framework 4.6.1 15.8.27825.0 Recommended


oup.DevelopmentPrerequisit development tools
es

Microsoft.Net.ComponentGr .NET Framework 4 – 4.6 15.6.27406.0 Recommended


oup.TargetingPacks.Commo development tools
n

Microsoft.Net.Core.Compon .NET Core 2.1 development 15.8.27924.0 Recommended


ent.SDK.2.1 tools

Microsoft.VisualStudio.Comp Azure Authoring Tools 15.9.28307.421 Recommended


onent.Azure.AuthoringTools

Microsoft.VisualStudio.Comp Azure libraries for .NET 15.0.26208.0 Recommended


onent.Azure.ClientLibs

Microsoft.VisualStudio.Comp Azure Compute Emulator 15.9.28307.421 Recommended


onent.Azure.Compute.Emula
tor

Microsoft.VisualStudio.Comp Azure Storage Emulator 15.9.28125.51 Recommended


onent.Azure.Storage.Emulat
or

Microsoft.VisualStudio.Comp Azure Cloud Services core 15.9.28107.0 Recommended


onent.Azure.Waverton tools

Microsoft.VisualStudio.Comp Azure Cloud Services build 15.7.27617.1 Recommended


onent.Azure.Waverton.Build tools
Tools

Microsoft.VisualStudio.Comp Cloud Explorer 15.9.28230.55 Recommended


onent.CloudExplorer

Microsoft.VisualStudio.Comp Connectivity and publishing 15.9.28107.0 Recommended


onent.Common.Azure.Tools tools

Microsoft.VisualStudio.Comp Container development 15.8.27906.1 Recommended


onent.DockerTools tools

Microsoft.VisualStudio.Comp Container development 15.7.27617.1 Recommended


onent.DockerTools.BuildTool tools - Build Tools
s

Microsoft.VisualStudio.Comp IIS Express 15.0.26208.0 Recommended


onent.IISExpress
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp JavaScript diagnostics 15.8.27729.1 Recommended


onent.JavaScript.Diagnostics

Microsoft.VisualStudio.Comp JavaScript and TypeScript 15.9.28125.51 Recommended


onent.JavaScript.TypeScript language support

Microsoft.VisualStudio.Comp Managed Desktop Workload 15.8.27729.1 Recommended


onent.ManagedDesktop.Cor Core
e

Microsoft.VisualStudio.Comp NuGet package manager 15.9.28016.0 Recommended


onent.NuGet

Microsoft.VisualStudio.Comp .NET Portable Library 15.6.27309.0 Recommended


onent.PortableLibrary targeting pack

Microsoft.VisualStudio.Comp C# and Visual Basic Roslyn 15.6.27309.0 Recommended


onent.Roslyn.Compiler compilers

Microsoft.VisualStudio.Comp C# and Visual Basic 15.8.27729.1 Recommended


onent.Roslyn.LanguageServi
ces

Microsoft.VisualStudio.Comp SQL ADAL runtime 15.6.27406.0 Recommended


onent.SQL.ADAL

Microsoft.VisualStudio.Comp CLR data types for SQL 15.0.26208.0 Recommended


onent.SQL.CLR Server

Microsoft.VisualStudio.Comp SQL Server Command Line 15.0.26208.0 Recommended


onent.SQL.CMDUtils Utilities

Microsoft.VisualStudio.Comp Data sources for SQL Server 15.0.26621.2 Recommended


onent.SQL.DataSources support

Microsoft.VisualStudio.Comp SQL Server Express 2016 15.7.27617.1 Recommended


onent.SQL.LocalDB.Runtime LocalDB

Microsoft.VisualStudio.Comp SQL Server Native Client 15.0.26208.0 Recommended


onent.SQL.NCLI

Microsoft.VisualStudio.Comp SQL Server Data Tools 15.9.28107.0 Recommended


onent.SQL.SSDT

Microsoft.VisualStudio.Comp Static analysis tools 15.0.26208.0 Recommended


onent.Static.Analysis.Tools

Microsoft.VisualStudio.Comp Text Template 15.0.26208.0 Recommended


onent.TextTemplating Transformation

Microsoft.VisualStudio.Comp TypeScript 3.1 SDK 15.0.28218.60 Recommended


onent.TypeScript.3.1
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp Data sources and service 15.6.27406.0 Recommended


onent.VisualStudioData references

Microsoft.VisualStudio.Comp ASP.NET and web 15.8.27825.0 Recommended


onent.Web development tools

Microsoft.VisualStudio.Comp ASP.NET and web 15.9.28219.51 Recommended


onentGroup.Web development tools
prerequisites

Microsoft.VisualStudio.Comp ASP.NET and web 15.8.27825.0 Recommended


onentGroup.WebToolsExtens development
ions

Microsoft.VisualStudio.Comp F# desktop language 15.8.27825.0 Optional


onent.FSharp.Desktop support

Data science and analytical applications


ID: Microsoft.VisualStudio.Workload.DataScience
Description: Languages and tooling for creating data science applications, including Python, R and F#.
Components included by this workload
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Component.Anaconda3.x64 Anaconda3 64-bit (5.2.0) 5.2.0 Recommended

Microsoft.Component.Cooki Cookiecutter template 15.0.26621.2 Recommended


ecutterTools support

Microsoft.Component.Pytho Python language support 15.0.26823.1 Recommended


nTools

Microsoft.Component.Pytho Python web support 15.9.28107.0 Recommended


nTools.Web

Microsoft.Net.Component.4. .NET Framework 4.6.1 15.6.27406.0 Recommended


6.1.TargetingPack targeting pack

Microsoft.VisualStudio.Comp Connectivity and publishing 15.9.28107.0 Recommended


onent.Common.Azure.Tools tools

Microsoft.VisualStudio.Comp F# desktop language 15.8.27825.0 Recommended


onent.FSharp.Desktop support

Microsoft.VisualStudio.Comp JavaScript and TypeScript 15.9.28125.51 Recommended


onent.JavaScript.TypeScript language support

Microsoft.VisualStudio.Comp NuGet package manager 15.9.28016.0 Recommended


onent.NuGet
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp Microsoft R Client (3.3.2) 15.6.27406.0 Recommended


onent.R.Open

Microsoft.VisualStudio.Comp Runtime support for R 15.6.27406.0 Recommended


onent.RHost development tools

Microsoft.VisualStudio.Comp C# and Visual Basic Roslyn 15.6.27309.0 Recommended


onent.Roslyn.Compiler compilers

Microsoft.VisualStudio.Comp C# and Visual Basic 15.8.27729.1 Recommended


onent.Roslyn.LanguageServi
ces

Microsoft.VisualStudio.Comp R language support 15.0.26919.1 Recommended


onent.RTools

Microsoft.VisualStudio.Comp CLR data types for SQL 15.0.26208.0 Recommended


onent.SQL.CLR Server

Microsoft.VisualStudio.Comp Static analysis tools 15.0.26208.0 Recommended


onent.Static.Analysis.Tools

Microsoft.VisualStudio.Comp TypeScript 3.1 SDK 15.0.28218.60 Recommended


onent.TypeScript.3.1

Microsoft.VisualStudio.Comp Data sources and service 15.6.27406.0 Recommended


onent.VisualStudioData references

Microsoft.VisualStudio.Comp Web Deploy 15.8.27729.1 Recommended


onent.WebDeploy

Microsoft.VisualStudio.Comp ASP.NET and web 15.8.27825.0 Recommended


onentGroup.WebToolsExtens development
ions

Component.Anaconda2.x64 Anaconda2 64-bit (5.2.0) 5.2.0 Optional

Component.Anaconda2.x86 Anaconda2 32-bit (5.2.0) 5.2.0 Optional

Component.Anaconda3.x86 Anaconda3 32-bit (5.2.0) 5.2.0 Optional

Microsoft.Component.VC.Ru Windows Universal CRT SDK 15.6.27309.0 Optional


ntime.UCRTSDK

Microsoft.ComponentGroup. Python native development 15.9.28307.102 Optional


PythonTools.NativeDevelop tools
ment

Microsoft.VisualStudio.Comp Graphics debugger and GPU 15.6.27406.0 Optional


onent.Graphics.Tools profiler for DirectX

Microsoft.VisualStudio.Comp Graphics Tools Windows 8.1 15.6.27406.0 Optional


onent.Graphics.Win81 SDK
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp VC++ 2015.3 v14.00 (v140) 15.7.27617.1 Optional


onent.VC.140 toolset for desktop

Microsoft.VisualStudio.Comp Visual Studio C++ core 15.6.27406.0 Optional


onent.VC.CoreIde features

Microsoft.VisualStudio.Comp C++ profiling tools 15.0.26823.1 Optional


onent.VC.DiagnosticTools

Microsoft.VisualStudio.Comp VC++ 2017 version 15.9 15.9.28230.55 Optional


onent.VC.Tools.x86.x64 v14.16 latest v141 tools

Microsoft.VisualStudio.Comp Windows Universal C 15.6.27406.0 Optional


onent.Windows10SDK Runtime

Microsoft.VisualStudio.Comp Windows 10 SDK 15.9.28307.102 Optional


onent.Windows10SDK.1776 (10.0.17763.0)
3

Microsoft.VisualStudio.Comp Windows 8.1 SDK 15.6.27406.0 Optional


onent.Windows81SDK

.NET desktop development


ID: Microsoft.VisualStudio.Workload.ManagedDesktop
Description: Build WPF, Windows Forms, and console applications using C#, Visual Basic, and F#.
Components included by this workload
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.Component.ClickO ClickOnce Publishing 15.8.27825.0 Required


nce

Microsoft.Component.MSBui MSBuild 15.7.27520.0 Required


ld

Microsoft.Net.Component.4. .NET Framework 4.6.1 SDK 15.6.27406.0 Required


6.1.SDK

Microsoft.Net.Component.4. .NET Framework 4.6.1 15.6.27406.0 Required


6.1.TargetingPack targeting pack

Microsoft.Net.ComponentGr .NET Framework 4.6.1 15.8.27825.0 Required


oup.DevelopmentPrerequisit development tools
es

Microsoft.VisualStudio.Comp Managed Desktop Workload 15.8.27729.1 Required


onent.ManagedDesktop.Cor Core
e
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp .NET desktop development 15.7.27625.0 Required


onent.ManagedDesktop.Prer tools
equisites

Microsoft.VisualStudio.Comp .NET Portable Library 15.6.27309.0 Required


onent.PortableLibrary targeting pack

Microsoft.VisualStudio.Comp C# and Visual Basic Roslyn 15.6.27309.0 Required


onent.Roslyn.Compiler compilers

Microsoft.VisualStudio.Comp C# and Visual Basic 15.8.27729.1 Required


onent.Roslyn.LanguageServi
ces

Microsoft.VisualStudio.Comp CLR data types for SQL 15.0.26208.0 Required


onent.SQL.CLR Server

Microsoft.VisualStudio.Comp Static analysis tools 15.0.26208.0 Required


onent.Static.Analysis.Tools

Microsoft.VisualStudio.Comp Text Template 15.0.26208.0 Required


onent.TextTemplating Transformation

Microsoft.VisualStudio.Comp Data sources and service 15.6.27406.0 Required


onent.VisualStudioData references

Microsoft.ComponentGroup. Blend for Visual Studio 15.6.27406.0 Recommended


Blend

Microsoft.Net.Component.4. .NET Framework 4.5.1 15.6.27406.0 Recommended


5.1.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.5.2 15.6.27406.0 Recommended


5.2.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.5 15.6.27406.0 Recommended


5.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.6 15.6.27406.0 Recommended


6.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4 targeting 15.6.27406.0 Recommended


TargetingPack pack

Microsoft.Net.ComponentGr .NET Framework 4 – 4.6 15.6.27406.0 Recommended


oup.TargetingPacks.Commo development tools
n

Microsoft.VisualStudio.Comp Just-In-Time debugger 15.0.27005.2 Recommended


onent.Debugger.JustInTime

Microsoft.VisualStudio.Comp .NET profiling tools 15.8.27729.1 Recommended


onent.DiagnosticTools
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp Entity Framework 6 tools 15.6.27406.0 Recommended


onent.EntityFramework

Microsoft.VisualStudio.Comp IntelliTrace 15.8.27729.1 Recommended


onent.IntelliTrace.FrontEnd

Microsoft.VisualStudio.Comp Live Unit Testing 15.0.26720.2 Recommended


onent.LiveUnitTesting

Component.Dotfuscator PreEmptive Protection - 15.0.26208.0 Optional


Dotfuscator

Component.Microsoft.Visual Razor Language Services 15.0.26720.2 Optional


Studio.RazorExtension

Component.Microsoft.Web.L Library Manager 15.8.27705.0 Optional


ibraryManager

Component.WebSocket WebSocket4Net 15.0.26606.0 Optional

Microsoft.Net.Component.4. .NET Framework 4.6.2 SDK 15.6.27406.0 Optional


6.2.SDK

Microsoft.Net.Component.4. .NET Framework 4.6.2 15.6.27406.0 Optional


6.2.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.7.1 SDK 15.6.27406.0 Optional


7.1.SDK

Microsoft.Net.Component.4. .NET Framework 4.7.1 15.6.27406.0 Optional


7.1.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.7.2 SDK 15.8.27825.0 Optional


7.2.SDK

Microsoft.Net.Component.4. .NET Framework 4.7.2 15.8.27825.0 Optional


7.2.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.7 SDK 15.6.27406.0 Optional


7.SDK

Microsoft.Net.Component.4. .NET Framework 4.7 15.6.27406.0 Optional


7.TargetingPack targeting pack

Microsoft.Net.ComponentGr .NET Framework 4.6.2 15.6.27406.0 Optional


oup.4.6.2.DeveloperTools development tools

Microsoft.Net.ComponentGr .NET Framework 4.7.1 15.6.27406.0 Optional


oup.4.7.1.DeveloperTools development tools

Microsoft.Net.ComponentGr .NET Framework 4.7.2 15.8.27825.0 Optional


oup.4.7.2.DeveloperTools development tools
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.Net.ComponentGr .NET Framework 4.7 15.6.27406.0 Optional


oup.4.7.DeveloperTools development tools

Microsoft.Net.Core.Compon .NET Core 2.0 development 15.6.27406.0 Optional


ent.SDK tools

Microsoft.Net.Core.Compon .NET Core 1.0 - 1.1 15.6.27406.0 Optional


ent.SDK.1x development tools

Microsoft.Net.Core.Compon .NET Core 2.1 development 15.8.27924.0 Optional


ent.SDK.2.1 tools

Microsoft.NetCore.Compone .NET Core 2.0 development 15.8.27729.1 Optional


ntGroup.DevelopmentTools tools

Microsoft.NetCore.Compone .NET Core 2.1 development 15.8.27924.0 Optional


ntGroup.DevelopmentTools. tools
2.1

Microsoft.VisualStudio.Comp Code Clone 15.0.26208.0 Optional


onent.CodeClone

Microsoft.VisualStudio.Comp Code Map 15.0.26208.0 Optional


onent.CodeMap

Microsoft.VisualStudio.Comp Connectivity and publishing 15.9.28107.0 Optional


onent.Common.Azure.Tools tools

Microsoft.VisualStudio.Comp Live Dependency Validation 15.0.26208.0 Optional


onent.DependencyValidation
.Enterprise

Microsoft.VisualStudio.Comp Container development 15.8.27906.1 Optional


onent.DockerTools tools

Microsoft.VisualStudio.Comp Container development 15.7.27617.1 Optional


onent.DockerTools.BuildTool tools - Build Tools
s

Microsoft.VisualStudio.Comp F# language support 15.8.27825.0 Optional


onent.FSharp

Microsoft.VisualStudio.Comp F# desktop language 15.8.27825.0 Optional


onent.FSharp.Desktop support

Microsoft.VisualStudio.Comp DGML editor 15.0.27005.2 Optional


onent.GraphDocument

Microsoft.VisualStudio.Comp IIS Express 15.0.26208.0 Optional


onent.IISExpress

Microsoft.VisualStudio.Comp JavaScript diagnostics 15.8.27729.1 Optional


onent.JavaScript.Diagnostics
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp JavaScript and TypeScript 15.9.28125.51 Optional


onent.JavaScript.TypeScript language support

Microsoft.VisualStudio.Comp NuGet package manager 15.9.28016.0 Optional


onent.NuGet

Microsoft.VisualStudio.Comp SQL ADAL runtime 15.6.27406.0 Optional


onent.SQL.ADAL

Microsoft.VisualStudio.Comp SQL Server Command Line 15.0.26208.0 Optional


onent.SQL.CMDUtils Utilities

Microsoft.VisualStudio.Comp Data sources for SQL Server 15.0.26621.2 Optional


onent.SQL.DataSources support

Microsoft.VisualStudio.Comp SQL Server Express 2016 15.7.27617.1 Optional


onent.SQL.LocalDB.Runtime LocalDB

Microsoft.VisualStudio.Comp SQL Server Native Client 15.0.26208.0 Optional


onent.SQL.NCLI

Microsoft.VisualStudio.Comp SQL Server Data Tools 15.9.28107.0 Optional


onent.SQL.SSDT

Microsoft.VisualStudio.Comp TypeScript 3.1 SDK 15.0.28218.60 Optional


onent.TypeScript.3.1

Microsoft.VisualStudio.Comp Windows Communication 15.8.27924.0 Optional


onent.Wcf.Tooling Foundation

Microsoft.VisualStudio.Comp ASP.NET and web 15.8.27825.0 Optional


onent.Web development tools

Microsoft.VisualStudio.Comp Architecture and analysis 15.0.26208.0 Optional


onentGroup.ArchitectureToo tools
ls.Managed

Microsoft.VisualStudio.Comp ASP.NET and web 15.9.28219.51 Optional


onentGroup.Web development tools
prerequisites

Microsoft.VisualStudio.Comp ASP.NET and web 15.8.27825.0 Optional


onentGroup.WebToolsExtens development
ions

Game development with Unity


ID: Microsoft.VisualStudio.Workload.ManagedGame
Description: Create 2D and 3D games with Unity, a powerful cross-platform development environment.
Components included by this workload
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.Net.Component.3. .NET Framework 3.5 15.6.27406.0 Required


5.DeveloperTools development tools

Microsoft.Net.Component.4. .NET Framework 4.7.1 15.6.27406.0 Required


7.1.TargetingPack targeting pack

Microsoft.VisualStudio.Comp NuGet package manager 15.9.28016.0 Required


onent.NuGet

Microsoft.VisualStudio.Comp C# and Visual Basic Roslyn 15.6.27309.0 Required


onent.Roslyn.Compiler compilers

Microsoft.VisualStudio.Comp C# and Visual Basic 15.8.27729.1 Required


onent.Roslyn.LanguageServi
ces

Microsoft.VisualStudio.Comp Static analysis tools 15.0.26208.0 Required


onent.Static.Analysis.Tools

Microsoft.VisualStudio.Comp Visual Studio Tools for Unity 15.7.27617.1 Required


onent.Unity

Component.UnityEngine.x64 Unity 2018.3 64-bit Editor 15.9.28307.271 Recommended

Component.UnityEngine.x86 Unity 5.6 32-bit Editor 15.6.27406.0 Recommended

Linux development with C++


ID: Microsoft.VisualStudio.Workload.NativeCrossPlat
Description: Create and debug applications running in a Linux environment.
Components included by this workload
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Component.MDD.Linux Visual C++ for Linux 15.6.27406.0 Required


Development

Microsoft.VisualStudio.Comp Visual Studio C++ core 15.6.27406.0 Required


onent.VC.CoreIde features

Microsoft.VisualStudio.Comp Windows Universal C 15.6.27406.0 Required


onent.Windows10SDK Runtime

Component.Linux.CMake Visual C++ tools for CMake 15.9.28307.102 Recommended


and Linux

Microsoft.VisualStudio.Comp Static analysis tools 15.0.26208.0 Recommended


onent.Static.Analysis.Tools

Microsoft.VisualStudio.Comp VC++ 2017 version 15.9 15.9.28230.55 Recommended


onent.VC.Tools.x86.x64 v14.16 latest v141 tools
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp Windows 10 SDK 15.9.28307.102 Recommended


onent.Windows10SDK.1776 (10.0.17763.0)
3

Microsoft.VisualStudio.Comp ASP.NET and web 15.8.27825.0 Recommended


onentGroup.WebToolsExtens development
ions

Component.MDD.Linux.GCC Embedded and IoT 15.6.27309.0 Optional


.arm Development

Desktop development with C++


ID: Microsoft.VisualStudio.Workload.NativeDesktop
Description: Build Windows desktop applications using the Microsoft C++ toolset, ATL, or MFC.
Components included by this workload
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.Component.MSBui MSBuild 15.7.27520.0 Required


ld

Microsoft.VisualStudio.Comp Class Designer 15.0.26208.0 Required


onent.ClassDesigner

Microsoft.VisualStudio.Comp Code Map 15.0.26208.0 Required


onent.CodeMap

Microsoft.VisualStudio.Comp DGML editor 15.0.27005.2 Required


onent.GraphDocument

Microsoft.VisualStudio.Comp C# and Visual Basic Roslyn 15.6.27309.0 Required


onent.Roslyn.Compiler compilers

Microsoft.VisualStudio.Comp SQL Server Express 2016 15.7.27617.1 Required


onent.SQL.LocalDB.Runtime LocalDB

Microsoft.VisualStudio.Comp SQL Server Native Client 15.0.26208.0 Required


onent.SQL.NCLI

Microsoft.VisualStudio.Comp Text Template 15.0.26208.0 Required


onent.TextTemplating Transformation

Microsoft.VisualStudio.Comp Visual Studio C++ core 15.6.27406.0 Required


onent.VC.CoreIde features

Microsoft.VisualStudio.Comp Visual C++ 2017 15.6.27406.0 Required


onent.VC.Redist.14.Latest Redistributable Update

Microsoft.VisualStudio.Comp Architecture tools for C++ 15.0.26208.0 Required


onentGroup.ArchitectureToo
ls.Native
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp Visual C++ core desktop 15.8.27729.1 Required


onentGroup.NativeDesktop. features
Core

Microsoft.VisualStudio.Comp Just-In-Time debugger 15.0.27005.2 Recommended


onent.Debugger.JustInTime

Microsoft.VisualStudio.Comp Graphics debugger and GPU 15.6.27406.0 Recommended


onent.Graphics.Tools profiler for DirectX

Microsoft.VisualStudio.Comp Graphics Tools Windows 8.1 15.6.27406.0 Recommended


onent.Graphics.Win81 SDK

Microsoft.VisualStudio.Comp IntelliTrace 15.8.27729.1 Recommended


onent.IntelliTrace.FrontEnd

Microsoft.VisualStudio.Comp NuGet package manager 15.9.28016.0 Recommended


onent.NuGet

Microsoft.VisualStudio.Comp Static analysis tools 15.0.26208.0 Recommended


onent.Static.Analysis.Tools

Microsoft.VisualStudio.Comp Visual C++ ATL for x86 and 15.7.27625.0 Recommended


onent.VC.ATL x64

Microsoft.VisualStudio.Comp Visual C++ tools for CMake 15.9.28307.102 Recommended


onent.VC.CMake.Project

Microsoft.VisualStudio.Comp C++ profiling tools 15.0.26823.1 Recommended


onent.VC.DiagnosticTools

Microsoft.VisualStudio.Comp Test Adapter for Boost.Test 15.8.27906.1 Recommended


onent.VC.TestAdapterForBo
ostTest

Microsoft.VisualStudio.Comp Test Adapter for Google Test 15.8.27906.1 Recommended


onent.VC.TestAdapterForGo
ogleTest

Microsoft.VisualStudio.Comp VC++ 2017 version 15.9 15.9.28230.55 Recommended


onent.VC.Tools.x86.x64 v14.16 latest v141 tools

Microsoft.VisualStudio.Comp Windows 10 SDK 15.9.28307.102 Recommended


onent.Windows10SDK.1776 (10.0.17763.0)
3

Microsoft.VisualStudio.Comp ASP.NET and web 15.8.27825.0 Recommended


onentGroup.WebToolsExtens development
ions

Component.Incredibuild IncrediBuild - Build 15.7.27617.1 Optional


Acceleration
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Component.IncredibuildMen IncrediBuildMenu 1.5.0.2 Optional


u

Microsoft.Component.VC.Ru Windows Universal CRT SDK 15.6.27309.0 Optional


ntime.UCRTSDK

Microsoft.Net.Component.4. .NET Framework 4.6.1 SDK 15.6.27406.0 Optional


6.1.SDK

Microsoft.Net.Component.4. .NET Framework 4.6.1 15.6.27406.0 Optional


6.1.TargetingPack targeting pack

Microsoft.VisualStudio.Comp VC++ 2015.3 v14.00 (v140) 15.7.27617.1 Optional


onent.VC.140 toolset for desktop

Microsoft.VisualStudio.Comp Visual C++ MFC for x86 and 15.7.27625.0 Optional


onent.VC.ATLMFC x64

Microsoft.VisualStudio.Comp C++/CLI support 15.6.27309.0 Optional


onent.VC.CLI.Support

Microsoft.VisualStudio.Comp Modules for Standard 15.6.27309.0 Optional


onent.VC.Modules.x86.x64 Library (experimental)

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1024 (10.0.10240.0)
0

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1058 (10.0.10586.0)
6

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1439 (10.0.14393.0)
3

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1506 (10.0.15063.0) for Desktop
3.Desktop C++ [x86 and x64]

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1506 (10.0.15063.0) for UWP: C#,
3.UWP VB, JS

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1506 (10.0.15063.0) for UWP:
3.UWP.Native C++

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1629 (10.0.16299.0) for Desktop
9.Desktop C++ [x86 and x64]

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1629 (10.0.16299.0) for Desktop
9.Desktop.arm C++ [ARM and ARM64]
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1629 (10.0.16299.0) for UWP: C#,
9.UWP VB, JS

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1629 (10.0.16299.0) for UWP:
9.UWP.Native C++

Microsoft.VisualStudio.Comp Windows 10 SDK 15.9.28307.102 Optional


onent.Windows10SDK.1713 (10.0.17134.0)
4

Microsoft.VisualStudio.Comp Windows 8.1 SDK 15.6.27406.0 Optional


onent.Windows81SDK

Microsoft.VisualStudio.Comp Windows XP support for 15.8.27924.0 Optional


onent.WinXP C++

Microsoft.VisualStudio.Comp Windows 8.1 SDK and UCRT 15.6.27406.0 Optional


onentGroup.NativeDesktop. SDK
Win81

Microsoft.VisualStudio.Comp Windows XP support for 15.8.27705.0 Optional


onentGroup.NativeDesktop. C++
WinXP

Microsoft.VisualStudio.Comp Windows 10 SDK 15.8.27825.0 Optional


onentGroup.Windows10SDK (10.0.15063.0)
.15063

Microsoft.VisualStudio.Comp Windows 10 SDK 15.8.27825.0 Optional


onentGroup.Windows10SDK (10.0.16299.0)
.16299

Game development with C++


ID: Microsoft.VisualStudio.Workload.NativeGame
Description: Use the full power of C++ to build professional games powered by DirectX, Unreal, or Cocos2d.
Components included by this workload
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp Static analysis tools 15.0.26208.0 Required


onent.Static.Analysis.Tools

Microsoft.VisualStudio.Comp Visual Studio C++ core 15.6.27406.0 Required


onent.VC.CoreIde features
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp Visual C++ 2017 15.6.27406.0 Required


onent.VC.Redist.14.Latest Redistributable Update

Microsoft.VisualStudio.Comp VC++ 2017 version 15.9 15.9.28230.55 Required


onent.VC.Tools.x86.x64 v14.16 latest v141 tools

Microsoft.VisualStudio.Comp Windows Universal C 15.6.27406.0 Required


onent.Windows10SDK Runtime

Microsoft.VisualStudio.Comp Graphics debugger and GPU 15.6.27406.0 Recommended


onent.Graphics.Tools profiler for DirectX

Microsoft.VisualStudio.Comp Graphics Tools Windows 8.1 15.6.27406.0 Recommended


onent.Graphics.Win81 SDK

Microsoft.VisualStudio.Comp IntelliTrace 15.8.27729.1 Recommended


onent.IntelliTrace.FrontEnd

Microsoft.VisualStudio.Comp C++ profiling tools 15.0.26823.1 Recommended


onent.VC.DiagnosticTools

Microsoft.VisualStudio.Comp Windows 10 SDK 15.9.28307.102 Recommended


onent.Windows10SDK.1776 (10.0.17763.0)
3

Component.Android.NDK.R1 Android NDK (R12B) 12.1.10 Optional


2B

Component.Android.SDK23. Android SDK setup (API level 15.9.28016.0 Optional


Private 23) (local install for Mobile
development with JavaScript
/ C++)

Component.Ant Apache Ant (1.9.3) 1.9.3.8 Optional

Component.Cocos Cocos 15.0.26906.1 Optional

Component.Incredibuild IncrediBuild - Build 15.7.27617.1 Optional


Acceleration

Component.IncredibuildMen IncrediBuildMenu 1.5.0.2 Optional


u

Component.MDD.Android C++ Android development 15.0.26606.0 Optional


tools

Component.OpenJDK Microsoft distribution 15.9.28125.51 Optional


OpenJDK

Component.Unreal Unreal Engine installer 15.8.27729.1 Optional

Component.Unreal.Android Visual Studio Android 15.9.28307.341 Optional


support for Unreal Engine
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.Component.VC.Ru Windows Universal CRT SDK 15.6.27309.0 Optional


ntime.UCRTSDK

Microsoft.Net.Component.4. .NET Framework 4.5.1 15.6.27406.0 Optional


5.1.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.5.2 15.6.27406.0 Optional


5.2.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.5 15.6.27406.0 Optional


5.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.6.1 SDK 15.6.27406.0 Optional


6.1.SDK

Microsoft.Net.Component.4. .NET Framework 4.6.1 15.6.27406.0 Optional


6.1.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.6 15.6.27406.0 Optional


6.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4 targeting 15.6.27406.0 Optional


TargetingPack pack

Microsoft.Net.ComponentGr .NET Framework 4.6.1 15.8.27825.0 Optional


oup.DevelopmentPrerequisit development tools
es

Microsoft.Net.ComponentGr .NET Framework 4 – 4.6 15.6.27406.0 Optional


oup.TargetingPacks.Commo development tools
n

Microsoft.VisualStudio.Comp NuGet targets and build 15.9.28016.0 Optional


onent.NuGet.BuildTools tasks

Microsoft.VisualStudio.Comp C# and Visual Basic Roslyn 15.6.27309.0 Optional


onent.Roslyn.Compiler compilers

Microsoft.VisualStudio.Comp C# and Visual Basic 15.8.27729.1 Optional


onent.Roslyn.LanguageServi
ces

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1024 (10.0.10240.0)
0

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1058 (10.0.10586.0)
6

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1439 (10.0.14393.0)
3
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1506 (10.0.15063.0) for Desktop
3.Desktop C++ [x86 and x64]

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1506 (10.0.15063.0) for UWP: C#,
3.UWP VB, JS

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1506 (10.0.15063.0) for UWP:
3.UWP.Native C++

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1629 (10.0.16299.0) for Desktop
9.Desktop C++ [x86 and x64]

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1629 (10.0.16299.0) for Desktop
9.Desktop.arm C++ [ARM and ARM64]

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1629 (10.0.16299.0) for UWP: C#,
9.UWP VB, JS

Microsoft.VisualStudio.Comp Windows 10 SDK 15.6.27406.0 Optional


onent.Windows10SDK.1629 (10.0.16299.0) for UWP:
9.UWP.Native C++

Microsoft.VisualStudio.Comp Windows 10 SDK 15.9.28307.102 Optional


onent.Windows10SDK.1713 (10.0.17134.0)
4

Microsoft.VisualStudio.Comp Windows 8.1 SDK 15.6.27406.0 Optional


onent.Windows81SDK

Microsoft.VisualStudio.Comp Windows 8.1 SDK and UCRT 15.6.27406.0 Optional


onentGroup.NativeDesktop. SDK
Win81

Microsoft.VisualStudio.Comp Windows 10 SDK 15.8.27825.0 Optional


onentGroup.Windows10SDK (10.0.15063.0)
.15063

Microsoft.VisualStudio.Comp Windows 10 SDK 15.8.27825.0 Optional


onentGroup.Windows10SDK (10.0.16299.0)
.16299

Mobile development with C++


ID: Microsoft.VisualStudio.Workload.NativeMobile
Description: Build cross-platform applications for iOS, Android or Windows using C++.
Components included by this workload
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Component.Android.SDK19. Android SDK setup (API level 15.9.28107.0 Required


Private 19) (local install for Mobile
development with JavaScript
/ C++)

Component.Android.SDK21. Android SDK setup (API level 15.9.28016.0 Required


Private 21) (local install for Mobile
development with JavaScript
/ C++)

Component.Android.SDK22. Android SDK setup (API level 15.9.28016.0 Required


Private 22) (local install for Mobile
development with JavaScript
/ C++)

Component.Android.SDK23. Android SDK setup (API level 15.9.28016.0 Required


Private 23) (local install for Mobile
development with JavaScript
/ C++)

Component.Android.SDK25. Android SDK setup (API level 15.9.28016.0 Required


Private 25) (local install for Mobile
development with JavaScript
/ C++)

Component.OpenJDK Microsoft distribution 15.9.28125.51 Required


OpenJDK

Microsoft.VisualStudio.Comp Visual Studio C++ core 15.6.27406.0 Required


onent.VC.CoreIde features

Component.Android.NDK.R1 Android NDK (R15C) 15.2.1 Recommended


5C

Component.Ant Apache Ant (1.9.3) 1.9.3.8 Recommended

Component.MDD.Android C++ Android development 15.0.26606.0 Recommended


tools

Component.Android.NDK.R1 Android NDK (R12B) 12.1.10 Optional


2B

Component.Android.NDK.R1 Android NDK (R12B) (32bit) 12.1.11 Optional


2B_3264

Component.Android.NDK.R1 Android NDK (R13B) 13.1.7 Optional


3B

Component.Android.NDK.R1 Android NDK (R13B) (32bit) 13.1.8 Optional


3B_3264

Component.Android.NDK.R1 Android NDK (R15C) (32bit) 15.2.1 Optional


5C_3264
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Component.Google.Android. Google Android Emulator 15.6.27413.0 Optional


Emulator.API23.Private (API Level 23) (local install)

Component.HAXM.Private Intel Hardware Accelerated 15.9.28307.421 Optional


Execution Manager (HAXM)
(local install)

Component.Incredibuild IncrediBuild - Build 15.7.27617.1 Optional


Acceleration

Component.IncredibuildMen IncrediBuildMenu 1.5.0.2 Optional


u

Component.MDD.IOS C++ iOS development tools 15.0.26621.2 Optional

.NET Core cross-platform development


ID: Microsoft.VisualStudio.Workload.NetCoreTools
Description: Build cross-platform applications using .NET Core, ASP.NET Core, HTML/JavaScript, and
Containers including Docker support.
Components included by this workload
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Component.Microsoft.Visual Razor Language Services 15.0.26720.2 Required


Studio.RazorExtension

Component.Microsoft.Web.L Library Manager 15.8.27705.0 Required


ibraryManager

Component.WebSocket WebSocket4Net 15.0.26606.0 Required

Microsoft.Component.ClickO ClickOnce Publishing 15.8.27825.0 Required


nce

Microsoft.Component.MSBui MSBuild 15.7.27520.0 Required


ld

Microsoft.Net.Component.4. .NET Framework 4.5.2 15.6.27406.0 Required


5.2.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.5 15.6.27406.0 Required


5.TargetingPack targeting pack

Microsoft.Net.Component.4. .NET Framework 4.6.1 SDK 15.6.27406.0 Required


6.1.SDK

Microsoft.Net.Component.4. .NET Framework 4.6.1 15.6.27406.0 Required


6.1.TargetingPack targeting pack
COMPONENT ID NAME VERSION DEPENDENCY TYPE

Microsoft.Net.ComponentGr .NET Framework 4.6.1 15.8.27825.0 Required


oup.DevelopmentPrerequisit development tools
es

Microsoft.Net.Core.Compon .NET Core 2.1 development 15.8.27924.0 Required


ent.SDK.2.1 tools

Microsoft.NetCore.Compone .NET Core 2.1 development 15.8.27924.0 Required


ntGroup.DevelopmentTools. tools
2.1

Microsoft.NetCore.Compone .NET Core 2.1 development 15.8.27924.0 Required


ntGroup.Web.2.1 tools

Microsoft.VisualStudio.Comp Connectivity and publishing 15.9.28107.0 Required


onent.Common.Azure.Tools tools

Microsoft.VisualStudio.Comp Container development 15.8.27906.1 Required


onent.DockerTools tools

Microsoft.VisualStudio.Comp Container development 15.7.27617.1 Required


onent.DockerTools.BuildTool tools - Build Tools
s

Microsoft.VisualStudio.Comp F# language support 15.8.27825.0 Required


onent.FSharp

Microsoft.VisualStudio.Comp F# language support for 15.9.28307.421 Required


onent.FSharp.WebTemplates web projects

Microsoft.VisualStudio.Comp IIS Express 15.0.26208.0 Required


onent.IISExpress

Microsoft.VisualStudio.Comp JavaScript diagnostics 15.8.27729.1 Required


onent.JavaScript.Diagnostics

Microsoft.VisualStudio.Comp JavaScript and TypeScript 15.9.28125.51 Required


onent.JavaScript.TypeScript language support

Microsoft.VisualStudio.Comp Managed Desktop Workload 15.8.27729.1 Required


onent.ManagedDesktop.Cor Core
e