2010-09-28 114 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