![](/img/trans.png)
[英]Visual Studio Code debugger for ASP.NET Core 2 don't work with different port
[英]Visual Studio Code .NET Core debugger not hitting a breakpoint
我在尝试在 Visual Studio Code 中调试用 .NET Core 编写的应用程序时遇到问题。 这是设置:我使用的是运行 Debian 9(具有默认 GUI)的虚拟机。 我已经安装了 .Net Core SDK 2.1 和 Visual Studio Code 1.30.0。 安装了 C# 1.17.1 的扩展。 我创建了一个简单的项目:
class MyProgram
{
static void Main(string[] args)
{
Console.WriteLine("Hello You Angel!");
ProcessStartInfo startInfo = new ProcessStartInfo() { FileName = "/bin/bash", Arguments = "-c nautilus /home/", };
Process proc = new Process() { StartInfo = startInfo, };
proc.Start();
}
}
如果我运行该程序,则执行并生成正确的输出。 在调试窗口中,我按下了齿轮按钮来编辑launch.jason
文件
这是它的样子:
{
"version": "0.2.1",
"configurations": [
{
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
"program": "${workspaceFolder}/HelloWorld/bin/Debug/netcoreapp2.1/HelloWorld.dll",
"args": [],
"cwd": "${workspaceFolder}/HelloWorld",
// For more information about the 'console' field, see https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md#console-terminal-window
"console": "integratedTerminal",
"stopAtEntry": false,
"internalConsoleOptions": "openOnSessionStart",
"externalConsole": false,
},
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach",
"processId": "${command:pickProcess}"
}
,]
}
当我点击绿色三角形按钮时,断点没有命中。 实际上,我认为我根本没有执行任何代码。 让这个应用程序进入调试模式有什么我遗漏的吗?
请帮忙!
我在不同的设置上遇到了同样的问题。 使用 VSCode 和 dotnet sdk 2.2 运行 Windows 10。
我在浏览 gissues这里找到了一些答案。
我还注意到,当被要求将调试器附加到进程时,请确保我选择了正确的“c:/projectdir/bin/debug/projectname.dll”。
之后 VSCode 成功命中我的断点。
我希望这有帮助。
1)在终端中转到您的项目并编写
dotnet restore
dotnet clean
dotnet build
2) 检查您的配置 (launch.json) 中“program”和“cwd”的路径。
如果有人在将类库项目“转换”为控制台应用程序时遇到此问题,这里是我发现的症状和原因:
当我真正想要一个控制台应用程序时,我错误地创建了一个类库。 我以前在 .NET Framework 项目中犯过同样的错误,所以我想我会转换它,没问题。 所以我改变了输出类型并给了它一个启动对象。 该项目运行但未命中断点。
我花了一段时间才找出原因; 这是因为我将原始类库项目创建为 .NET Standard 项目。 当我创建一个新项目(相同的代码)作为 .NET Core(而不是 .NET 标准)时,断点被击中。
非常有趣的是,您实际上可以将 .NET 标准类库项目切换到控制台应用程序,因为您似乎无法通过 UI 创建该设置。
我将我的项目文件从 netcoreapp3.0 切换到 netcoreapp2.2,一切都很好,但我的断点没有命中。 删除 bin 和 obj 目录后,出现找不到可执行 dll 的错误。 结果我还必须更改我的 launch.json 文件。
在 .vscode/launch.json 确保检查您的程序文件夹和可执行文件是否存在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.