網頁

Visual Studio IDE可能問題與解決辦法

Visual Studio IDE可能問題與解決辦法

Visual Studio 啟動畫面

上圖,是我碰到的怪問題,我的 Visual Studio 在電腦安裝更新並重開機後,Visual Studio 啟動後就一直停在啟動畫面,等超過數十分鐘完全無反應,從工作管理員來看,Visual Studio並不在應用程式清單,反而是在背景處理程序清單中,整個CPU與磁碟並無任何更新程式之類的程序在跑。Visual Studio 就靜靜的在那裡與我相望。

Visual Studio的問題碰過不少,以下整理我碰過的問題與解決辦法。(我好命苦 XD)

MEF Component

Visual Studio 編輯器使用一種 Managed Extensibility Framework (MEF) 來管理它的元件與擴充套件,而 Visual Studio 會對 MEF 進行快取的動作,預設快取的位置在「%localappdata%\Microsoft\VisualStudio\14.0\ComponentModelCache」。如果你覺得擴充套件或Visual Studio不太穩定,可以嘗試把 ComponentModelCache 目錄刪除。如果不聽手動刪除,也可以透過Clear MEF Component Cache來幫忙。

Visual Studio 第三方套件

Visual Studio 的擴充套件太好用,不小心就會安裝一堆的套件,如果刪除 ComponentModelCache 目錄還是不管用,那麼我們使用幾個小技巧來確認是否為第三方套件造成 Visual Studio 的不穩定。

首先,先開啟命令提示字元(cmd.exe),進入Visual Studio的安裝目錄(預設:C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE),預設 Visual Studio 的啟動程式是 devenv.exe,devenv.exe 在命令列是可以帶參數的

/log

如果你的 Visual Studio 可以啟動,只是操作上會 crash 或有些問題,那麼可執行 devenv.exe /log來收集activity log。activity log 預設儲存於「%APPDATA%\Microsoft\VisualStudio\10.0\ActivityLog.xml」,你可以借此檔案分析問題。但依過去經驗,雖然可以看到一堆紅底的字,但還是不好找出是那個套件造成的問題,這時就要用第二種方法。

/safemode

這裡使用devenv.exe /safemode,它只載入預設的環境和服務,以及原始安裝時隨附的協力廠商套件。簡單說,就是你所安裝的擴充套件都會被取消(disable)載入。

透過devenv.exe /safemode這個還我漂漂拳秘技,就能還原 Visual Studio 一個乾淨的啟動環境,我的情況就是如此,在 devenv.exe /safemode 模式下,Visual Studio 啟動速度飛快,且無任何問題。

但我安裝的第三方套件很多,怎麼知道是那一套造成的問題呢?一套一套查?

嗯,時間就是金錢。全部移除重裝比較快。全部移除並重新啟動,上述無法啟動的問題迎刃而解。

/resetuserdata

但(最怕就是這個but),/log/safemode、移除套件還是無解呢?

那麼就是使用暗黑技:devenv.exe /resetuserdata/resetuserdata 參數在 MSDN 查不到,你說黑不黑 XD

/resetuserdata 會重置 Visual Studio 回到第一次啟動的狀態,讓你重新選擇樣式,重新選擇編輯器環境,重新登入取得授權。可以說 devenv.exe /resetuserdatadevenv.exe /safemode 的實作並執行版本。

如果以上都無法解決你的問題,那麼除了重灌外,還有最後一招。

Visual Studio 2015 修復

在Visual Studio 2015之前超級怕Visual Studio本身出問題,找得到問題及解決辦法都還好,找不到問題或無法解決辦法的話,通常只能走最後一條"重灌作業系統"的路。不過這問題在Visual Studio 2015改善不少,現在如果有問題,各位可以先嘗試開啟「程式和功能」點選「Visual Studio 2015」並選擇「修復」(個人感覺有點像重新安裝),如果沒意外,應該80% ~ 90%都能解決。

經驗上,還有一次是顯示卡驅動程式有問題造成 Visual Studio 的不穩定,顯示卡驅動程式更新之後,也沒有再發生了。(那是好久好久以前的事了。)

小結

Visual Studio 本身問題現在並不常見,擴充套件的問題到是比較常碰到,希望透過以上的小技巧可以幫忙各位快速排除 Visual Studio 的問題。

4 則留言:

  1. 從2013起碰到套件問題 就會搬出 /resetuserdata
    http://tech.trailmax.info/2014/01/vs-package-did-not-load-correctly/

    resetuserdata會把VS Cache 路徑清掉
    %LOCALAPPDATA%\Microsoft\VisualStudio

    回覆刪除
  2. 哈,我 Visual Studio 2012 就開始用了 XD

    學習使用DEVENV.EXE幫VISUAL STUDIO偵錯
    http://blog.kkbruce.net/2012/11/study-use-devenv-exe-help-debug-visual-studio.html

    回覆刪除
  3. 目前遇到的問題是 Azure Web 發行的精靈畫面出不來, 網頁應用程式要附加 Webjob 沒有反應~~ @@" 目前努力中,不知道有沒有遇過

    回覆刪除
    回覆
    1. 沒碰過。
      可以先確定 Visual Studio Update 與 Azure SDK 都是最新的。

      刪除

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。