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

Sql*_*yan 21 c# debugging step-into visual-studio

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

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

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

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

Bri*_*ian 14

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


Sql*_*yan 13

事实证明,在调试之前,需要将程序集复制到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才能让我进入项目,但确实如此.我不问为什么,我只是问怎么样,然后我这样做......


Saa*_*per 7

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

gacutil/l assemblyName


Jas*_*own 5

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


小智 5

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

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

现在设置断点并调试代码。您将能够单步执行代码。

出现此问题的原因是您的程序仍在引用旧的 dll(没有源代码),因为它已作为引用添加到您的项目中。一旦您删除该 dll 并添加该 dll 的项目(dll 的源代码),Visual studio 将能够单步执行您的代码。