[VS2015] 命令列執行 devenv,編譯結束後卡住五分鐘?

[VS2015] 命令列執行 devenv,編譯結束後卡住五分鐘?

今天在用 Visual Studio 2015 編譯專案程式時,

遇到了超級奇怪的問題…

 

在命令列裡執行 devenv xxx.sln /rebuild release 時,

明明就已經編譯結束,

可是卻停留在 “Rebuild All: 1 succeeded. 0 failed. 0 skipped” 這個訊息,

直到 5 分鐘之後,才會回到命令列提示字元:

 

每次執行,devenv 都會卡不多不少的 5 分鐘才結束,

而專案裡有好幾個 .sln 要編譯,

這問題讓整個編譯的速度從原本只要兩分鐘不到,

變成了幾十分鐘 Orz…

 

Process ExplorerProcess Monitor 觀察一下,

也看不出來 devenv 到底在等什麼東西…

 

上網查了一下,有人也有遇到類似的問題,

看起來像是 devenv 在執行時,會把一個 VsHub.exe 帶起來,

當編譯結束時,devenv 似乎是在等候 VsHub 結束,

可是因為某種未知狀況,導致 VsHub 要等待 5 分鐘逾時後才會下去:

 

解決方法的話,有人是說可以刪除或改名這個目錄

C:\Program Files (x86)\Common Files\microsoft shared\VsHub

不過我自己試過,是沒有用處…

 

另一個目前實測有用的方法,是在命令列執行 devenv 指令前,

手動把 Visual Studio 2015 執行起來 (不用開任何專案也沒關係)~

從 Process Explorer 可以看到,

這個手動執行的 VS2015 的 devenv.exe process,

會帶一個 VsHub.exe process 起來,

而且在 VS2015 視窗關閉前,都會一直存在:

 

這時再去命令列執行 devenv /rebuild 指令時,

就不會再跑出另外一個 VsHub.exe process,

而且看起來也不會卡住 5 分鐘了~

 

不確定 VS2015 是否有更新修掉這個問題,

不過至少這個方法可以勉強擋一陣子囉~

 

參考資料:visual studio – How do I disable VsHub.exe in the system tray? – Stack Overflow

(本頁面已被瀏覽過 834 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料