如何在 MSYS2 上的 bash shell 中输入 Visual Studio 开发人员提示符。目标是获得环境设置,以便 Visual Studio 安装的所有构建工具都可以在命令行上使用。
目标也是不要出现
cmd.exe
提示,因为我会使用所有 bash 别名和函数。
我们无法获取
.bat
文件,因为源代码将由 bash
完成,并且需要 bash 代码,而不是批处理代码。 cmd
一侧的正确命令是 call
,但 call
是内部命令,在 bash
中不可用。
诀窍是用
cmd
生成 //c
(MSYS2 将其转换为 /c
),然后给出路径和参数,这作为别名看起来非常复杂:
export VS_DEFAULT_VERSION="2022"
alias vsdevcmd='{ f() { cmd //k "$(cygpath -wF 38)\\Microsoft Visual Studio\\${1:-$VS_DEFAULT_VERSION}\\Community\\Common7\\Tools\\VsDevCmd.bat" -startdir=none -arch=x64 -host_arch=x64 \&\& bash; }; }; f'
它允许通过提供年份来生成任何版本的开发人员提示,例如
vsdevcmd 2022
。
它假定架构 x64 和社区版本。
由于退出
cmd
意味着再次失去环境,我们只需选择通过将bash
传递给cmd
来再次在&& bash
中打开cmd
。
由于您在
vsdevcmd
中运行 bash
,其 PATH
环境将传递到 cmd
,这允许您再次返回到 bash
,但这次所有环境都是为 Visual Studio 设置的。
此解决方案已在 Windows SDK 的 Git 中进行了测试 (
winget install Git.SDK
)。