c# - 符号已创建,但调试永远不会在断点处停止

标签 c# .net visual-studio debugging visual-studio-2015

如何让我的断点起作用?

我在 Debug模式下运行 C# 控制台应用程序时收到此消息:

enter image description here

The breakpoint will not currently be hit. No symbols have been loaded for this document.

以下是与此问题相关的其他规范:

Microsoft Visual Studio Professional 2015 Version 14.0.25123.00 Update 2 Microsoft .NET Framework Version 4.6.01055

Installed Version: Professional

ASP.NET and Web Tools 2015.1 (Beta8) 14.1.11106.0 ASP.NET and Web Tools 2015.1 (Beta8)

ASP.NET Web Frameworks and Tools 2012.2 4.1.41102.0 For additional information, visit http://go.microsoft.com/fwlink/?LinkID=309563

ASP.NET Web Frameworks and Tools 2013 5.2.40314.0 For additional information, visit http://www.asp.net/

Code alignment 12.1 Code alignment helps you present your code beautifully, enhancing clarity and readability.

CodeMaid 10.1.93 CodeMaid is an open source Visual Studio extension to cleanup and simplify our C#, C++, F#, VB, PHP, PowerShell, R, JSON, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript and TypeScript coding.

Common Azure Tools 1.7 Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.

ConfigurationTransform 1.3 Automatically transform app.config during build process. Once the transformation is set, it will run on other build machines without the extension.

GitHub.VisualStudio 1.0 A Visual Studio Extension that brings the GitHub Flow into Visual Studio.

JavaScript Language Service 2.0 JavaScript Language Service

JavaScript Project System 2.0 JavaScript Project System

JetBrains ReSharper Ultimate 10.0.2 Build 104.0.20151218.120627 JetBrains ReSharper Ultimate package for Microsoft Visual Studio. For more information about ReSharper Ultimate, visit http://www.jetbrains.com/resharper. Copyright © 2016 JetBrains, Inc.

Microsoft Azure Mobile Services Tools 1.4 Microsoft Azure Mobile Services Tools

Node.js Tools 1.1.31117.00 Adds support for developing and debugging Node.js apps in Visual Studio

Node.js Tools - Profiling 1.1.31117.00 Profiling support for Node.js projects.

NuGet Package Manager 3.4.3 NuGet Package Manager in Visual Studio. For more information about NuGet, visit http://docs.nuget.org/.

NuGet References 1.0 Save time by managing your NuGet references right from the Solution Explorer packages.config

PreEmptive Analytics Visualizer 1.2 Microsoft Visual Studio extension to visualize aggregated summaries from the PreEmptive Analytics product.

SQL Server Data Tools 14.0.60311.1 Microsoft SQL Server Data Tools

StyleCop 4.7 Provides source code style and consistency tools. See https://github.com/Visual-Stylecop/Visual-StyleCop for more details.

TypeScript 1.8.30.0 TypeScript tools for Visual Studio

这是我的调试设置:

enter image description here enter image description here enter image description here enter image description here enter image description here

这是我对项目的设置:

enter image description here enter image description here enter image description here

这是我使用的包:

 <package id="EntityFramework" version="6.1.3" targetFramework="net452" />
  <package id="log4net" version="2.0.3" targetFramework="net452" />
  <package id="Magnum" version="2.1.3" targetFramework="net452" />
  <package id="MassTransit" version="2.9.9" targetFramework="net452" />
  <package id="MassTransit.Log4Net" version="2.9.9" targetFramework="net452" />
  <package id="MassTransit.MSMQ" version="2.9.0" targetFramework="net452" />
  <package id="Newtonsoft.Json" version="6.0.6" targetFramework="net452" />

nuget 未涵盖的其他引用资料:

enter image description here

  1. 该解决方案由 2 个项目组成:consoleProject、classLibraryProject。
  2. consoleProject 引用 classLibraryProject。
  3. 在调试->windows->classLibraryProject 模块时,我收到消息“无法找到或打开 PDB 文件。
  4. 当为 classLibraryProject 手动构建 PDB 并将其移动到 consoleProject 的 bin\Debug 中时,我得到“符号已加载”的符号状态。 **但是,断点不被接受。 **
  5. 是的,我确定代码已被触发,因为代码的副作用是可见的。

如何让我的断点起作用?

最佳答案

我刚刚创建了新的控制台应用程序 + 类库。请确保控制台应用程序具有对类库的引用(如图片所示)

enter image description here

我写那个是因为我没有在你的屏幕上看到它。

请右击解决方案并选择“属性...” 你会看到这样的东西: enter image description here 检查您的项目的配置+平台是否相同,并且复选框“构建”都被选中。如果选中该复选框,那么在“干净构建”您的解决方案之后,您将在 colsole 应用程序的 bin\Debug 文件夹中看到类似的内容:

enter image description here

请注意类库有 2 个文件(在屏幕上突出显示):dll + pdb。在这种情况下,dll+pdb 处于同步状态,您的断点将在类库代码中工作。

如果您在构建后没有类库项目的 pdb 文件,那么您对类库的引用可能不是对 VS 项目的引用。请检查您是否正确添加了引用(如图片所示):

enter image description here

不要通过“浏览”对话框直接引用类库的 dll 文件。

您可以检查您的控制台应用程序是否在类库项目上正确引用 - 请在编辑时打开控制台应用程序 csproj 文件并查看引用:

enter image description here

如果您有 BAD 引用(在 .dll 文件上):

enter image description here

而不是通过 VS 中的上下文菜单删除该引用并添加正确的引用。

希望对你有所帮助

关于c# - 符号已创建,但调试永远不会在断点处停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36921867/

相关文章:

c++ - 从 VS 2012 中的 lambda 返回值构造 std::function 时崩溃

c++ - 如何向 visual studio 2015 添加多个属性表?

c# - 删除图像c#的圆形透明部分

c# - 温莎容器生活方式问题

c# - 无论实际响应如何,Polly 重试策略结果始终成功

c# - 如何使用 C# 生成表示一天中开始时间和结束时间之间 15 分钟时间间隔的字符串列表?

c# - c# 和 java 之间的基准测试和差异原因

c# - 如何在不指定类的情况下使用 MongoDB C# 驱动程序

c# - 执行命令和 Now()

c# - 对 CLR 中的装箱和拆箱操作进行了哪些性能改进(如果有)?