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

为了说明如何使用命令行参数来安装 Visual Studio,本文介绍了多个示例,你可以根据自己的需求自定义这些示例。

在每个示例中,vs_enterprise.exevs_professional.exevs_community.exe 表示 Visual Studio 安装引导程序的相应版本,这是启动下载过程的小型(约 1 MB)文件。 若要使用其他版本,请用相应的安装引导程序名称进行替换。

所有命令都需要进行管理提升,如果没有通过提升的提示符启动进程,将显示用户帐户控制提示。

可以在命令行末尾使用 ^ 字符,将多行连接到一个命令中。 也可以在一行中编写这些代码行。 在 PowerShell 中,等效字符为反引号 (`)。

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

使用 --installPath 和引导程序进行安装

  • 安装 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
    

Using --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(或布局所基于的任何版本)

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

Using --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。 换句话说,无法从布局中删除组件。

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

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

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

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

    "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 安装和升级问题疑难解答获取分步指南。

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