2017-04-26 72 views
10

Tôi đã tạo ra một ứng dụng .NET Core mới với lệnh:Visual Studio Code: Không thể tìm thấy preLaunchTask 'build'?

dotnet new console -o test 

Khi tôi cố gắng chạy nó trong trình gỡ lỗi Visual Studio Mã, tôi nhận được:

Could not find the preLaunchTask 'build'? 

Visual Studio Mã tạo ra những file cho tôi:

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}" 
     } 
    ] 
} 

Vấn đề của tôi trông giống như this one, nhưng trong trường hợp của tôi không có sự không khớp giữa các tên trong tệp launch.json và tasks.json cho preLaunchTask để câu trả lời không áp dụng trong trường hợp này. Tôi đang chạy Visual Studio Code phiên bản 1.11.2 và .NET Core 1.1 (phiên bản mới nhất kể từ khi bài đăng này được tạo).

Tôi đã thử tương tự trên cả máy tính Windows và máy Mac có cùng sự cố. Nếu tôi thực hiện lệnh "dotnet restore" và "dotnet run", mã chạy không có vấn đề gì, nhưng tôi vẫn gặp lỗi tương tự: "Không thể tìm thấy preLaunchTask 'build'"

+0

bất kỳ giải pháp @OlavT –

+0

https://github.com/Microsoft/vscode/issues/22250 –

+0

Tôi nghĩ rằng nhiệm vụ prelaunch chỉ làm việc với phiên bản thiết lập để 2.0.0 trong tasks.json. có một cái nhìn tại các mẫu được cung cấp bởi jagadeesh. – Jon

Trả lời

10

Đối với tôi, nó hoạt động để khởi động lại Mã VS sau khi tasks.json và/hoặc launch.json tạo tệp.

Cũng lưu ý rằng bạn cần cập nhật cài đặt "program" trong launch.json bằng đường dẫn đến dll.

+0

Cảm ơn bạn đã khởi động lại Mã VS đã khiến tôi vượt qua vấn đề. Nhưng, bây giờ nó than phiền về các vấn đề như: "Kiểu xác định trước" System.Object "không được định nghĩa hoặc nhập ..." Không nên VS Mã cũng nhắc cho một "dotnet khôi phục" được thực hiện từ VS Mã? Tôi nghĩ rằng tôi đã thấy điều đó trước đây. – OlavT

+0

Nói chung, nó nên. Không chắc chắn làm thế nào ngay bây giờ VS code quyết định khi nào để hiển thị dấu nhắc đó. Dù sao, bạn luôn có thể tự làm 'dotnet restore' từ terminal trong VS Code. – Set

+0

Tôi cũng không thể nhớ rằng tôi đã phải đặt đường dẫn tới chương trình để gỡ lỗi theo cách thủ công trong tệp launch.json. Tại sao VS Code không thể thực hiện các thủ thuật đằng sau hiện trường? Nó nên biết nơi để tìm thấy thực thi mà không liên quan đến người sử dụng? – OlavT

0

Điều này đã được giải quyết trong bản gốc và sẽ có mặt trong bản phát hành tiếp theo. Mở lại Mã VS trên thư mục sẽ giúp giải quyết sự cố.

+2

Tôi có phiên bản mới nhất và vẫn gặp sự cố tương tự. Tôi có phải tạo thủ công tệp 'tasks.json' không? Một dường như không được tạo tự động. – melston

0

Thay đổi tasks.json như dưới đây.

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" 
     } 
    ] 
} 
Các vấn đề liên quan