【问题标题】:Strange results in my locals window for VS2008VS2008 在我的本地窗口中出现奇怪的结果
【发布时间】:2010-09-28 18:31:32
【问题描述】:
static void Main(string[] args)
{
    List<string> myList = new List<string>() { "A", "B" };
    string myString = "abc";
    int myInt = 42;
    System.Xml.Linq.XElement root = new System.Xml.Linq.XElement("abc");

    Console.WriteLine(myList.First()); //breakpoint on this line
    Console.WriteLine(myString);
    Console.WriteLine(myInt);
    Console.WriteLine(root);
}

当我在旧的开发环境(vs2008、XP、32 位)上运行上述代码时,我看到:

args        {string[0]}    string[]
+ myList    Count = 2      System.Collections.Generic.List<string>
myString    "abc"          string
myInt       42             int
+ root      <abc />        System.Xml.Linq.XElement

当我在新的开发环境(vs2008、Windows7、64 位)上运行它时,我看到:

args                 {Length=0}            array<System::String^> ^
+ myList             0x000000000254bb60    System::Collections::Generic::List<System::String^>^
myString             "abc"                 System::String^
myInt                42                    int
+ root               0x000000000254be60 { emptySequence=<undefined value> name=0x000000000254bd88 lastAttr=<undefined value> }    System::Xml::Linq::XElement^
+ <>g__initLocal0    0x000000000254bb60    System::Collections::Generic::List<System::String^>^

在我看来,我的新环境的 Locals 窗口正在对我说 C++。

如何更改 Locals 窗口的行为?

【问题讨论】:

    标签: c# visual-studio visual-studio-2008 locals


    【解决方案1】:

    调试器似乎将您的 PDB 解释为 C++/CLI 而不是 C# 代码。我认为会发生这种情况的唯一原因是您的安装损坏了。特别是围绕表达式评估器选择的注册表不正确。我认为此时您无法修复安装。

    此外,您可能还想删除以下注册表项

    HKCU:\Sofware\Microsoft\VisualStudio\9.0
    

    【讨论】:

    • 我会试一试,但暂时不能 - 我手头没有磁盘,也不会在工作时间删除注册表项...
    • 重命名密钥(并在启动时选择 c# dev 设置)没有解决问题。
    【解决方案2】:

    我通过取消选中“以兼容模式运行此程序”选项解决了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-18
      相关资源
      最近更新 更多