使用Visual Studio 2010和VB.NET进行调试:由于保护级别的原因,立即失败

使用Visual Studio 2010和VB.NET进行调试:由于保护级别的原因,立即失败,vb.net,visual-studio-2010,debugging,Vb.net,Visual Studio 2010,Debugging,在调试期间,当我使用Immediate命令时,使用Visual Studio 2010时,每天发生的次数非常频繁,如: ??命名变量 我收到以下错误: 未声明“NamedVariable”。信息技术 由于其自身的原因,可能无法访问 保护级别 在本例中,其他调试功能似乎也消失了,但我可以设置断点、单步执行、单步执行等 解决方案是停止调试,清理并重建项目,然后重试。 我正在开发一个VB.NET Windows窗体应用程序,但它也发生在VB.NET WPF项目中。我在VS 2008中从未有过这种行为

在调试期间,当我使用Immediate命令时,使用Visual Studio 2010时,每天发生的次数非常频繁,如:

??命名变量

我收到以下错误:

未声明“NamedVariable”。信息技术 由于其自身的原因,可能无法访问 保护级别

在本例中,其他调试功能似乎也消失了,但我可以设置断点、单步执行、单步执行等

解决方案是停止调试,清理并重建项目,然后重试。

我正在开发一个VB.NET Windows窗体应用程序,但它也发生在VB.NET WPF项目中。我在VS 2008中从未有过这种行为


这是一个已知的错误,还是我的环境/安装有问题?您是否知道如何解决这个小而烦人的问题?

请尝试,确保显示包含变量的代码文件,并且光标位于变量的相同范围内


尝试删除解决方案的用户选项文件(suo)。您将丢失设置,例如书签、断点和其他用户解决方案设置。

我也经常会遇到这种情况。到目前为止,我发现的唯一解决方案是:

解决方案是停止调试,清理并重建项目,然后重试

删除suo文件没有帮助。它可以发生在代码中的任何地方,而且似乎并不取决于代码本身

我认为这主要发生在我在调试期间修改了一些代码之后,或者在调试之前进行了很多小的更改和构建之后。 在某些部分构建过程中,调试信息可能会“丢失”或“未同步”


我认为这是VisualStudio的一个bug,有望很快在ServicePack中得到修复。

注意,这通常会发生在一些“带变量…”的代码块中


在这种情况下,将“With variable”替换为临时变量,问题可能会得到解决。

我在一个类中遇到过这个问题,它似乎只存在于类中的一个方法中

我试过

  • 清理与重建
  • 删除suo文件
  • 重新创建攻击性类文件
  • 修复Visual Studio(2010 SP1)
这些都没有帮助

涉及的两个项目都没有使用4.0.NET Framework的客户端概要文件版本

我偶然发现,对我起作用的是,当我采用另一种方法时,即所谓的冒犯方法。当我使用这种方法时,我可以通过观察窗口、即时窗口等再次看到我的变量


不知道为什么会发生这种情况,我想这只是一个bug,但这对我来说很有效,所以我想我会把它传下去。

这个问题与
.aspx.desginer.vb
中对象的定义有关(其中
是表单的名称)。 要更正此错误,请尝试


在右侧的“解决方案资源管理器”选项卡上,单击第二个按钮(显示所有文件)。转到并展开以查看子文件。应该有一个
.aspx.desginer.vb
。打开
.aspx.desginer.vb
,您将看到所有表单对象的定义,例如
protectedwithevents submitButton,即Global.System.Web.UI.WebControls.Button
。为对象添加定义。

我无法查看任何控件/变量。。 第一次创建一个新的配置成功了,但“今天”我遇到了同样的问题,让我疯狂了好几个小时。。 这一切归结为“调试-窗口-模块” 检查是否加载了正确的pdb文件/pdb文件位置,我的是指一个模糊的文件夹,我怀疑这是我无法观看/查看道具和变量的原因。。 我右键单击问题行并尝试将其指向正确的文件夹/pdb文件,但随后我得到: 在此文件夹中找不到匹配的符号文件

我删除了资源管理器中的所有生成文件夹,重新生成并将我的XAP文件“Debug-Windows-Modules-Load symbols”指向右侧的pdb文件

问候,


迈克

我想我加了2美分。我在调试lambda时体验到了这一点。举个简单的例子

    Dim A As String = "A"
    Dim B As String = "B"

    Dim Test = Function(C As String) As String
                   Return C & A
               End Function

    Debug.Print(Test("Test "))

Return C&a
语句上放置一个断点,可以检查B,因为它在闭包中的作用域中。但是在即时窗口中尝试此操作,您将得到
'B'未声明。由于其保护级别,可能无法访问它。
错误。原因是测试函数中没有使用它。您需要实际使用test函数中的某个地方的变量,以便在调试时能够看到它

我也有同样的问题。我试图在即时窗口中测试一个子例程,但一直出现这个错误

一种解决办法是:

适用于VS 2008(可能适用于其他版本)

  • 通过右键单击并以管理员身份运行,打开VS exe文件

  • 打开VS后,转到解决方案文件,加载它,然后右键单击项目名称并选择“属性”

  • 转到“调试”选项卡

  • 取消选中“启用visual studio宿主进程”

  • 在即时窗口中测试子程序

  • 第二个解决办法是:

  • 清理项目

  • 关闭

  • 重新启动电脑

  • 重新打开并“以管理员身份运行”

  • 转到“解决方案”窗口中的“我的项目”

  • 单击“调试”

  • 勾选“启用本机代码调试”选项 (如果您有其他版本的VS,请查看此处)

  • 在即时窗口中重新测试子例程,然后关闭并重新打开项目

  • 重复步骤5和6,但这次取消勾选“启用本机代码调试”

  • 重建解决方案

  • 然后用魔法扑通一声,不知怎么的,它现在开始了