这个问题已经有很多扎实的答案了,但是它们可以被简化。
(截至2023年6月28日,此答案有效。)
调试一个.NET Framework项目
在VS Code中调试一个.NET Framework项目就像创建一个启动配置和一个可选的构建任务一样简单。
启动配置
启动配置指定您希望附加到的应用程序,并存储在名为launch.json
的文件中,该文��存储在名为.vscode
的工作区根目录下的文件夹中。以下示例可以用作通用模板,以根据您的需求进行调整:
{
"version": "0.2.0",
"configurations": [
{
"name": "Sample Console",
"type": "clr",
"request": "launch",
"preLaunchTask": "buildSampleConsole",
"program": "pathToExecutable.exe",
"args": [],
"cwd": "pathToWorkingDirectory",
"console": "internalConsole",
"stopAtEntry": false,
"internalConsoleOptions": "openOnSessionStart"
}
]
}
要了解有关启动配置的更多信息,请访问 OmniSharp文档。
name
属性
name
属性是不言自明的,它只是为配置命名。我建议为更复杂的项目指定一个独特的名称,因为这是您在开始调试过程时识别配置的方式:
![Screenshot showing the configuration dropdown menu.](https://istack.dev59.com/meSNa.webp)
program
属性
program
属性是您希望调试的可执行文件的路径。建议使用 ${workspaceFolder}
词汇来处理工作区本身的路径:
"program": "${workspaceFolder}/src/SampleConsole/bin/Debug/net48/SampleConsole.exe"
cwd
属性
cwd
属性是指当前工作目录。这是正在调试的程序的工作目录:
"cwd": "${workspaceFolder}/src/SampleConsole"
preLaunchTask
属性
该属性仅指定在启动之前要运行的任务的名称。从技术上讲,它不是必需的,但强烈建议使用,以确保您正在调试应用程序的最新状态。
构建任务
构建任务是可选的,但存储在名为tasks.json
的文件中,位于工作区根目录下的同一.vscode
文件夹中:
{
"label": "buildSampleConsole",
"detail": "Builds the sample console.",
"command": "dotnet",
"type": "process",
"args": [
"build",
"src/SampleConsole/SampleConsole.csproj"
],
"problemMatcher": "$msCompile"
}
免责声明
我使用两个用于处理C#的扩展:
如果没有它们,我不能百分之百确定这个答案是否有效,请记住这一点。