如何像开发者命令提示符一样配置VS Code shell?
How to configure the VS Code shell like the developer command prompt?
我正在尝试设置一个任务来在 Visual Studio 代码中编译我的 C++ 代码。我无法让它工作...但是当我打开开发人员命令提示符并将其粘贴进去时,它吐出的命令工作得很好。
我已经设法将这个问题缩小到没有在 VS Code 使用的 shell 中设置正确的环境变量(如 运行 echo %INCLUDE%
刚刚返回所证明的那样%INCLUDE%
).
现在我不完全知道开发人员命令提示符与 VS Code 使用的普通 Powershell 终端有何不同,所以我不知道如何配置它(除了 运行 vcvarsall.bat
), 但即使我可以,每次我在 VS Code 中打开一个新终端时,环境变量都会再次重置。
本质上,我能看到的解决这个问题的方法是:
运行 vcvarsall.bat
在每个构建任务之前。
不幸的是,我不够熟悉,不知道如何使用 tasks.json
配置文件连续执行多个命令。
配置VS Code使用的shell默认类似于Developer Command Prompt
不幸的是,我什至不知道从哪里开始。我可以轻松地将用于 cmd 或 PowerShell 的 shell 设置为 Developer Command Prompt,但我也找不到在哪里配置其环境变量,也不知道 [=13= 的全部效果] 所以我知道要设置哪些变量。
如果有更简单的方法来实现我所追求的目标,我会很高兴听到。尽管如此,归结为我想知道如何以一种允许我从 IDE.
内部编译代码的方式配置 VS Code
经过一番摸索,我找到了答案。我的设置(在 tasks.json
中)现在如下:
"command": "&",
"args": [
"'D:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars32.bat';",
"cl.exe",
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}\${fileBasenameNoExtension}.exe",
"${file}"
]
与&
你可以执行包含空格的路径。这导致我的 vcvars32.bat
(其他人的位置可能不同)设置正确的变量而无需手动输入。 ;
允许您在 PowerShell 中一个接一个地执行多个命令。
对我不起作用,但有助于找到有效的解决方案。
使用任务类型 "process"
然后将命令设置为 开发人员命令提示符 调用的批处理文件直接启动 windows 命令提示符(而不是通过 powershell 调用它)。
然后第一个参数是 "&"
,这意味着编译器将在开发人员命令提示上下文中调用,而不是仅仅作为参数传递给批处理文件。
>{
"version": "2.0.0",
"tasks": [
{
"type": "process",
"label": "cl.exe build active file",
"command": "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars32.bat",
"args": [
"&"
"cl.exe",
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}\${fileBasenameNoExtension}.exe",
"${file}"
],
"problemMatcher": ["$msCompile"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
您可以通过以下方式在 tasks.json
中创建新的任务类型:
{
"version": "2.0.0",
"windows": {
"options": {
"shell": {
"executable": "cmd.exe",
"args": [
"/C",
// The path to VsDevCmd.bat depends on the version of Visual Studio you have installed.
"\"C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/Tools/VsDevCmd.bat\"",
"&&"
]
}
}
},
"tasks": [
{
"type": "shell",
"label": "cl.exe build active file",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}\${fileBasenameNoExtension}.exe",
"${file}"
],
"problemMatcher": ["$msCompile"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
不要忘记将任务类型更改为 "shell"
。
请注意,构建将在几秒延迟后开始。
看这里:https://code.visualstudio.com/docs/cpp/config-msvc#_run-vs-code-outside-the-developer-command-prompt
我正在尝试设置一个任务来在 Visual Studio 代码中编译我的 C++ 代码。我无法让它工作...但是当我打开开发人员命令提示符并将其粘贴进去时,它吐出的命令工作得很好。
我已经设法将这个问题缩小到没有在 VS Code 使用的 shell 中设置正确的环境变量(如 运行 echo %INCLUDE%
刚刚返回所证明的那样%INCLUDE%
).
现在我不完全知道开发人员命令提示符与 VS Code 使用的普通 Powershell 终端有何不同,所以我不知道如何配置它(除了 运行 vcvarsall.bat
), 但即使我可以,每次我在 VS Code 中打开一个新终端时,环境变量都会再次重置。
本质上,我能看到的解决这个问题的方法是:
运行
vcvarsall.bat
在每个构建任务之前。不幸的是,我不够熟悉,不知道如何使用
tasks.json
配置文件连续执行多个命令。配置VS Code使用的shell默认类似于Developer Command Prompt
不幸的是,我什至不知道从哪里开始。我可以轻松地将用于 cmd 或 PowerShell 的 shell 设置为 Developer Command Prompt,但我也找不到在哪里配置其环境变量,也不知道 [=13= 的全部效果] 所以我知道要设置哪些变量。
如果有更简单的方法来实现我所追求的目标,我会很高兴听到。尽管如此,归结为我想知道如何以一种允许我从 IDE.
内部编译代码的方式配置 VS Code经过一番摸索,我找到了答案。我的设置(在 tasks.json
中)现在如下:
"command": "&",
"args": [
"'D:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars32.bat';",
"cl.exe",
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}\${fileBasenameNoExtension}.exe",
"${file}"
]
与&
你可以执行包含空格的路径。这导致我的 vcvars32.bat
(其他人的位置可能不同)设置正确的变量而无需手动输入。 ;
允许您在 PowerShell 中一个接一个地执行多个命令。
使用任务类型 "process"
然后将命令设置为 开发人员命令提示符 调用的批处理文件直接启动 windows 命令提示符(而不是通过 powershell 调用它)。
然后第一个参数是 "&"
,这意味着编译器将在开发人员命令提示上下文中调用,而不是仅仅作为参数传递给批处理文件。
>{
"version": "2.0.0",
"tasks": [
{
"type": "process",
"label": "cl.exe build active file",
"command": "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars32.bat",
"args": [
"&"
"cl.exe",
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}\${fileBasenameNoExtension}.exe",
"${file}"
],
"problemMatcher": ["$msCompile"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
您可以通过以下方式在 tasks.json
中创建新的任务类型:
{
"version": "2.0.0",
"windows": {
"options": {
"shell": {
"executable": "cmd.exe",
"args": [
"/C",
// The path to VsDevCmd.bat depends on the version of Visual Studio you have installed.
"\"C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/Tools/VsDevCmd.bat\"",
"&&"
]
}
}
},
"tasks": [
{
"type": "shell",
"label": "cl.exe build active file",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}\${fileBasenameNoExtension}.exe",
"${file}"
],
"problemMatcher": ["$msCompile"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
不要忘记将任务类型更改为 "shell"
。
请注意,构建将在几秒延迟后开始。
看这里:https://code.visualstudio.com/docs/cpp/config-msvc#_run-vs-code-outside-the-developer-command-prompt