debugging 对Visual Studio解决方案中的特定项目启用和禁用“单步执行”调试

7cjasjjr  于 2022-11-14  发布在  其他
关注(0)|答案(7)|浏览(185)

我有一个Visual Studio解决方案,其中包含四个C#项目。我想从主项目单步执行解决方案中支持项目的代码,但是当我使用“单步执行”键时,它只是跳过对另一个项目的调用。我在支持项目中设置了断点,它们被忽略了,我无法让它单步执行对该项目的任何引用。
一切都被设置为“Debug”编译,我看到Visual Studio警告我之前不会命中断点--在这种情况下它不会这样做。这就好像我的代码看起来会调试,但在运行时,有一个设置告诉Visual Studio不要单步调试该项目中的代码。我的解决方案中的所有其他项目都没有调试问题。
我选中了哪个复选框导致了此行为?

更新以明确:“仅我的代码”选项当前被禁用。而且,由于代码属于同一解决方案中的项目,我认为“仅我的代码”选项在此处不适用。我认为它只适用于我没有源代码的预编译代码,但由于我的项目中有源代码,我认为此选项没有任何作用。

d8tt03nd

d8tt03nd1#

不确定这是否是它,但“工具〉选项〉调试〉常规:启用仅我的代码”是一个可能的。(我喜欢总是保持这个未选中。)

pbgvytdp

pbgvytdp2#

在调试选项“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才能让我进入项目,但它确实做到了。我不问为什么,我只问如何,然后我就去做了...

eivgtgni

eivgtgni3#

需要检查的一件事是GAC中尚未安装支持项目程序集。打开命令提示符并运行以下命令以确保...
gacutil /l * 程序集名称 *

iecba09b

iecba09b4#

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

7z5jn7bk

7z5jn7bk5#

如果您有要逐步执行之dll的原始程式码,请执行下列动作:
1.单击将这些dll作为引用添加到其中的项目并删除它们。
1.将对应于dll的项目添加到解决方案中
1.右键单击项目-〉添加引用-〉选择新添加的项目。
现在设置断点并调试代码。您将能够单步执行代码。
出现此问题的原因是因为您的程序仍在引用旧的dll(不带源代码),因为它已作为引用添加到项目中。一旦删除该dll并添加该dll的项目(dll的源代码),Visual Studio将能够单步执行您的代码。

nafvub8i

nafvub8i6#

几种可能性:

  • 有一个复选框可以单步执行“只是我的代码”。它的目的是使你不能单步执行微软的框架代码(除非你选择取消选中该框)。
  • 您可以尝试重新编译支援程式码,以确定您两柴的程式码与您正在查看的程式码档完全相符。VS会注意到这点,如果您将中断点放在版本不相符的程式码档中,它会停用中断点。此外,请确定PDB档与DLL位于相同的目录中。
8hhllhi2

8hhllhi27#

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

相关问题