17

我对 Visual Studio Code 很陌生。我正在尝试调试通过 Git 克隆的已经存在的应用程序。我的文件都没有被修改过。我已经下载了微软扩展“C# for Visual Studio Code(由 OmniSharp 提供支持)”。应用程序启动,它把我带到主页(http://localhost:5000/)。但是它并没有停止在我在 startup.cs 中的断点处

当我在运行时查看应用程序而不是红色项目符号点时,它是一个空心灰色断点。将鼠标悬停在它上面会告诉我“源代码与原始版本不同。要允许命中此断点:将 "requireExactSource":false 添加到 launch.json 并重新启动调试。”。我无法理解这一点。

我在用着:

  • 视觉代码 1.17.1
  • 壳牌 1.7.7
  • 渲染器 58.0.3029.110
  • 节点 7.9.0
  • 架构x64

我也在使用 dotnet 1.0.3 版

4

6 回答 6

54

当我将项目从 .NET Core 2.0 升级到 2.1 时,这发生在我身上。问题是我忘记编辑launch.json将二进制路径从 更改为netcoreapp2.0netcoreapp2.1因此 VS Code 在错误的位置寻找二进制文件。编辑路径解决了这个问题。

于 2018-07-03T23:28:58.120 回答
2

这可能有几个原因,在我的情况下,这是一个简单/愚蠢的错误,我在我的主文件夹中创建了一个解决方案,然后我添加了一个新文件夹并在其中创建了一个 webapp。我配置了 launch.json 和 task.json 并且在我尝试调试修改之前它运行良好。

我的问题是我忘记将 webapp 项目添加到解决方案中,所以当解决方案尝试构建它时它失败了。

所以我的解决方案是将我的项目添加到解决方案中。

如果这不是您的情况,请尝试找出您的项目没有被构建的原因,或者为什么它指向其他目录。

于 2018-10-10T20:31:01.100 回答
1

我对 Visual Studio Code 也很陌生,我也遇到了同样的问题。幸运的是,我能够解决它。

首先,当我处于调试模式时,Visual Studio Code给了我正确的提示,也就是你提到的那个:

断点警告:源代码与原始版本不同。要允许命中此断点:将 '"requireExactSource": false' 添加到 launch.json 并重新启动调试。-

所以,为了理解,我建议你阅读这个VisualStudioCode-LaunchConfigurations

正如上面链接中的文档所述:

launch.json 文件位于工作区(项目根文件夹)或用户设置或工作区设置中的 .vscode 文件夹中。

因此,如果您编辑该文件并按照调试提示的说明进行操作,那就是:

将 '"requireExactSource": false' 添加到 launch.json 并重新开始调试。-

我的 launch.json 现在看起来像这样:

configurations": [
    {
        "name": ".NET Core Launch (web)",
        "type": "coreclr",
        "request": "launch",
        "preLaunchTask": "build",
        // If you have changed target frameworks, make sure to update the program path.
        "program": "${workspaceFolder}/DotNetCoreAngularAPp/bin/Debug/netcoreapp2.1/DotNetCoreAngularApp.dll",
        "args": [],
        "cwd": "${workspaceFolder}/DotNetCoreAngularAPp",
        "stopAtEntry": false,
        "requireExactSource": false,

最后一行显示添加的语句。现在,您应该可以调试它了。我希望这会有所帮助。

于 2018-08-15T10:09:15.210 回答
1

这是在将 razor Web 应用程序从 .Net Core 3.0 升级到 3.1 时接受的答案的后续行动:

  1. 将 .csproj 文件 /Project/PropertyGroup/TargetFramework 更改为 netcoreapp3.1
  2. 如前所述:将launch.json配置[0].program更改为workspaceFolder/bin/Debug/netcoreapp3.1/MyApp.dll
  3. 从 workspaceFolder/bin/Debug/ 中删除 netcoreapp3.0 和 netcoreapp3.1 文件夹
  4. 在终端: dotnet build
  5. F5 调试和断点被命中
于 2019-12-06T21:41:48.363 回答
0

我遇到了这个问题。删除所有bin/obj/文件夹然后重建并没有解决它。我的launch.json二进制路径program:是我的确切 DLL。

修复它的是修改我的.cs源文件并重建。有些东西已经过时了,可能是.cs文件的 vscode 自动保存,或者dotnet build在其他地方缓存了一些东西。

于 2021-10-12T20:38:43.683 回答
0

我也面临同样的问题,只需执行这两个步骤即可解决我的问题。在“建造”菜单中

  1. “清洁解决方案”
  2. “重建解决方案”
于 2022-01-20T11:19:29.543 回答