Ø 簡介
Visual Studio 使用技巧是本人在工作或學習過程中遇到的一些問題,以及對應的解決方法,以文檔或部落格的形式記錄下來,以備後續遇到相同問題時可以快速解決,如果能幫助到其他同學,也是一件快樂的事情。包括以下内容:
1. Visual Studio 的所有曆史版本
2. VS 調試取消十六進制
3. VS 快速重寫父類成員
4. 解決 VS 運作緩慢的問題
5. 設定 VS 字型與背景色
6. 解決 VS 一個解決方案中包含多個 Web 項目時(Web Form/MVC/Web API),啟動調試就會啟動所有的 Web 項目
7. 設定 VS 調試時可編輯
8. 設定 VS 關閉調試時不關閉IIS Express(測試VS2013)
9. VS 安裝Unit Test Generator
10. VS 生成 DLL 時,選擇Debug可生成包含在條件編譯符号中的代碼,選擇Release則不會包含
11. 設定是否輸出*.pdb檔案
12. *.pdb檔案的作用
13. 設定(舊版本 Web 項目)是否輸出*.pdb檔案
14. 設定 VS 釋出時同時釋出*.pdb檔案
15. 設定 VS 2015中 .NET Framework 架構智能提示與注釋英文轉中文
16. 生成報錯:類似“無法将檔案“obj\Debug\Youle.Api.Requester.dll”複制到“bin\Youle.Api.Request”
17. 給 C# 生成的程式集中的類的屬性與方法添加注釋
18. 設定 VS 2010 菜單欄的前進按鈕和背景按鈕
19. 設定 VS 2013 滾動條為縮略圖模式
20. 解決多個 Poroject(*.sln) 引用同一個類庫,生成項目時替換類庫 ProjectGuid 的問題
1) Visual Studio .NET
2) Visual Studio .NET 2003
3) Visual Studio 2005
4) Visual Studio 2008
5) Visual Studio 2010
6) Visual Studio 2012
7) Visual Studio 2013
8) Visual Studio 2015
9) Visual Studio 2017
菜單欄取消“十六進制”即可,如圖:
1) 在子類中直接敲 override + 空格,就會顯示可以重寫的父類成員,如圖:
2) 選中後回車,如圖:
1) 重置VS環境:在VS指令提示符下,執行devenv.exe/resetuserdata,清理VS緩存。
2) 如果安裝了VS助手,也可嘗試下清理VS助手,但本人沒試過。
1) 可選字型:
Fixedsys(VS2013/VS2015)
Fixedsys Excelsior 3.01(VS2010/VS2013/VS2015)
2) 可選顔色
1. 蘋果綠 RGB 204,255,204 #CCFFCC
2. 杏仁黃 RGB 250,249,222 #FAF9DE
3. 青草綠 RGB 227,237,205 #E3EDCD
4. 海天藍 RGB 220,226,241 #DCE2F1
5. 豆沙綠 RGB 199,237,204 #C7EDCC(推薦)
6. 灰色 RGB 235,235,228 #EBEBE4
7. 自定義 RGB 220,249,251 #DCE2F1
3) 設定步驟
1. 下載下傳字型:http://www.fixedsysexcelsior.com/
2. 安裝字型:控制台 -> 字型,複制下載下傳的“FSEX300.ttf”檔案至字型清單,系統會自動完成字型安裝。(隻有安裝該字型後VS中才有 Fixedsys Excelsior 3.01字型)
3. 打開VS,選擇菜單欄 -> 工具 -> 選項 -> 環境 -> 字型和顔色,選擇字型:Fixedsys/Fixedsys Excelsior 3.01,大小:12。
4. 設定背景色:紅=199,綠=237,藍=204。
6. 解決 VS 一個解決方案中包含多個 Web 項目時(Web Form/MVC/Web API),啟動調試就會啟動所有的 Web 項目,加載在 IIS Express 中,解決方法:
1) 選擇不需要啟動的 Web 項目,按 F4 或者檢視屬性視窗,将“總是在調試是啟動”改為 False 即可,如圖:
7. 設定 VS 調試時可編輯,打開菜單欄 -> 工具 -> 選項 -> 調試 -> 正常 –> 将啟用“編輯并繼續”的勾去掉即可,如圖:
注意:需要在未調試時才能設定。
1) 全局設定:打開VS -> 工具 -> 選項 -> 調試 -> 編輯并繼續,取消選擇“編輯并繼續”的選擇框。這樣所有的項目就會關閉調試而不關閉 IIS Express。
2) 單獨項目設定:右鍵 -> Web項目屬性 -> 選擇Web -> 将“啟用編輯并繼續”的勾去掉,OK。
1) VS菜單欄 -> 工具 -> 擴充和更新 -> 搜尋“Unit Test Generator” -> 安裝。
2) Win10 + VS2013 安裝 Unit Test Generator 失敗時,安裝 Microsoft Visual Studio 2013 Update 5 即可,下載下傳:https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48129
10. VS 生成 DLL 時,選擇Debug可生成包含在條件編譯符号中的代碼,選擇Release則不會包含。
11. 設定是否輸出*.pdb檔案,右鍵類庫屬性 -> 生成 -> 進階 -> 輸出中的調試資訊 - 設定為full則會生成*.pdb檔案,設定none則不會生成。
Ø 簡介:PDB 全稱 Program Database,不知道中文翻譯叫什麼。相信使用過VS的人對于這個拓展名的檔案不會陌生,這個檔案主要會存儲對應子產品(dll或者exe)内部的所有符号,以及符号對應的位址、檔案名和行号。
這個檔案會在我們調試的時候被使用到,這個東西可以了解為調試的時候應用程式和源檔案之間的一個橋梁。正是歸功于這個檔案,我們才能在debug的時候看到程式目前執行相對應的代碼和監視到一些變量。參考:.NET PDB檔案到底是什麼?
連結:https://www.cnblogs.com/8335IT/p/8337565.html
1) 該檔案可用于抛出異常時擷取産生異常的檔案以及行号,如果沒有此檔案則異常對象中就不會包含此資訊。
2) 如果設定為none,也不能使用調試功能,斷點出報:“目前不會命中斷點。還沒有為該文檔加載任何符号。”
13. 釋出網站(舊版本Web項目)時,釋出 Web 應用 -> 設定 -> 檔案釋出選項 -> 在釋出期間預編譯【配置】 -> 勾選發出調試資訊,則會釋出或不釋出*.pdb檔案。
釋出 Web 時,選擇設定 -> Configuration -> 選擇“Debug”即可,預設是Release。如圖:
15. 設定 VS 2015中 .NET Framework 架構智能提示與注釋英文轉中文,解決辦法:
1) 在http://download.csdn.net/detail/shuiyueweiliang/9118315下載下傳中文包(zh-Hans 檔案夾)。
2) 關閉 Visual Studio 2015。
3) 使用下載下傳的中文包(zh-Hans 檔案夾)将C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\目錄下的 zh-Hans 檔案夾替換掉。
4) 打開 Visual Studio 2015,OK。
16. 生成報錯:類似“無法将檔案“obj\Debug\Youle.Api.Requester.dll”複制到“bin\Youle.Api.Request”,如圖:
解決辦法:也不知道什麼原因導緻,最快的解決辦法就是重新開機 VS,重新打開項目即可。
1) 右鍵選擇需要生成的項目,選擇屬性 -> 生成 -> 屬性 -> 勾選“XML 文檔檔案”,如圖:
2) 這樣生成項目時,就會生成一個與之比對的 XML 檔案,該檔案用于描述每個類中的屬性、方法、類的注釋,例如:
18. 設定 VS 2010 菜單欄的前進按鈕和背景按鈕,預設情況下 VS2010 是不現實前進和後退按鈕的,需要單獨設定,步驟如下:
1) 右鍵菜單欄 -> 自定義 -> 指令 -> 工具欄(選擇文本編輯器) -> 添加指令(A),如圖:
2) 在添加指令視窗中選擇“視圖”,勾選向後/向後導航,點選确定即可。
3) 确定後将看到如圖效果:
Ø 類似 Sublime Text 的效果
1) 選擇工具 -> 選項 -> 文本編輯器 -> 所有語言 -> 滾動條,設定如圖:
2) 效果如圖:
1) 問題描述
1. 假如有 A、B、C 三個項目同時引用同一個類庫(ClassLibrary1),類庫中的程式集 Guid 是[assembly: Guid("8257b54f-19e5-4768-a703-866a53825b49")]
2. 而三個 sln(解決方案)中引用的 Guid 是這樣的
A. Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "assemblyName", "..\Framework\ClassLibrary1.csproj", "{8257B54F-19E5-4768-A703-866A53825B49}"
B. Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "assemblyName ", "..\Framework\ClassLibrary1.csproj", "{53686A1F-02CB-4556-8C9D-D4EA1543F535}"
C. Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "assemblyName ", "..\Framework\ClassLibrary1.csproj", "{53686A1F-02CB-4556-8C9D-D4EA1543F535}"
3. 可以看到,B、C項目中的 Guid 與類庫中的 Guid 不一緻,是以每次生成都會将“53686A1F-02CB-4556-8C9D-D4EA1543F535”替換掉類庫中的 ProjectGuid,而A項目生成時又會再替換回來,是以就會反複出現以下情況:
2) 解決問題:
1. 其實問題描述了這麼多,隻是想把問題點了解清除一點。
2. 而解決問題就一步,編輯引用了“ClassLibrary1”類庫的*.sln檔案,将引用了“ClassLibrary1”類庫的 Guid 改為與類庫中的 Guid 一緻即可。以上示例舉例,将B、C項目改為"{8257B54F-19E5-4768-A703-866A53825B49}"即可。