2021年6月13日 星期日

Visual Studio 2015 Community Update 3 坑爹的問題

markdown 最近遇到的一個坑爹的問題,就是發現 visual studio 的測試總管中,沒有顯示我的測試方法,像下圖一樣,甚麼都沒有。 ![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM6HqBURmjHAGNiQe4dDY6vddyD5w6VNcok_ABzt4v6T-f_3aTuw87y7H77r_Yzlz8VJFxCz_YTxxfOFsG8cJltfU8luGP7hoYfK1rYe223Qvn7ptm4F1pL9wBZ2sMYouYzTrYzZm-dQMV/s0/Image+1.png) 我試著執行測試,是可以執行的,只是也沒有顯示任何測試結果。一開始我先在 google 盲目搜尋,找了一些解法。 例如[安裝 MSTest.TestAdapter](https://stackoverflow.com/questions/42861930/unit-tests-not-discovered-in-visual-studio-2017/44338786#44338786),沒用,這個解法是要解決 VS「找不到」測試方法的問題,但我發現我的 VS 的 log 顯示它有找到我的測試方法,但就是沒顯示出來。 還有說刪除 [%LocalAppData%\Microsoft\VisualStudio\12.0\ComponentModelCache](https://stackoverflow.com/questions/25304425/visual-studio-2013-doesnt-discover-unit-tests) 路徑就好的,也是沒用。 然後我發現 VS 會顯示一個錯誤,看起來跟測試有關。 ![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh83iDDWq6iOnSbo0fxjXGDw57W4tyA_T_zqBE77CDH2dgFPJ2LT0XdNin9epqtMgKn0B3P0syM5bpqljLwwRHIZkkYKEX_q6eEk2wnjJV26DpWEYO3R06K9A4RZXbjsKNVUfSa_PuLCk96/s0/Image+2.png) 就以這個組件名稱當關鍵字搜尋,然後就找到 [microsoft forums](https://social.msdn.microsoft.com/Forums/sqlserver/en-US/04be3174-4811-4f35-930a-d1766e4d8b3a/my-uni-tests-disappeared-after-updating-visual-studio?forum=vsunittest) 的一篇討論,這裡有人也遇到一樣的問題,而且他的 VS 版本跟我一模一樣,我也是 14.0.25424.00 Update 3。 ![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigLrnPUU_v73tzQshNRlILyVmQ7l3rmgk7gkxSg-fA4HmMCyif_QV6P6dhyI9pj6WBU4fpvuRuEkHL6ei1DPOtDEeL5MJMp57JbMASJ1ArOmlNyb4ZK1dse3bs7dzre8uMm4WZpg27O89i/s0/Image+3.png) 這個人他說了,他發現這個問題只有在非英文版的 VS 才會出現,他裝的是德文版,而且只要把 `C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\de` 目錄改名,問題就解了。 我裝的是中文版 VS,在我的電腦中,路徑是`C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\zh-Hant`。 這個資料夾裡面放了很多 Microsoft.VisualStudio.TestWindow 開頭的 dll,而且從資料夾的名稱和路徑看起來,這裡面應該是用來支援不同語言包的測試相關的組件。我試著把資料夾改名,的確測試總管就找到我的測試方法了,不過 UI 變成英文的。 ![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9f-txiYRQPhWLQjNjFtYV_2Xe9Q0bpmBZi26HvoqjwGf9_kh6NrrQKSmYzbW5mJou-PHwkndvfUDFRLB_9Q7gtItbuHhXuTUMWyg_oCLPvoyu2BkSpnkjilZziIFWQE4XHtl2-eFKrOnZ/s0/Image+4.png) 到這裡整個情況就很清楚了,原本我的測試總管沒有顯示測試方法,是因為 VS 預設安裝的測試總管用來顯示中文介面的語言包組件有問題,把資料夾改名了之後,他用回英文的語言包組件,就可以正常顯示了。 本來這樣也是可以用了,但這個討論串裡有個好心人把各種語言的正確語言包組件附上了,為了怕這樣的好東西之後連結失效不能用了,我也放到我的 blog 中。 [下載連結](https://drive.google.com/file/d/1K7bB1KsxyVc8n3IhpcX_kVoD0rTNE0Er/view?usp=sharing) 出問題的就是 Microsoft.VisualStudio.TestWindow.Core.resources.dll,我將上面語言包 CHT 內的 dll 覆蓋掉 VS 預設安裝的,測試總管就可以正常顯示,而且是中文介面。 ![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbC296QUef0CRZ76NfaLzauehd4KGUXz-1OIkgZDVYgCWOtcjpDf9euOwnJkZCcSkl79fuMV58cJkpqFVM_RG9QrJqVBfzvvTmRNttnH9OsYQ6i0AogBpquKtJTRIkXldzIOZX9MOYwHj0/s0/Image+5.png) 至於該討論串中微軟的人後來提供的解法,也就是移除 KB3165756 (visual-studio-2015-update3),我就沒試了,因為從這個 KB 名稱來看,移除就是把整個 update 3 移除了,可能會移掉一些有用的東西。 --- * [My uni tests disappeared after updating Visual Studio](https://social.msdn.microsoft.com/Forums/sqlserver/en-US/04be3174-4811-4f35-930a-d1766e4d8b3a/my-uni-tests-disappeared-after-updating-visual-studio?forum=vsunittest)

沒有留言:

張貼留言