我对Visual Studio Code非常陌生。我试图调试已经通过Git克隆的应用程序。我的文件都没有被修改过。我已经下载了微软扩展程序" C#for Visual Studio Code(由OmniSharp提供支持)"。 应用程序启动,它将我带到主页(http://localhost:5000/)。但是它并没有在startup.cs中的断点处停止
当我看到应用程序运行而不是红色的子弹点时,它是一个空心的灰色断点。将鼠标悬停在它上面告诉我"源代码与原始版本不同。要允许命中此断点:添加" requireExactSource":false以启动.json并重新启动调试。"。我无法理解这一点。
我正在使用:
我也使用dotnet版本1.0.3
答案 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时进行的后续回答: