使用响应文件配置安装默认设置

本文介绍如何创建响应文件,以便自动安装 Visual Studio。 最常用于从布局安装 Visual Studio。

Visual Studio 响应文件是一个 JSON 文件,其内容包含在将 Visual Studio 初始安装到客户端期间使用的自定义项。 其内容镜像命令行参数和参数。 将响应文件用于以下配置选项:

创建响应文件

response.json 文件通常在管理员创建布局时创建,可以在布局的根文件夹中找到。 但是,可以使用以下示例之一创建自己的响应文件。

指定响应文件

如果管理员通过从布局调用引导程序来部署 Visual Studio,则将自动使用在布局根目录中找到的响应文件。 管理员还可以选择使用 --in 参数显式指定不同的响应文件,如以下示例所示:

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

响应文件内容

响应文件封装了 Visual Studio 安装程序使用的命令行参数,并遵循以下一般规则:

  • 如果命令行参数未使用任何自变量(例如,--quiet--passiveincludeRecommendedremoveOosuseLatestInstallerallowUnsignedExtensions 等),则响应文件中的值应为 true/false。
  • 如果参数使用实际参数(例如,--installPath <dir>--config <*.vsconfig file>),则响应文件中的值应为字符串。
  • 如果形式参数使用实际参数并能在命令行中多次出现(例如 --add <id>),响应文件中的值应为一组字符串。

命令行中指定的参数将替代响应文件中所包含的设置,但参数采用多个输入时除外(例如 --add)。 具有多个输入时,命令行中提供的输入将与响应文件中的设置合并。

配置从布局安装时使用的响应文件

如果使用 --layout 命令创建了布局,则将在布局文件夹的根中创建默认 response.json 文件。 在安装到客户端计算机之前,管理员应该适当地修改和自定义响应文件。 这样,他们就可以控制客户端的初始配置设置。

response.json 文件中的配置设置仅在执行引导程序(例如 vs_enterprise.exe)时才会得到引用。 引导程序通常用于在客户端上执行初始安装,但有时它们也用于更新客户端。 在客户端上本地启动安装程序时,从不使用 response.json

如果管理员创建了部分布局,则布局中的默认 response.json 文件将仅指定部分布局中包含的工作负载和语言。

如果布局是通过传入 --config *.vsconfig 文件创建的,则 *.vsconfig 文件将作为 layout.vsconfig 复制到布局目录中,并且该配置文件将在 response.json 文件中引用。 通过这种方式,可以使用配置文件来初始化来自布局的客户端安装。

请务必特别注意 channelUri 设置,该设置配置客户端查找更新的位置。 默认配置让客户端查看 Internet 上的 Microsoft 托管服务器以获取更新。 如果希望客户端从布局中获取其更新,则需要更改 channelUri 的值并将其指向布局。 下文详述了如何执行此操作的示例。 始终可以通过在客户端上执行安装程序并调用 modifySettings 命令来更改客户端将来查找更新的位置。

如果客户端安装不是使用 --quiet--passive 模式完成的,则用户可以覆盖 response.json 中指定的默认值,并进一步选择或取消选择要安装的其他工作负载和组件。

警告

在创建布局时定义的 response.json 中编辑属性时要非常小心,因为有些项目是安装所必需的。

布局中的基本 response.json 文件应类似于以下示例,只不过 productID 会反映布局中的版本。

{
  "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"
}

创建或更新布局时,会同时创建一个 response.template.json 文件。 此文件包含所有可用的工作负载、组件和语言 ID。 此文件以模板形式提供,可包含自定义安装中的所有内容。 管理员可使用此文件作为自定义响应文件的起点。 仅需删除不需要安装的内容的 ID,并将其保存在 response.json 文件或自己的响应文件中。 请勿自定义 response.template.json 文件,否则一旦布局更新,所做更改就会丢失。

自定义布局响应文件内容示例

以下 response.json 文件示例将初始化 Visual Studio 2019 Enterprise 的客户端安装,以便选择几个常见的工作负载和组件,同时选择英语和法语 UI 语言,并将更新位置配置为在网络托管布局中查找源。 请注意,对于 Visual Studio 2019,更新位置 (channelUri) 只能在初始安装期间配置,并且在此之后无法更改,除非你使用最新安装程序中的功能。 有关如何对此进行配置的信息,请参阅为 Visual Studio 的企业部署配置策略配置布局以始终包含并提供最新安装程序

{
  "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"
    ]
}

在以下示例中,response.json 文件初始化 Visual Studio 2022 Enterprise 客户端安装:

{
  "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"
    ]

}

警告

如果使用的是 Intranet Web 托管布局,则不能在 response.json 中设置“noWeb”: true 并期望它成立。 这会禁用 http 协议并阻止客户端访问网站。

疑难解答

如果在将引发错误的 Visual Studio 引导程序与 response.json 文件配对时发生错误,请参阅安装或使用 Visual Studio 时与网络相关错误的疑难解答页,以获取详细信息。

支持或故障排除

有时,你难免遇到一些问题。 如果 Visual Studio 安装失败,请参阅 Visual Studio 安装和升级问题疑难解答获取分步指南。

下面是另外几个支持选项: