Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 编写VSCode扩展以开始调试_C#_Visual Studio Code_Omnisharp_Vscode Extensions - Fatal编程技术网

C# 编写VSCode扩展以开始调试

C# 编写VSCode扩展以开始调试,c#,visual-studio-code,omnisharp,vscode-extensions,C#,Visual Studio Code,Omnisharp,Vscode Extensions,我会解释的 我已经用Omnisharp的C#扩展安装了VSCode,我正在尝试调试一个控制台应用程序(使用Microsoft.NETCore.App将其编译为dll) 因此,当我启动应用程序(F5)时,调试器无法附加到它,我猜这是因为在我的launch.json文件中我有以下内容: { "name": ".NET Core Launch (console)", "type": "coreclr", "request": "launch", "preLaunchTa

我会解释的

我已经用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的调试适配器执行并附加到流程。这相当于“launch”+“.netcoreattach”(一次调用完成,无需停止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); 
        });   
我缺少“附加到流程”部分:/那么,除了启动流程外,是否还有其他方法可以将扩展附加到流程


谢谢。

你的问题是什么?你想知道为什么Omnisharp不适合你吗?或者您想编写一个扩展来替换它?这两个完全不同。