Visual Studio 安装的命令行参数示例

为了说明如何 使用命令行参数安装 Visual Studio,下面是几个可以自定义以满足需求的示例。

在每个示例中,vs_enterprise.exevs_professional.exevs_community.exe 表示相应的 Visual Studio 引导程序版本,即启动下载过程的小型(~ 1MB)文件。 如果使用其他版本,请替换相应的引导程序名称。

所有命令都需要管理员权限提升,如果进程未从具有管理员权限的命令提示符启动,则会显示用户帐户控制(UAC)提示。

可以使用命令行末尾的 ^ 字符将多行连接成单个命令。 或者,您可以将这些行放在同一行上。 在 PowerShell 中,等效字符为反引号 (`)。

若要以非交互方式执行命令,可以使用--passive--quiet。 有关这些参数的详细信息,请参阅 命令和命令行分析 页。

有关可以使用命令行安装的工作负荷和组件的列表,请参阅 Visual Studio 工作负载和组件 ID 页。

使用 --installPath 和 --add 与启动加载程序进行安装

  • 安装 Visual Studio 的最小实例,没有交互式提示,但显示进度:

    vs_enterprise.exe --installPath C:\minVS ^
    --add Microsoft.VisualStudio.Workload.CoreEditor ^
    --passive --norestart
    
  • 使用法语语言包静默安装 Visual Studio 的桌面实例,并且仅在产品安装完成时返回。

    vs_enterprise.exe --installPath C:\desktopVS ^
    --addProductLang fr-FR ^
    --add Microsoft.VisualStudio.Workload.ManagedDesktop ^
    --includeRecommended --quiet --wait
    

更新

  • 通过命令行更新 Visual Studio 实例,其中显示了进度,并且没有交互式提示。 可以使用在客户端或布局中找到的引导程序,在两个步骤中运行这些系列命令。 第一个命令更新客户端上的安装程序,第二个命令更新 Visual Studio 产品。 你需要在提升的命令提示符下运行这些命令,因为更新安装程序需要管理员权限。 以下示例模拟在布局中使用长期有效的启动加载程序更新客户端。

    \\layoutserver\share\path\vs_enterprise.exe --update --quiet --wait
    \\layoutserver\share\path\vs_enterprise.exe update --wait --passive --norestart --installPath "C:\installPathVS"
    

或者,还可以使用客户端上的安装程序在一个步骤中更新 Visual Studio 实例。 标准用户(如果已获得适当的权限)可以使用安装程序以编程方式执行更新命令,但不允许他们使用 --passive--quiet 开关。 请注意,不能从安装程序所在的同一目录中以编程方式启动安装程序。

"C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" update --passive --norestart --installPath "C:\installPathVS"

使用 --wait

  • 在批处理文件或脚本中使用 --wait,等待执行下一个命令之前完成初始命令。 对于批处理文件,%ERRORLEVEL% 环境变量包含命令的返回值,如 使用命令行参数安装 Visual Studio 页中所述。 某些命令实用工具需要其他参数等待完成并获取安装程序的返回值。

--wait 参数仅受引导程序支持。

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

以下命令是将 --wait 与 PowerShell 脚本命令 Start-Process配合使用的示例:

$process = Start-Process -FilePath vs_enterprise.exe -ArgumentList "--installPath", "C:\VS", "--passive", "--wait" -Wait -PassThru
Write-Output $process.ExitCode 

 $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()
  • 第一个 --wait 由 Visual Studio 引导程序使用,第二个 -Wait 由“Start-Process”用来等待完成。 -PassThru 参数由 Start-Process 使用,以将安装程序的退出代码用于其返回值。

使用 --layout 创建网络布局或本地缓存

  • 创建仅包含 Visual Studio 核心编辑器(最少的 Visual Studio 配置)和英语语言包的布局。 可以在 创建 Visual Studio 网络安装 页面上找到更多的布局创建示例。

    vs_professional.exe --layout "C:\VS" ^
    --lang en-US ^
    --add Microsoft.VisualStudio.Workload.CoreEditor ^
    

使用命令行选项 --all 以获取整个产品

  • 启动 Visual Studio Enterprise 版中提供的所有工作负载和组件的交互式安装:

    vs_enterprise.exe --all
    

Using --includeRecommended

  • 借助 Node.js 开发支持,使用昵称在已安装 Visual Studio Community 版本的计算机上安装 Visual Studio Professional 的第二个实例:

    vs_professional.exe --installPath C:\VSforNode ^
    --add Microsoft.VisualStudio.Workload.Node --includeRecommended --nickname VSforNode
    

使用 --channelURI

使用最新的安装程序,可以配置 Visual Studio 查找更新的位置--channelUri 也称为更新通道或更新的源位置。 下表提供了 channelId 和 channelUri 的示例值及其含义。

频道名称 --channelUri --channelId
Visual Studio 2022 当前频道 https://aka.ms/vs/17/release/channel VisualStudio.17.Release
Visual Studio 2022 17.0 LTSC 频道 https://aka.ms/vs/17/release.LTSC.17.0/channel VisualStudio.17.Release.LTSC.17.0
Visual Studio 2022 预览版频道 https://aka.ms/vs/17/pre/channel VisualStudio.17.Preview
Visual Studio 2019 发布频道 https://aka.ms/vs/16/release/channel VisualStudio.16.Release
Visual Studio 2017 发布频道 https://aka.ms/vs/15/release/channel VisualStudio.15.Release
自定义布局 - 专用频道 \\layoutserver\share\path\channelmanifest.json VisualStudio.17.Release(或布局所基于的任何版本)

如果选择使用自定义布局作为更新通道,请注意以下准则:

  • --channelUri 必须指向自定义布局中的“channelmanifest.json”文件。
  • 管理员可以通过配置客户端的注册表设置 来配置自定义布局“专用通道”在更新设置 UI 中显示的方式。

使用 --remove

  • 从默认安装的 Visual Studio 实例中删除分析工具组件。 此示例使用已在客户端计算机上安装的安装程序。 具有适当权限 标准用户可以使用安装程序以编程方式执行修改命令,但不允许他们使用 --passive--quiet 开关。 请注意,不能从安装程序所在的同一目录中以编程方式启动安装程序。

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

不能在与 --layout相同的命令中使用 --remove。 换句话说,无法从布局中删除组件。

使用 --removeOos

使用 最新的安装程序,可以修改安装,并从默认安装的 Visual Studio 实例中删除已转换为不支持状态 的所有 组件。 此示例使用已在客户端计算机上安装的安装程序来配置 removeOos 设置。 标准用户(如果已获得适当的权限)可以使用安装程序以编程方式执行修改命令,但不允许他们使用 --passive--quiet 开关。 不能以编程方式从安装程序所在的同一目录中启动安装程序。

 "C:\Program Files (x86)\Microsoft Visual studio\Installer\setup.exe" modify ^
 --installPath "C:\Program Files\Microsoft Visual Studio\2022\Enterprise" ^
 --removeOos true ^
 --passive
  • 调整更新设置,以在每次更新产品时永久删除过渡到支持不足状态的所有组件:

    "C:\Program Files (x86)\Microsoft Visual studio\Installer\setup.exe" modify ^
    --channelURI https://aka.ms/vs/17/release.LTSC.17.0/channel ^
    --productID Microsoft.VisualStudio.Product.Enterprise ^
    --newChannelURI \\layoutserver\share\path\channelmanifest.json ^
    --removeOos true ^
    --quiet  
    

使用 --path

所有这些示例都假定你正在使用引导程序安装新产品。

  • 使用安装、缓存和共享路径:

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

  • 仅使用安装和缓存路径:

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

  • 仅使用安装和共享路径:

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

  • 仅使用安装路径:

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

使用 export

  • 使用导出保存安装中的选择。 此示例使用已在客户端计算机上安装的安装程序。

    "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" export --installPath "C:\VS" --config "C:\my.vsconfig"
    
  • 使用导出从头开始保存自定义选择。 此示例使用已在客户端计算机上安装的安装程序。

    "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" export --channelId VisualStudio.17.Release --productId Microsoft.VisualStudio.Product.Enterprise --add Microsoft.VisualStudio.Workload.ManagedDesktop --includeRecommended --config "C:\my.vsconfig"
    

使用 --config

  • 使用 --config 从以前保存的安装配置文件安装工作负载和组件:

    vs_enterprise.exe --config "C:\my.vsconfig" --installPath "C:\VS"
    
  • 使用 --config 将工作负载和组件添加到现有安装。 此示例使用已在客户端计算机上安装的安装程序。 具有适当权限 标准用户可以使用安装程序以编程方式执行修改命令,但不允许他们使用 --passive--quiet 开关。 不能以编程方式从安装程序所在的同一目录中启动安装程序。

    "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" modify --installPath "C:\VS" --config "C:\my.vsconfig"
    
  • 使用 --config 配置布局的内容:

    vs_enterprise.exe --layout C:\layout --config "C:\my.vsconfig" 
    

使用 winget

使用 Windows 包管理器“winget”工具以编程方式在计算机上安装或更新 Visual Studio 以及由 winget 管理的其他包。 要自定义安装并指定其他工作负载和组件,可将 winget 的 --override 开关与 winget 的 install 命令一起使用,并传入导出的 vsconfig 文件,如下所示:

winget install --id Microsoft.VisualStudio.2022.Community --override "--passive --config C:\my.vsconfig"

还可以使用 winget configure 并传入 .yaml 文件来修改现有的 Visual Studio 安装。 此方法使用此处所述Visual Studio PowerShell DSC 提供程序

支持或故障排除

有时,事情可能会出问题。 如果 Visual Studio 安装失败,请参阅 Visual Studio 安装和升级问题疑难解答获取分步指南。

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

  • 对于与安装相关的问题,请使用安装聊天(仅限英语)支持选项。
  • 使用 报告问题 工具,向我们报告产品问题。该工具在 Visual Studio 安装程序和 Visual Studio IDE 中均可使用。 如果你是 IT 管理员且未安装 Visual Studio,则可以提交 IT 管理员反馈
  • Visual Studio 开发人员社区中,可提出功能建议、跟踪产品问题,并能找到答案。