4

説明します。

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); 
        });   

そこのプロセス部分へのアタッチがありません:/それで、プロセスを開始するだけでなく、それにアタッチする拡張機能の方法はありますか?

ありがとう。

4

0 に答える 0