在我正在处理的团队项目中,IdeasController.cs
如果解决方案中存在另一个同名文件,则在文件中设置断点(例如)将导致调试器行为不稳定。我已经在几个开发人员的工作站上重现了这个问题。
例子
IdeasController.cs
我在我们的 Web API 中设置了一个断点:
另一个名为的文件IdeasController.cs
存在于我们单独的 MVC 4 Web 项目中。在下面的屏幕截图中,调试器显示了Api->IdeasController
源代码,但高亮行与Web->IdeasController
. 断点被复制,其中一个位于注释块的中间。
Breakpoint 窗口同时显示两个文件中的断点:
在某些工作站上,调试器会逐步通过正确的行(不管行突出显示);在其他人身上,它会愉快地穿过不相关的行(包括注释和空格)。我猜这取决于它选择显示的源文件。
我试过的
我搜索了互联网。*.pdb
当调试文件( )、源文件和编译代码不匹配时,似乎会出现这种问题。有很多可能的原因:重复的文件名(可能会混淆调试器[5])、过时的项目构建文件、无效的解决方案缓存或不正确的构建配置。
这些是我找到并尝试过的解决方案:
- 检查了我的构建配置。
- 确保项目不是在发布模式下构建的。
- 确保我们没有启用代码优化。
- 确保项目的调试模块已正确加载。(开始调试项目并检查
Debug
>Windows
>Modules
。两个程序集都已列出,未优化,并且符号状态为“已加载符号”。)
- 重置调试元数据和 Visual Studio 缓存。
这些都没有任何效果。我可以重命名其中一个文件(不重命名类)以临时解决该问题,但这远非理想。
我现在在哪里
我最新的谷歌搜索的第 14 页。建议将不胜感激。:)