Programmatically configure default settings using a response file
Applies to: Visual Studio Visual Studio for Mac
Note
This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here
The Visual Studio response file is a JSON file whose contents mirror the command-line parameters and arguments. The response file is used to initialize client settings during the initial installation of the product onto the client.
Automate installation
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 file contents
The response file encapsulates command line parameters and follows these general rules:
- If a command-line parameter takes no arguments (for example,
--quiet
,--passive
, etc.), the value in the response file should be true/false. - If the parameter takes an argument (for example,
--installPath <dir>
), the value in the response file should be a string. - If the parameter takes an argument and can appear on the command-line more than once (for example,
--add <id>
), the value in the response file should be an array of strings.
Parameters that are specified on the command-line override the settings that are included in 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.
Configure the response file used with network layouts
If you created a network layout by using the --layout
command, an initial default vanilla response.json
file was created in the root of the layout folder. Administrators can then modify this response.json
file in the layout to control the settings that the clients should use when they invoke the bootstrapper in that layout to install or update Visual Studio on the client.
The configuration settings in the response.json
file are only referenced and used when the client is using the bootstrapper in the layout. The response.json
in the layout is not used when the client is invoking the update locally on the client.
If the administrator created a partial layout, then the default response.json
file will specify only the workloads and languages that were included in the partial layout.
Assuming --quiet
mode is not used when the client is performing the initial install, then the users running an initial installation can override the defaults specified in the response.json
and further select or unselect any workloads in the setup UI before the installation actually occurs. If the user does select components or workloads that aren't available in the layout, and if the channelURI in the response.json
points to Microsoft hosted servers, then Visual Studio setup will try to acquire the packages from the internet.
When Visual Studio setup is run from a layout folder, the setup will automatically use the response.json
file in the layout folder. You don't have to use the --in
option.
Warning
It's critical that you don't delete any properties in the response.json
that were defined when the layout was created. You can change the values, but you can't remove any items.
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"
}
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 the response.json
file or your own response file. Do not customize the response.template.json file or your changes will be lost whenever the layout is updated.
Example customized layout response file content
The following response.json
file example will initialize a Visual Studio Enterprise client install to include several common workloads and components, to include both the English and French UI languages, and to have the update location configured to point back to the layout. Note that for Visual Studio 2017, once the update location (channelURI) is set on the client, it cannot be changed later.
{
"installChannelUri": ".\\ChannelManifest.json",
"channelUri": "\\\\server\\share\\layoutdirectory\\ChannelManifest.json",
"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"
]
}
Troubleshooting
If you run into a problem with the Visual Studio bootstrapper throwing an error when you pair it with a response.json
file, see Troubleshoot network-related errors when you install or use Visual Studio page for more information.
Support or troubleshooting
Sometimes, things can go wrong. If your Visual Studio installation fails, see Troubleshoot Visual Studio installation and upgrade issues for step-by-step guidance.
Here are a few more support options:
- We also offer an installation chat (English only) support option for installation-related issues.
- 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. If you're an IT Administrator and don't have Visual Studio installed, you can submit IT Admin feedback here.
- Suggest a feature, track product issues, and find answers in the Visual Studio Developer Community.