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