[英]Installed C++ with VS Build Tools, but can't find CL.exe
我们有一个基于docker pull mcr.microsoft.com/dotnet/framework/sdk:4.8
的 Jenkins 构建代理
容器的部分 Docker 文件会引入额外的工作负载,如下所示
vs_buildtools.exe --quiet --wait --norestart --nocache modify \
--installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" \
--add Microsoft.VisualStudio.Workload.VCTools \
--add Microsoft.VisualStudio.Workload.DataBuildTools \
--add Microsoft.VisualStudio.Workload.UniversalBuildTools
但是 C++ 项目的构建失败,说他们找不到 CL.EXE。
我已经用谷歌搜索了这个问题,每个遇到错误说他们找不到 CL.EXE 的人都得到了答案,只需运行vsvars.bat
并为他们解决了这个问题。 但 CL.exe物理上不存在。 我们去 C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.31.31103 并没有 bin 文件夹。
我们在整个容器中搜索了 cl.exe,并在某个 c:\windows\WinSxS\ 文件夹中看到了它,我们尝试将其添加到 PATH 环境中,但它收到了一个错误,提示它与 Windows 版本不兼容。
是否有某些原因它不会安装实际的编译器?
您还需要传递--includeRecommended
或--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64
作为参数。
MSVC v143 - VS 2022 C++ x64/x86 构建工具(最新)在VCTools 工作负载包含的组件中列为推荐,因此默认情况下不与Microsoft.VisualStudio.Workload.VCTools一起安装。
这是来自VS Installer 命令行参数参考的--add
参数的描述:
在安装或修改命令期间,此可重复参数指定要添加的一个或多个工作负载或组件 ID。 已安装工件的必需组件,但未安装推荐或可选组件。 您可以使用
--includeRecommended
和/或--includeOptional
参数全局控制其他组件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.