代码之家  ›  专栏  ›  技术社区  ›  Drake

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

  •  14
  • Drake  · 技术社区  · 14 年前

    这种情况经常发生,每天发生的次数更多 Visual Studio 2010 ,在调试过程中 立即 命令如下:

    ? 名称变量

    未声明“NamedVariable”。它 可能由于其 保护级别。

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

    我正在开发一个VB.netwindows窗体应用程序,但它也发生在VB.netwpf项目中。我在VS2008上从来没有过这种行为。

    这是一个已知的错误还是我的环境/安装有问题?你知道怎么解决这个小问题吗 烦人的 问题?

    8 回复  |  直到 13 年前
        1
  •  12
  •   WizzardsApprentice    14 年前

    我也经常这样。到目前为止我发现的唯一解决办法是:

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

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

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

    我认为这是VisualStudio的一个bug,很快就会在ServicePack中修复。

        2
  •  0
  •   AMissico    14 年前

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

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

        3
  •  0
  •   Darren    13 年前

    请注意,这往往发生在一些“With variable…”代码块中。

        4
  •  0
  •   Airn5475    13 年前

    我试过。。。

    • 清洁和维护;重建
    • 删除suo文件
    • 重新创建攻击类文件
    • 修复Visual Studio(2010 SP1)

    这些都没用。

    所涉及的两个项目都没有使用4.0.NETFramework的客户机概要文件版本。

    我无意中发现,对我有效的是,当我使用另一种方法时,这种方法叫做冒犯法。当我使用这个方法时,我可以通过watch窗口、immediate窗口等再次看到我的变量。

    不知道为什么会这样,我认为这只是一个错误,但这对我来说很有效,所以我想我会把它传下去。

        5
  •  0
  •   Mike Dole    12 年前

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

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

    迈克

        6
  •  0
  •   Ceres    11 年前

    我想我加了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' is not declared. It may be inaccessible due to its protection level, 错误。原因是测试函数中没有使用它。您需要实际使用测试函数中的某个变量,以便在调试时能够看到它。

        7
  •  0
  •   Eddy Jawed    7 年前

    对于VS 2008(可与其他版本一起使用)

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

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

    3. 在即时窗口中测试子例程

    第二个解决方案是:

    1. 关闭

    2. 重新启动电脑

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

    4. 勾选“启用本机代码调试”选项 (如果你有另一个版本的VS,请看这里 Enable Debugging )

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

    6. 重建解决方案

    神奇的噗通一声,它现在开始起作用了。

        8
  •  -2
  •   sth Alien    13 年前

    <formname>.aspx.desginer.vb (其中 <formname> 是窗体的名称)。

    在右侧的“解决方案资源管理器”选项卡上,单击第2个按钮(显示所有文件)。下到并展开它以查看子文件。应该有一个 <formname>。aspx.desginer.vb文件 . 打开 <formname>。aspx.desginer.vb文件 Protected WithEvents submitButton As Global.System.Web.UI.WebControls.Button . 为对象添加定义。