DoRA:实践指南
2026-09-11 3465916
2026-09-11 0
面对实际交付,我看vswhere的重点不在星标,而在这项能力:找到 Visual Studio 2017 和更高版本的安装。对日常自动化任务来说,输入边界、依赖和失败处理如果不清楚就很难稳定复用往往决定它能否落地,不能只用安装成功来判断。我的评估方法是用一项范围明确的真实任务完成最小试跑,然后检查配置时间、输出质量、异常信息和维护痕迹是否与文档一致。我的判断是,它更适合愿意先做小范围验证并复查原始文档的团队;若眼下没有这类需求,先保留观察即可。
Visual Studio 定位器
多年来,可以使用注册表项发现 Visual Studio,但随着最近对部署和可扩展性模型的更改,需要一种新方法来发现可能多个已安装的实例。这些更改有助于实现更小、更快的默认安装,并可按需安装其他工作负载和组件。
vswhere 被设计为可重新分发的单文件可执行文件,可在生成或部署脚本中使用,以查找 Visual Studio(或 Visual Studio 系列中的其他产品)的位置。例如,如果您知道 MSBuild 的相对路径,则可以找到 Visual Studio 安装的根目录并组合路径来查找您需要的内容。
您可以根据脚本可以使用的内容发出不同格式的信息,包括纯文本、JSON 和 XML。其他常见格式的拉取请求也可以被接受。
从 Visual Studio 2017 版本 15.2 及更高版本开始,vswhere 包含在安装程序中,可以在以下位置找到:%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe。可以根据需要从该位置执行二进制文件,使用流行的包管理器(包括 WinGet)安装 ,或者最新版本可能是从发布页面 下载的 [。
示例
如果您想找到 MSBuild - 现在安装在 Visual Studio 2017 和更高版本的安装根目录下 - 您可以编写如下命令来运行已安装的最新版本的 MSBuild。此示例使用 最新版本 中的新 -find 参数来搜索所选实例以查找匹配的文件名模式。您可以使用 -version 或 -prerelease 等参数定制选择的实例,以查找您支持的特定版本,也可以选择包括预发布版本。
@echo off
setlocal enabledelayedexpansion
for /f "usebackq tokens=*" %%i in (`vswhere -latest -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe`) do (
"%%i" %*
exit /b !errorlevel!
)
您可以在我们的 wiki 中找到更多 示例。
反馈意见
要提出问题或建议,请使用 GitHub 上此项目的 问题 页面。