説明します。
Omnisharp の C# 拡張機能を使用して VSCode をインストールし、コンソール アプリケーション (Microsoft.NETCore.App を使用して dll としてコンパイルされる) をデバッグしようとしています。
そのため、アプリケーション (F5) を起動すると、デバッガーがアタッチできません。これは、launch.jsonファイルに次のように記述されているためだと思います。
{
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "dotnet.exe",
"args": ["run"],
"cwd": "${workspaceRoot}",
"stopAtEntry": true
}
この場合、私が理解しているのは、dotnet.exe が実行される dll をホストしていることです。したがって、デバッグを開始するには、VSCode をアタッチ モードで再度実行し、動作させるためにプロセス名を指定する必要があります。
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach",
"processName": "dotnet"
}
ここで達成しようとしているのは、omnisharp のデバッグ アダプターを使用して実行し、プロセスにアタッチする拡張機能を作成することです。これは、「起動」+「.NET Core アタッチ」に相当します (すべて 1 回の呼び出しで、VSCode を停止してターゲット プロセスにフックする必要はありません)。
これまでのところ、拡張機能 (typescript) はこれを行っています:
vscode.commands.executeCommand("workbench.action.debug.start").then((s)=>{
vscode.window.showInformationMessage("Trying to attach...");
//attach to dotnet.exe process
},(err)=>{
vscode.window.showErrorMessage(err);
});
そこのプロセス部分へのアタッチがありません:/それで、プロセスを開始するだけでなく、それにアタッチする拡張機能の方法はありますか?
ありがとう。