我使用以下命令创建了一个新的.NET Core应用程序:
dotnet new console -o test
当我尝试在Visual Studio Code调试器中运行它时,我得到:
Could not find the preLaunchTask 'build'?
Visual Studio Code为我生成了这些文件:
tasks.json:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "0.1.0",
"command": "dotnet",
"isShellCommand": true,
"args": [],
"tasks": [
{
"taskName": "build",
"args": [ ],
"isBuildCommand": true,
"showOutput": "silent",
"problemMatcher": "$msCompile"
}
]
}
和
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceRoot}/bin/Debug/<target-framework>/<project-name.dll>",
"args": [],
"cwd": "${workspaceRoot}",
"stopAtEntry": false,
"console": "internalConsole"
},
{
"name": ".NET Core Launch (web)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceRoot}/bin/Debug/<target-framework>/<project-name.dll>",
"args": [],
"cwd": "${workspaceRoot}",
"stopAtEntry": false,
"launchBrowser": {
"enabled": true,
"args": "${auto-detect-url}",
"windows": {
"command": "cmd.exe",
"args": "/C start ${auto-detect-url}"
},
"osx": {
"command": "open"
},
"linux": {
"command": "xdg-open"
}
},
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"sourceFileMap": {
"/Views": "${workspaceRoot}/Views"
}
},
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach",
"processId": "${command:pickProcess}"
}
]
}
我的问题看起来与this one类似,但在我的情况下,launchLaunchTask中的名称和tasks.json中的名称之间没有不匹配,因此在这种情况下答案不适用。我正在运行Visual Studio Code版本1.11.2和.NET Core 1.1(截至创建此帖子时的最新版本)。
我在Windows机器和Mac上都尝试过同样的问题。如果我执行命令“dotnet restore”和“dotnet run”,代码运行没有问题,但我仍然得到相同的错误:“找不到preLaunchTask'构建'”
答案 0 :(得分:16)
对我来说,它可以在创建tasks.json
和/或launch.json
文件后重启VS代码。
另请注意,您需要使用dll的路径更新"program"
中的launch.json
个设置。
答案 1 :(得分:2)
如下所示更改tasks.json。
tasks.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"command": "",
"args": [],
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "shell",
"args": [
"build"
],
"options": {
"cwd": "${workspaceRoot}"
},
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared"
},
"problemMatcher": "$msCompile"
}
]
}
答案 2 :(得分:0)
这已在master中得到解决,并将在下一个版本中提供。重新打开该文件夹上的VS代码应该有助于解决问题。
答案 3 :(得分:0)
请注意-
如果/**
* Function comment
*
*/
void My Function() {}
与例如应用程序文件夹workspaceFolder
将不会创建,并且会出现上述所有错误。打开项目后,我创建了一个子文件夹,并得到了以上所有错误-从正确的文件夹中运行调试后,所有错误均已修复-这可以解释重新启动VS代码的效果。
答案 4 :(得分:0)
此错误的另一个原因可能是,使用的启动配置是在 my_project.code-workspace 文件中定义的(而不是在 launch.json 文件中)。
在这种情况下,不使用 tasks.json,但必须在 my_project.code-workspace 文件中定义任务。
这可能是一个“功能”,但它表现为一个错误,因为:
while (dr.Read())
{
var tmpUser = new User();
tmpUser.GroupName = dr["groupName"] != DBNull.Value ? dr["groupName"].ToString() : "";
tmpUser.CompanyUdidDescription = dr["companyUDIDDescription"] != DBNull.Value ?
dr["companyUDIDDescription"].ToString() : "";
tmpUsers.Add(tmpUser);
}
return tmpUsers;
然后打开或提供创建文件 ./.vscode/tasks.json如果使用调试配置启动调试会话:my_debug_config (workspace),则仅使用在 my_project.code-workspace 文件中定义的任务。
但是在仍然打开相同的工作区的同时,选择调试配置:在 launch.json 文件中定义的 dir_debug_config (my_dir),然后将使用 tasks.json 文件中的任务。