Visual Studio代码断点警告:源代码与原版不同
Visual Studio Code Breakpoint warning: The source code is different from the original version
我对 Visual Studio 代码还很陌生。我正在尝试调试我通过 Git 克隆的已经存在的应用程序。 None 我的文件已修改。我已经下载了微软扩展 "C# for Visual Studio Code (powered by OmniSharp)"。
应用程序启动并将我带到主页 (http://localhost:5000/)。但是它并没有在 startup.cs
内的断点处停止
当我查看应用程序时,它的 运行 不是红色的项目符号点,而是空心的灰色断点。将鼠标悬停在它上面会告诉我 "The source code is different from the original version. To allow this breakpoint to be hit: Add "requireExactSource":false 到 launch.json 并重新启动调试。"。这个我看不懂。
我正在使用:
- 视觉代码 1.17.1
- Shell 1.7.7
- 渲染器 58.0.3029.110
- 节点 7.9.0
- 架构 x64
我也在使用 dotnet 版本 1.0.3
当我将我的项目从 .NET Core 2.0 升级到 2.1 时,这发生在我身上。问题是我忘记编辑 launch.json
以将二进制路径从 netcoreapp2.0
更改为 netcoreapp2.1
,因此 VS Code 在错误的位置查找二进制文件。编辑路径解决了问题。
编辑:我建议 VS Code 团队采用基于变量的方法来完全解决这个问题,比如在路径中使用 $TargetRuntime
之类的东西,而不是像 netcoreapp2.1
这样硬编码的东西 [= =15=]
我也是 Visual Studio 代码的新手,我遇到了同样的问题。幸运的是,我能够解决它。
首先,当我处于调试模式时 Visual Studio 代码 给了我正确的提示,也就是你提到的提示:
Breakpoint warning: The source code is different from the original version.
To allow this breakpoint to be hit: Add '"requireExactSource": false' to launch.json and restart debugging. -
所以,为了理解,我建议你阅读这篇文章VisualStudioCode-LaunchConfigurations
如上述 link 中的文档所述:
The launch.json file located in a .vscode folder in your workspace (project root folder) or in your user settings or workspace settings.
因此,如果您编辑该文件并按照调试提示的说明进行操作,那就是:
Add '"requireExactSource": false' to launch.json and restart debugging. -
我的 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,
最后一行显示添加的语句。现在,您应该可以调试它了。
希望对您有所帮助。
发生这种情况的原因有多种,在我的例子中,这是一个 simple/dumb 错误,我在主文件夹中创建了一个解决方案,然后添加了一个新文件夹并在其中创建了一个 webapp。我配置了 launch.json 和 task.json,在我尝试调试修改之前它工作正常。
我的问题是我忘记将 webapp 项目添加到解决方案中,因此在解决方案尝试构建它时失败了。
所以我的解决方案是将我的项目添加到解决方案中。
如果这不是你的情况,请尝试找出为什么你的项目没有被构建,或者为什么它指向其他目录。
这是在将 razor web 应用程序从 .Net Core 3.0 升级到 3.1 时接受的答案的跟进:
- 将 .csproj 文件 /Project/PropertyGroup/TargetFramework 更改为 netcoreapp3.1
- 如前所述:将 launch.json configurations[0].program 更改为
workspaceFolder/bin/Debug/netcoreapp3.1/MyApp.dll
- 从 workspaceFolder/bin/Debug/
中删除 netcoreapp3.0 和 netcoreapp3.1 文件夹
- 在终端中:dotnet build
- F5 调试并命中断点
我遇到了这个问题。删除所有 bin/
和 obj/
文件夹然后重建并没有解决它。我的 launch.json
二进制路径 program:
是我的确切 DLL。
修复的是修改我的 .cs
源文件并重建。 有些东西已经过时了,可能 vscode [=14] 的自动保存=] 文件,或者 dotnet build
在其他地方缓存了一些东西。
我也遇到了同样的问题,通过这两个步骤就解决了我的问题。
在菜单“构建”中
- “清洁解决方案”
- “重建解决方案”
我遇到了同样的问题。检查您在 .vscode/launch.json 中的配置并确定“preLaunchTask”。然后打开 .vscode/tasks.json 并确保该任务存在并且其在“args”中传递的工作区目标指向您的项目文件。就我而言,我有两个 Web 项目,但只有一个构建任务。
我对 Visual Studio 代码还很陌生。我正在尝试调试我通过 Git 克隆的已经存在的应用程序。 None 我的文件已修改。我已经下载了微软扩展 "C# for Visual Studio Code (powered by OmniSharp)"。 应用程序启动并将我带到主页 (http://localhost:5000/)。但是它并没有在 startup.cs
内的断点处停止当我查看应用程序时,它的 运行 不是红色的项目符号点,而是空心的灰色断点。将鼠标悬停在它上面会告诉我 "The source code is different from the original version. To allow this breakpoint to be hit: Add "requireExactSource":false 到 launch.json 并重新启动调试。"。这个我看不懂。
我正在使用:
- 视觉代码 1.17.1
- Shell 1.7.7
- 渲染器 58.0.3029.110
- 节点 7.9.0
- 架构 x64
我也在使用 dotnet 版本 1.0.3
当我将我的项目从 .NET Core 2.0 升级到 2.1 时,这发生在我身上。问题是我忘记编辑 launch.json
以将二进制路径从 netcoreapp2.0
更改为 netcoreapp2.1
,因此 VS Code 在错误的位置查找二进制文件。编辑路径解决了问题。
编辑:我建议 VS Code 团队采用基于变量的方法来完全解决这个问题,比如在路径中使用 $TargetRuntime
之类的东西,而不是像 netcoreapp2.1
这样硬编码的东西 [= =15=]
我也是 Visual Studio 代码的新手,我遇到了同样的问题。幸运的是,我能够解决它。
首先,当我处于调试模式时 Visual Studio 代码 给了我正确的提示,也就是你提到的提示:
Breakpoint warning: The source code is different from the original version. To allow this breakpoint to be hit: Add '"requireExactSource": false' to launch.json and restart debugging. -
所以,为了理解,我建议你阅读这篇文章VisualStudioCode-LaunchConfigurations
如上述 link 中的文档所述:
The launch.json file located in a .vscode folder in your workspace (project root folder) or in your user settings or workspace settings.
因此,如果您编辑该文件并按照调试提示的说明进行操作,那就是:
Add '"requireExactSource": false' to launch.json and restart debugging. -
我的 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,
最后一行显示添加的语句。现在,您应该可以调试它了。 希望对您有所帮助。
发生这种情况的原因有多种,在我的例子中,这是一个 simple/dumb 错误,我在主文件夹中创建了一个解决方案,然后添加了一个新文件夹并在其中创建了一个 webapp。我配置了 launch.json 和 task.json,在我尝试调试修改之前它工作正常。
我的问题是我忘记将 webapp 项目添加到解决方案中,因此在解决方案尝试构建它时失败了。
所以我的解决方案是将我的项目添加到解决方案中。
如果这不是你的情况,请尝试找出为什么你的项目没有被构建,或者为什么它指向其他目录。
这是在将 razor web 应用程序从 .Net Core 3.0 升级到 3.1 时接受的答案的跟进:
- 将 .csproj 文件 /Project/PropertyGroup/TargetFramework 更改为 netcoreapp3.1
- 如前所述:将 launch.json configurations[0].program 更改为 workspaceFolder/bin/Debug/netcoreapp3.1/MyApp.dll
- 从 workspaceFolder/bin/Debug/ 中删除 netcoreapp3.0 和 netcoreapp3.1 文件夹
- 在终端中:dotnet build
- F5 调试并命中断点
我遇到了这个问题。删除所有 bin/
和 obj/
文件夹然后重建并没有解决它。我的 launch.json
二进制路径 program:
是我的确切 DLL。
修复的是修改我的 .cs
源文件并重建。 有些东西已经过时了,可能 vscode [=14] 的自动保存=] 文件,或者 dotnet build
在其他地方缓存了一些东西。
我也遇到了同样的问题,通过这两个步骤就解决了我的问题。 在菜单“构建”中
- “清洁解决方案”
- “重建解决方案”
我遇到了同样的问题。检查您在 .vscode/launch.json 中的配置并确定“preLaunchTask”。然后打开 .vscode/tasks.json 并确保该任务存在并且其在“args”中传递的工作区目标指向您的项目文件。就我而言,我有两个 Web 项目,但只有一个构建任务。