Configure installation default settings using a response file

In this article, you'll learn how to create a response file that helps you automate your Visual Studio installation. It's most commonly used when you install Visual Studio from a layout.

The Visual Studio response file is a JSON file whose contents contain customizations used during the initial installation of Visual Studio onto the client. Its contents mirror the command line arguments and parameters. Use the response file for the following configuration options:

Creating the response file

The response.json file is typically created when an administrator creates a layout and can be found in the root folder of the layout. However, you can create your own response file using one of the examples below.

Specifying the response file

If an administrator deploys Visual Studio by invoking the bootstrapper from a layout, the response file found in the layout's root directory will automatically be used. Administrators can also choose to explicitly specify a different response file by using the --in parameter, as in the following example:

\\server\share\layoutdirectory\vs_enterprise.exe --in custom_response_file.json

Response file contents

The response file encapsulates command line parameters used by the Visual Studio Installer, and it follows these general rules:

  • If a command-line parameter takes no arguments (for example, --quiet, --passive, includeRecommended, removeOos, useLatestInstaller, allowUnsignedExtensions, etc.), the value in the response file should be true/false.
  • If the parameter takes an argument (for example, --installPath <dir>, --config <*.vsconfig file>), then 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 when installing from a layout

If you created a layout by using the --layout command, then a default response.json file will be created in the root of the layout folder. Administrators are expected to modify and customize the response file appropriately before installing onto a client machine. That way, they can control the client's initial configuration settings.

The configuration settings in the response.json file are only referenced when executing a bootstrapper (e.g. vs_enterprise.exe). Bootstrappers are typically used to perform initial installation on the client, but sometimes they're used to update a client too. The response.json is never used when you launch the installer locally on the client.

If the administrator created a partial layout, then the default response.json file in the layout will specify only the workloads and languages that were included in the partial layout.

If the layout is created by passing in a --config *.vsconfig file, then the *.vsconfig file will be copied into the layout directory as layout.vsconfig and this config file will be referenced in the response.json file. This way, you can use configuration files to initialize client installations that come from a layout.

Make sure to pay special attention to the channelUri setting, which configures where the client will look for updates. The default configuration is for the client to look at Microsoft hosted servers on the internet for updates. You'll need to change the value of channelUri and point it to your layout if you want clients to get their updates from your layout. Examples for how to do this are detailed below. You can always change where a client looks for updates in the future by executing the installer on the client and invoking the modifySettings command.

If the client installation is not done using --quiet or --passive mode, users can override the defaults specified in the response.json and further select or unselect additional workloads and components to install.

Warning

Be very careful when editing properties in the response.json defined when the layout was created, as some of the items are required for installation.

The base response.json file in a layout should look similar to the following example, except that the productID would reflect the edition in your layout.

{
  "installChannelUri": ".\\ChannelManifest.json",
  "channelUri": "https://aka.ms/vs/16/release/channel",
  "installCatalogUri": ".\\Catalog.json",
  "channelId": "VisualStudio.16.Release",
  "productId": "Microsoft.VisualStudio.Product.Enterprise"
}
{
  "installChannelUri": ".\\ChannelManifest.json",
  "channelUri": "https://aka.ms/vs/17/release/channel",
  "installCatalogUri": ".\\Catalog.json",
  "channelId": "VisualStudio.17.Release",
  "productId": "Microsoft.VisualStudio.Product.Enterprise"
}
{
  "installChannelUri": ".\\ChannelManifest.json",
  "channelUri": "https://aka.ms/vs/17/release.ltsc.17.0/channel",
  "installCatalogUri": ".\\Catalog.json",
  "channelId": "VisualStudio.17.Release.LTSC.17.0",
  "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 2019 Enterprise client install to select several common workloads and components, to select both the English and French UI languages, and to have the update location configured to look for sources in a network hosted layout. Note that for Visual Studio 2019, the update location (channelUri) can only be configured during initial installation and cannot be changed after the fact unless you use the functionality in the latest installer. Refer to the Configure policies for enterprise deployments of Visual Studio and the Configure your layout to always include and provide the latest installer for information on how to configure this.

{
  "installChannelUri": ".\\ChannelManifest.json",
  "channelUri": "\\\\server\\share\\layoutdirectory\\ChannelManifest.json",
  "installCatalogUri": ".\\Catalog.json",
  "channelId": "VisualStudio.16.Release",
  "productId": "Microsoft.VisualStudio.Product.Enterprise",

  "installPath": "C:\\VS2019",
  "quiet": false,
  "passive": false,
  "includeRecommended": true,
  "norestart": false,
  "useLatestInstaller": true,
  "removeOos": true,
  
  "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"
    ]
}

In the following example, the response.json file initializes a Visual Studio 2022 Enterprise client install that:

{
  "installChannelUri": ".\\ChannelManifest.json",
  "channelUri": "http://MyCompanyIntranetSite/VS2022Enterprise/ChannelManifest.json",
  "installCatalogUri": ".\\Catalog.json",
  "channelId": "VisualStudio.17.Release",
  "productId": "Microsoft.VisualStudio.Product.Enterprise",
  "arch": "x64",
  "config": ".\\Layout.vsconfig"
  "installPath": "C:\\VS2022",
  "quiet": false,
  "passive": false,
  "includeRecommended": true,
  "norestart": false,
  "useLatestInstaller": true,
  "removeOos": true,
  "allowUnsignedExtensions": true,

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

}

Warning

If you're using intranet webhosted layouts, you can’t set “noWeb”: true in the response.json and expect it to work. This will disable the http protocol and prevent the client from accessing the website.

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 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.