在Visual Studio解决方案中启用和禁用某些项目的“步入”调试

我有一个Visual Studio解决方案,里面有四个C#项目。 我想从我的主项目中进入解决方案中的支持项目的代码,但是当我使用“Step into”键时,它只是跳过对其他项目的调用。 我在支持项目中设置了断点,它们被忽略了,我不能为我的生活让它进入任何对该项目的引用。

一切都设置为编译为“调试”,我已经看到Visual Studio警告我,我的断点将不会被击中 – 在这种情况下它不会这样做。 就好像我的代码会调试一样,但是在运行时,有一个设置,告诉Visual Studio不要单步执行该项目中的代码。 我的解决方案中的所有其他项目调试没有问题。

我检查了什么盒子导致这种行为?

CLARITY更新 :“Just my code”选项目前已禁用。 此外,由于代码属于同一解决方案中的项目,我不认为“仅我的代码”选项适用于此处。 我认为它只适用于我没有源代码的预编译代码,但由于我的项目中有源代码,我不认为这个选项有任何影响。

要检查的一件事是您的支持项目组件尚未安装在GAC中。 打开命令提示符并运行以下命令以确保…

gacutil / l assemblyName

不确定是不是这样,但“工具>选项>调试>常规:启用我的代码”是可能的。 (我更喜欢永远不加以控制。)

事实certificate,在调试之前,需要将程序集复制到GAC中。 在调试选项“Just my code”下,如果您没有任何用户代码,可以选择禁止错误,并且它可以抑制以下错误:

以下移动设备是在启用优化或没有调试信息的情况下构建的。 (模块名称和路径)要调试此模块,请将其构建配置更改为调试模式。

由于我在Debug配置中构建它,我搜索了该错误消息并获得了:

http://claytonj.wordpress.com/2008/01/04/the-following-module-was-built-either-with-optimizations-enabled-or-without-debug-information/

问题解决了。 我不知道为什么它需要加入GAC才能让我进入项目,但确实如此。 我不问为什么,我只问如何,然后我这样做……

您需要确保支持项目具有pdb文件,否则Visual Studio将没有必要的信息来逐步执行代码。

几种可能性:

  • 有一个复选框可以进入“只是我的代码”。 它的目的是使它不能进入​​微软的框架代码(除非你选择通过取消选中框)。

  • 您可以尝试重新编译支持代码,以确保您正在调试的代码与您正在查看的代码文件完全匹配。 VS确实关心这一点,如果你将断点放在版本不匹配的代码文件中,它将禁用断点。 此外,请确保PDB文件与DLL位于同一目录中。

如果您有要尝试进入的dll的源代码,请执行以下操作:

  1. 单击添加这些dll作为参考的项目并将其删除。
  2. 将对应于dll的项目添加到解决方案中
  3. 右键单击项目 – >添加引用 – >选择新添加的项目。

现在设置断点并调试代码..您将能够进入代码。

问题的原因是因为您的程序仍然引用旧的dll(没有源代码),因为它已作为参考添加到您的项目中。 删除该dll并添加dll的Project(dll的源代码)后,Visual Studio将能够进入您的代码。

在Visual Studio 2013中,导致此行为的一种方法是将构建配置设置为Release
把它放回Debug ,看看是否有帮助。

在此处输入图像描述