gpt4 book ai didi

terminal - VS Code - 表示属性不适用于构建任务

转载 作者:行者123 更新时间:2023-12-03 14:43:55 25 4
gpt4 key购买 nike

我的 Windows 10 机器上安装了最新的 VS Code。我目前有一个 task.json 文件设置,如下所示:

{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"windows": {
"command": "${workspaceRoot}\\build.bat"
},
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"panel": "dedicated"
}
}
]
}

我正在使用此任务来运行包含以下行的 build.bat 文件:
if not defined DevEnvDir ( call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" )

它应该只在第一次执行终端时调用“vcvars64.bat”。

问题是“面板”:“专用”选项,根据 docs , 应该在每次构建时重用相同的终端实例,因此只调用 vcvars64.bat 一次。但是每次我构建时,每次都会调用 vcvars64.bat。当我只是从常规的外部 cmd 终端构建时,或者当我从 VS Code 的内部终端(使用 cmd)构建时,在构建后续时间时一切都按预期工作。只有在尝试运行任务时才会出现此问题。有谁知道是什么问题?

最佳答案

我认为这是文档中的歧义。如果您看到 intellisense ,它明确指出面板专用于构建任务,而不是在该面板内运行的终端

我已经使用一个简单的命令验证了这一点:"(env | grep -i NAME) && export NAME=TARUN"
如果它是一个 linux/mac 环境,您可以尝试使用 2 个构建任务,保持一个事件状态以接收指令,并使用命名管道将指令发送到相同的构建任务。如以下链接所述

https://www.linuxquestions.org/questions/linux-newbie-8/%5Bbash%5D-send-command-to-another-terminal-831313/

他们使用的 bash 脚本是

#!/bin/bash

PIPE=/tmp/catpipe
trap "rm -f $PIPE" exit 1
[[ ! -p $PIPE ]] && mkfifo $PIPE

while true; do
while read line; do
case "$line" in
@exit) rm -f $PIPE && exit 0;;
@*) eval "${line#@}" ;;
* ) echo "$line" ;;
esac
done <$PIPE
done

exit 2

然后另一个 bash 可以将命令发送到该管道。但不幸的是,我在 Windows CMD 中看不到管道。

关于terminal - VS Code - 表示属性不适用于构建任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49213124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com