2016-11-25 28 views
0

我的Visual Studio 2015年社區爲什麼我在Visual Studio中不斷髮現'無法找到或打開PDB文件'消息以及如何解決?

當我最初運行我的代碼,它會給我許多錯誤說「模塊進行了優化和調試器選項‘僅我的代碼’已啓用」。 我否則將不會得到任何輸出。

我想什麼:

  • 點擊「工具 - 選項-Debugging - 常規」,然後取消勾選框「啓用僅我的代碼」

當我做這個和清理我的解決方案,然後重新運行它,錯誤走了,但被新的錯誤取代:

「無法找到或打開PDB文件」,並在底部說

我不知道這是爲什麼發生的或如何解決它「加載符號」。 這是我曾嘗試:

  • 點擊「工具 - 選項 - 調試 - 符號」,然後檢查Microsoft符號服務器的框。

  • 單擊'工具 - 選項 - 調試 - 符號'「,然後取消選中Microsoft Symbol Servers的複選框。

  • 點擊「工具 - 選項 - 調試 - 輸出窗口」,然後關閉「模塊加載消息」(**,但我不喜歡這個,因爲它似乎是避免了問題,而不是修復它。程序運行,但沒有產生輸出)

  • 關閉程序並重新啓動

這裏是我的代碼,以供參考:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace practice 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.Write("Enter comma separated numbers: "); 
      var input = Console.ReadLine(); 

      var numbers = input.Split(','); 

      // Assume the first number is the max 
      var max = Convert.ToInt32(numbers[0]); 

      foreach (var str in numbers) 
      { 
       var number = Convert.ToInt32(str); 
       if (number > max) 
        max = number; 
      } 

      Console.WriteLine("Max is " + max); 

     }   
    } 
} 

我不知道該怎麼做。請幫忙。

+1

這是一個來自調試器的完全正常的診斷,你不會在.NET框架中擁有程序集的PDB文件。這很好,你並沒有試圖去調試這個框架。不要做任何事情,只要專注於調試你自己的代碼。 –

+0

那麼我應該重新啓用「只是我的代碼」? 我知道我自己的代碼有效,但它從不顯示輸出,只是這些消息。我該如何糾正? – Jess

+1

在Main()的最後一個大括號上設置斷點,以便查看輸出。或者添加傳統的「按任意鍵繼續」邏輯。或者按Ctrl + F5。 –

回答

-1

因此,雖然我不一定了解所有細節,但我確實設法「修復」了我的問題。

這裏是我做過什麼:

基本上,我要確保「優化」是在計劃「屬性」聽之任之。 (默認情況下,它未被選中)。 然後,在'tools-options-debugging-symbols'部分,我確實檢查了「微軟服務器符號」(我已經閱讀了原因,例如反向工程代碼的機會,但我不打算如果我曾經這樣做,我讀了關於剝離PDB選項,並會嘗試。)

我選擇它,因爲我的輸出一直說「無法打開或者找到PDB文件。「 這讓我很難理解它,並試圖忽略它。

而且我不確定這是否會產生任何影響,但我沒有選中「啓用我的代碼」......我仍然不知道它究竟是幹什麼/影響,儘管試圖讀取它一點點。 (如果任何人可以解釋它做了什麼/影響,爲什麼我做/不需要使用它,我會很感激!)

然後,我點擊「清潔解決方案」,然後清理在重建和運行之前編程。這一次,它確實在控制檯中顯示了我的輸出結果,並且我在輸出框中看到了一堆消息,但是這次他們都說「符號已加載」,並且我認爲這不是一個壞消息,所以我已經離開了現在獨自一人。

我張貼這只是爲了防止任何人有這個問題,並可能從我試過的好處。

+0

如果有人打算將我的答案記下來,我會很高興知道爲什麼,因爲如果我的答案不正確,或者我可以做的更好,我會從中獲益,尤其是當我說我真的不明白時。 – Jess

相關問題