将 Visual Studio 从布局部署到客户端计算机上

若要将布局部署到客户端计算机,首先需要考虑以下主题:

将 Visual Studio 从布局安装到客户端计算机上

管理员可以将 Visual Studio 布局作为安装脚本的一部分以编程方式部署到客户端工作站上。

从网络布局安装

具有管理员权限的用户可以通过运行以下命令,在无人参与模式下从网络布局安装 Visual Studio。 布局中的 response.json 提供安装的默认配置设置。

\\server\products\VS\vs_enterprise.exe --quiet --wait 

如果用户选择了布局中不可用的项目,则安装程序将尝试从 Internet 上的 Microsoft 托管服务器获取这些附加文件。 若要确保安装程序安装产品时不会尝试访问 Internet,请使用 --noweb 开关。 例如,使用此命令运行安装并阻止客户端计算机访问 Internet:

\\server\products\VS\vs_enterprise.exe --noWeb --wait --passive --add Microsoft.VisualStudio.Workload.ManagedDesktop --add Microsoft.VisualStudio.Workload.NetWeb --includeOptional

注意

请耐心等待。 请确保 --wait 安装程序和产品都完成相关操作。 从布局安装或更新客户端时,安装程序始终最先安装或更新,然后再安装或更新 Visual Studio 产品本身。 这两个过程都要完成才能视为成功更新。

无人参与的自动批处理文件这一过程中会执行安装或更新时,这时 --wait 选项有助于确保 vs_enterprise.exe 过程在返回退出代码之前等待安装完成。 如果企业管理员希望对已完成的安装执行其他操作(例如,将产品密钥应用于成功的安装),这就非常有用。 使用 --wait 选项可防止后续操作提前开始。 如果不使用 --wait,则 vs_enterprise.exe 进程可能会在安装的两个部分都完成之前退出,因此将返回不准确的退出代码,该代码不能表示安装操作状态。

从内部 Intranet 位置安装

一些企业希望将布局托管在 Intranet 位置上,以更好地管理地理性能瓶颈并利用 Web 缓存。 若要将 Intranet 托管布局部署到客户端计算机上,具有管理员权限的用户必须运行类似于以下内容的提升的 PowerShell 脚本,以初始化客户端计算机上的安装。

    #Do the initial installation from the web hosted layout onto the client in an elevated PowerShell script

    #ADMIN CONFIGURATION
    #Enter layout URI here
    $LayoutUri = "http://MyCompanyIntranetSite/VS2022Enterprise/"

    #Enter bootstrapper name which is present in layout.
    $BootstrapperName = "vs_Enterprise.exe"

    #Add any arguments which you intend to send to bootstrapper.
    $Arguments = "--passive --wait"

    #SCRIPT FUNCTIONALITY
    #Forming URI for bootstrapper
    Write-Verbose "LayoutUri: $LayoutUri"
    $BootstrapperUri = "$LayoutUri/$BootstrapperName"
    Write-Verbose "BootstrapperUri: $BootstrapperUri"

    $Arguments += " --layoutUri $LayoutUri"
    Write-Verbose "Arguments: $Arguments"

    #Creating temp folder and download bootstrapper
    $VSLayoutFolderPath = Join-Path -Path $env:TEMP -ChildPath VSLayout
    $BootstrapperFile = Join-Path -Path $VSLayoutFolderPath -ChildPath $BootstrapperName
    Write-Verbose "The bootstrapper path is: $BootstrapperFile"

    if (Test-Path $VSLayoutFolderPath)
    {
    Write-Verbose "The directory exists - $VSLayoutFolderPath"
    if (Test-Path $BootstrapperFile)
    {
    Write-Verbose "Deleting file - $BootstrapperFile"
    Remove-Item $BootstrapperFile
    }
    }
    else
    {
    Write-Verbose "Creating folder - $VSLayoutFolderPath"
    New-Item -ItemType Directory -Path $VSLayoutFolderPath
    }

    Write-Verbose "Downloading bootstrapper from - $BootstrapperUri to $BootstrapperFile"
    Invoke-WebRequest -Uri $BootstrapperUri -OutFile $BootstrapperFile
    
    Write-Verbose "Starting bootstrapper -$BootstrapperFile with arguments $Arguments"
    start-process $BootstrapperFile $Arguments

准备客户端计算机

权限

确保运行安装的用户或系统帐户能够正确访问包含布局的网络共享。 有关详细信息,请参阅安装或使用 Visual Studio 时与网络相关错误的疑难解答页。

在没有 Internet 访问的客户端上安装

需要确保任何脱机客户端计算机都安装了正确的证书

从布局进行安装时,客户端的安装程序始终在布局的位置中查找 Visual Studio 包。 但是,如果安装程序尝试安装布局中未包含的组件,则会尝试从更新源获取 Visual Studio 包,管理员通常将其配置为指向自身

如果要显式阻止 Visual Studio 安装程序尝试从 Web 上的 Microsoft 托管服务器下载任何缺失内容,可以使用 --noWeb 参数。 如果使用 --noWeb,但布局中缺少要安装的选定组件,那么安装将会失败。 此外,如果使用 --noWeb 并且布局托管在 Intranet Web 服务器上而不是文件网络共享上,则设置将失败。

使用 --noweb 开关通常会修复错误消息“找不到与以下参数匹配的产品”。

计算机资源

请确保完整安装路径少于 80 个字符,并且计算机具有足够的存储空间。 Visual Studio 的完整安装至少需要 45 -50 GB 的磁盘空间。

错误代码

如果使用 --wait 参数,%ERRORLEVEL% 环境变量会设置为下列值之一,具体视操作结果而定:

结果
0 操作成功完成
740 需要提升
1001 Visual Studio 安装程序进程正在运行
1003 Visual Studio 正在使用中
1602 操作已取消
1618 另一个安装正在运行
1641 操作已成功完成,并已启动重启
3010 操作成功完成,但安装需要重启才能使用
5003 引导程序无法下载安装程序
5004 操作已取消
5005 引导程序命令行分析错误
5007 操作被屏蔽 - 计算机不符合要求
8001 Arm 计算机检查失败
8002 后台下载预检查失败
8003 不支持可选择的失败
8004 目标目录失败
8005 验证源有效负载失败
8006 Visual Studio 进程正在运行
8010 操作系统不受支持。 参阅系统要求
-1073720687 连接失败
-1073741510 Microsoft Visual Studio 安装程序已(通过用户或外部进程)终止
其他
(例如:
-1、1、1603)
发生了故障,请查看日志,了解详细信息

获取部署布局的支持

如果在客户端计算机上部署布局时遇到问题,请告知我们。 通过报告问题工具(会出现在 Visual Studio 安装程序和 Visual Studio IDE 中)是告知我们的最佳方式。 如果你是 IT 管理员,并且尚未安装 Visual Studio,可以在此处提交 IT 管理员反馈。 使用此工具时,如果你可以通过 VS 收集工具发送日志,这将很有帮助,可帮助我们诊断和解决问题。

对于安装相关问题,我们还提供安装聊天(仅限英语)支持选项 。

我们还提供其他支持选项。 请参阅我们的 Visual Studio 开发者社区