OSXでC#スクリプトをデバッグするようにVisual Studio Codeを構成するには、以下の記事に記載されているすべての手順を実行しました。
Visual Studio Codeを使用したOSXでのC#のデバッグ
サンプルC#スクリプトをデバッグしようとすると、Visual Studio Codeが次のエラーを報告しました。
PreLaunchタスク 'build'が見つかりませんでした
その結果、スクリプトで定義された変数を検査できませんでした。
これはlaunch.jsonファイルのコピーです:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch console application",
"type": "mono",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceRoot}/Program.exe",
"args": [],
"cwd": "${workspaceRoot}",
"stopAtEntry": false
}
]
}
これはtasks.jsonファイルのコピーです:
{
"version": "0.1.0",
"command": "mcs",
"args": [
"-debug",
"Program.cs"
],
"showOutput": "silent",
"taskSelector": "/t:",
"tasks": [
{
"taskName": "exe",
"isBuildCommand": true,
"problemMatcher": "$msCompile"
}
]
}
どうすれば解決できますか?
Visual Studio Codeを使用して解決できます。
エラーメッセージが表示されたら、以下の手順をクリックしてください
VSCodeは次のようなファイルを作成します。
{
// See https://go.Microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet build",
"type": "Shell",
"group": "build",
"presentation": {
"reveal": "silent"
},
"problemMatcher": "$msCompile"
}
]
}
終わりました。 VSCodeは実行前にプロジェクトをビルドします。
このエラーは、Visual Studio Codeがtasks.jsonでtaskName
値を'build'
に設定したタスクを見つけられないために発生します。
launch.jsonファイルのpreLaunchTask
プロパティは、スクリプトを起動する前に実行する必要があるタスクを定義します。質問から、スクリプトを起動する前にタスクbuild
を実行するようにVisual Studio Codeが構成されています。
preLaunchTask: 'build'
ただし、tasks.jsonファイルには'build'
という名前のタスクはありません。
これを修正するには、preLaunchTask
プロパティの値を'exe'
に変更する必要があります。これは、tasks.jsonで定義されたビルドタスクです。ファイル。
これはシナリオごとに異なるようです。
私にとって、@ Jeferson Tenorioが機能したことですが、さらにいくつかの手順が必要だったので、それらを追加しましょう。
launch.json
ファイルに移動すると、構成/プログラムの下に以下があります。
${workspaceFolder}/bin/Debug/<insert-target-framework-here>/<insert-project-name-here>.dll
<insert-target-framework-here>
と<insert-project-name-here>
をターゲットフレームワークに置き換えるだけです。私の場合はnetcoreapp2.0
になり、プロジェクト名になります(何も変更していない場合、プロジェクト名はプロジェクトを作成したフォルダ)、次のようになります。
"program": "${workspaceFolder}/bin/Debug/netcoreapp2.0/MyProject.dll"
これがお役に立てば幸いです。
Linuxでは、ビルドコマンドを機能させるために、tasks.jsonファイルを次のように変更する必要がありました。
{
// See https://go.Microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet build",
"type": "Shell",
"args": [
// Ask dotnet build to generate full paths for file names.
"/property:GenerateFullPaths=true",
// Do not generate summary otherwise it leads to duplicate errors in Problems panel
"/consoleloggerparameters:NoSummary"
],
"group": "build",
"presentation": {
"reveal": "silent"
},
"problemMatcher": "$msCompile"
}
]
}
に:
{
// See https://go.Microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "Shell",
"args": [
"build"
// Ask dotnet build to generate full paths for file names.
"/property:GenerateFullPaths=true",
// Do not generate summary otherwise it leads to duplicate errors in Problems panel
"/consoleloggerparameters:NoSummary"
],
"group": "build",
"presentation": {
"reveal": "silent"
},
"problemMatcher": "$msCompile"
}
]
}
これは、LinuxがVSCによって生成されたタスクを、「build」のパラメーターを指定した「dotnet」ではなく「dotnet build」コマンドを実行するものとして扱うためです。変更せずに、終了コード127で「dotnet build:command not found」を受け取ります。