所以这刚刚开始:当我调试方法时,VS调试器无法识别在我正在调试的方法中声明的变量或对象。当我将鼠标悬停在它们上面时,它不会提供任何弹出式智能感知。如果我将它添加到手表中,它会说:
'FooBar' is not declared. It may be inaccessible due to its protection level.
它可以是简单的,例如:
Dim MyString String = "this is a test"
但是在dubugger中超越那条线后,它不会识别MyString。但是,如果我然后使用MyString,就像将其保存到数据库或将其输出到屏幕,它工作正常。所以它确实存在,但是调试器没有认识到它。
传递给方法的变量和对象正常工作,正如预期的那样。
我第一次看到这个,我做了一个干净的&重建,这解决了问题。但稍后进行了一些调试,它再次启动。一个干净的&重建不起作用。所以我关闭了VS,删除了解决方案.suo文件。在重新启动VS后,调试现在正常工作了一段时间。
但是现在它再次这样做,我尝试的任何东西似乎都让它重新恢复工作。
我花了很多时间在谷歌上找到了那些提出同样问题的人,但是我没有在任何地方找到任何有明确答案的帖子。
以前有人见过这个并且唠叨过吗?
编辑后:
很确定我在调试模式下这样做。但是,如果还有其他地方我应该留意,请告诉我。
答案 0 :(得分:1)
我的猜测是你正在调试一个'发布'组态。在许多其他优化中,发布配置通过删除它确实永远不会被使用的代码来优化代码。因此,例如,如果从未使用过,Dim MyString String = "this is a test"
将从解决方案中优化,但如果添加一行代码将其提交到数据库,则它将被使用,并且不会被优化。切换到'调试'配置以防止这些类型的优化。