Visual Studio Code 构建任务给出“终端 shell 路径“dotnet”是一个目录”

Kin*_*han 1 linux debian .net-core visual-studio-code

仅供参考,这是我第一次在 Linux 上使用 Visual Studio Code。但我确实有很多在 Windows 上使用 Visual Studio 201x 的背景。

我已经在我的 Linux 中安装了 dotnet sdk,并将 DOTNET_ROOT 和 PATH 设置为 $HOME/dotnet。当我在 bash 上运行 dotnet 命令时完全没问题。
如果我在 Visual Studio 中运行终端并输入 dotnet,它也能正常运行。

但是,当我尝试触发构建和调试时,它会启动任务 - 构建:

> Executing task: dotnet build /usr/local/myPath/dotnet-docs-samples/appengine/flexible/HelloWorld/HelloWorld.csproj /property:GenerateFullPaths=true /consoleloggerparameters:NoSummary <

The terminal shell path "dotnet" is a directory

Terminal will be reused by tasks, press any key to close it.
Run Code Online (Sandbox Code Playgroud)

从 Visual Studio Code 在终端中运行相同的命令也可以正常工作。只是不与构建任务(CTRL + SHIFT + B =>构建)

是什么原因?我该如何解决这个问题?

Dav*_*d38 7

打开文件“.vscode/tasks.json”

在每个部分用"command": "dotnet",replace "type": "process", by"type": "shell",

保存tasks.json,然后重试构建命令(CTRL+SHIFT+B)

更新:

要在创建新项目时获得正确的类型,请进入 C# 扩展文件夹:

  • Windows:%USERPROFILE%.vscode\extensions/ms-vscode.csharp-1.21.5/dist

  • Linux/MacOs:~/.vscode/extensions/ms-vscode.csharp-1.21.5/dist

编辑文件“extension.js”并替换所有出现的

command:"dotnet",type:"process"command:"dotnet",type:"shell".

但是您必须在每次 C# 扩展更新后执行此操作。