2010-09-28 167 views
3
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位)运行上面的代码,我看到:奇怪的结果VS2008

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,Windows 7中,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^>^ 

在我看来,我的新环境中的本地窗口是讲C++给我。

如何更改本地窗口行为?

回答

0

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

3

看起来调试器正在将您的PDB解释为C++/CLI而不是C#代码。我认为会发生的唯一原因是如果您的安装被破坏。特别是表达式评估者选择的注册表不正确。我认为在这一点上你坚持修复安装。

另外,你可能会想删除以下注册表项

HKCU:\Sofware\Microsoft\VisualStudio\9.0 
+0

我会给它一个镜头,但不能一会儿 - 我没有手中的磁盘,并且不会在工作时间删除注册表项... – 2010-09-28 19:44:23

+0

@David B,而不是删除注册表项你也可以重新命名它,如果它重命名失败。 – JaredPar 2010-09-28 20:00:02

+0

重命名密钥(并在启动时选取c#dev设置)并未解决问题。 – 2010-09-28 20:10:58