Visual studio 运行vcvarsall,但cl和其他仍然不可用
如标题所示,执行后使用PowershellVisual studio 运行vcvarsall,但cl和其他仍然不可用,visual-studio,powershell,msbuild,nmake,cl,Visual Studio,Powershell,Msbuild,Nmake,Cl,如标题所示,执行后使用Powershell PS C:\Program Files(x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build>\vcvarsall.bat amd64 然后像cl、nmake或msbuild这样的程序应该在路径上可用,但它们不可用 PS C:\Program Files(x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build>c
PS C:\Program Files(x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build>\vcvarsall.bat amd64
然后像cl
、nmake
或msbuild
这样的程序应该在路径上可用,但它们不可用
PS C:\Program Files(x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build>cl
cl:术语“cl”不能识别为cmdlet、函数、脚本文件或可操作程序的名称。检查
名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
第1行字符:1
- 氯离子
- ~~
- CategoryInfo:ObjectNotFound:(cl:String)[],CommandNotFoundException
- FullyQualifiedErrorId:CommandNotFoundException
- VS 2019社区版的“使用C++进行桌面开发”工作负载:
- MSVC V142VS 2019 C++ X64/x86构建工具(V1428)
- Windows 10 SDK(10.0.18362.0)
- 即时调试器
- C++评测工具
- C++CMake Windows工具
- 用于最新v142构建工具(x86和x64)的C++ATL
- 升压测试适配器。测试
- Google测试的测试适配器
- 现场分享
- C++地址消毒剂(实验)
- Win10 Pro N x64、20H2、19042.746
我缺少什么?Powershell在子
cmd
进程中执行批处理文件。VS环境在cmd
进程中设置,然后在进程结束且控件返回Powershell时丢弃
简单的解决方案是颠倒顺序,并在启动Powershell会话之前设置VS环境,以便PS继承它。假设使用正确的VS160COMNTOOLS
环境变量集进行常规VS安装,则可以通过在命令提示符下、通过Start/Run或从PS本身运行以下命令来完成
cmd /c ""%VS160COMNTOOLS%\..\..\VC\Auxiliary\Build\vcVarsAll.bat" amd64 && start powershell"
另请参阅和,以了解更多讨论和可能的替代方案-通常用于将环境变量从批处理文件返回到PS,特别是VS环境。这解释了很多事情,谢谢dxiv!