Visual Studio代码断点警告:源代码与原始版本

时间:2017-10-11 16:25:17

标签: visual-studio-code breakpoints omnisharp

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

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

我正在使用:

  • Visual Code 1.17.1
  • Shell 1.7.7
  • 渲染器58.0.3029.110
  • node 7.9.0
  • 架构 x64

我也使用dotnet版本1.0.3

4 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:2)

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

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

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

如果不是这种情况,请尝试弄清楚为什么不构建您的项目,或者为什么它指向其他目录。

答案 2 :(得分:1)

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

首先,当我处于调试模式时, Visual Studio代码给了我正确的提示,这就是您提到的提示:

  

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

因此,为了理解,我建议您阅读VisualStudioCode-LaunchConfigurations

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

  

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

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

  

将'“ 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,

最后一行显示添加的语句。现在,您应该可以对其进行调试了。 希望有帮助。

答案 3 :(得分:0)

这是在将剃刀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 /
  4. 中删除netcoreapp3.0和netcoreapp3.1文件夹
  5. 在终端中:dotnet build
  6. 用于调试和断点的F5键