目創(chuàng)建到快捷鍵與調(diào)試技巧)
1. 從零到一為什么你的第一個(gè)Visual Studio項(xiàng)目總感覺(jué)不對(duì)勁很多剛接觸Visual Studio后面簡(jiǎn)稱VS的朋友尤其是從其他輕量級(jí)編輯器比如VS Code轉(zhuǎn)過(guò)來(lái)的打開(kāi)這個(gè)龐然大物的第一感覺(jué)往往是功能好多界面好復(fù)雜我該從哪里開(kāi)始你可能跟著某個(gè)教程稀里糊涂地創(chuàng)建了一個(gè)項(xiàng)目代碼也能跑起來(lái)但總覺(jué)得哪里不得勁——窗口布局混亂、編譯速度慢、找不到常用的功能按鈕、或者寫(xiě)代碼時(shí)手指在鍵盤(pán)和鼠標(biāo)間來(lái)回切換效率低下。這種感覺(jué)是對(duì)的。VS作為一個(gè)全功能的集成開(kāi)發(fā)環(huán)境IDE其設(shè)計(jì)初衷是服務(wù)于從桌面應(yīng)用到大型游戲、從移動(dòng)端到云端服務(wù)的全棧開(kāi)發(fā)。它的“重”恰恰是其強(qiáng)大之處但這也意味著如果不進(jìn)行一番符合個(gè)人習(xí)慣的“調(diào)教”它就像一輛沒(méi)有調(diào)整座椅和后視鏡的跑車(chē)你開(kāi)著別扭也發(fā)揮不出它的性能。網(wǎng)上那些“Visual Studio安裝教程”只解決了“能用”的問(wèn)題而“項(xiàng)目創(chuàng)建”、“美化”、“快捷鍵”這些關(guān)鍵詞背后解決的正是“好用”和“高效”的問(wèn)題。這篇文章我就以一個(gè)老司機(jī)的視角帶你繞開(kāi)那些華而不實(shí)的表面文章直擊核心配置出一臺(tái)專屬于你的、順手高效的“開(kāi)發(fā)跑車(chē)”。2. 項(xiàng)目創(chuàng)建不止是點(diǎn)擊“新建項(xiàng)目”那么簡(jiǎn)單幾乎所有教程的第一步都是“文件 - 新建 - 項(xiàng)目”。這沒(méi)錯(cuò)但僅僅做到這一步你只得到了一個(gè)空殼。一個(gè)健康的項(xiàng)目結(jié)構(gòu)從創(chuàng)建之初就應(yīng)該打好基礎(chǔ)。2.1 理解解決方案與項(xiàng)目的關(guān)系這是新手最容易混淆的概念。在VS里你首先創(chuàng)建的是一個(gè)“解決方案”.sln文件它像一個(gè)容器或一個(gè)文件夾里面可以存放一個(gè)或多個(gè)“項(xiàng)目”.csproj, .vcxproj等。一個(gè)常見(jiàn)的誤區(qū)是直接創(chuàng)建項(xiàng)目而不通過(guò)解決方案或者一個(gè)解決方案里塞進(jìn)無(wú)數(shù)個(gè)無(wú)關(guān)的項(xiàng)目。我的建議是“一個(gè)解決方案對(duì)應(yīng)一個(gè)完整的軟件產(chǎn)品”。比如你要開(kāi)發(fā)一個(gè)“學(xué)生管理系統(tǒng)”這個(gè)系統(tǒng)可能包含一個(gè)后端Web API項(xiàng)目、一個(gè)前端頁(yè)面項(xiàng)目、一個(gè)公共類庫(kù)項(xiàng)目和一個(gè)測(cè)試項(xiàng)目。那么你應(yīng)該創(chuàng)建一個(gè)名為“StudentManagementSystem”的解決方案然后在這個(gè)解決方案里依次添加上述四個(gè)項(xiàng)目。這樣做的好處是你可以在一個(gè)VS實(shí)例中管理所有相關(guān)代碼項(xiàng)目間的引用關(guān)系清晰調(diào)試和構(gòu)建也非常方便。2.2 選擇正確的項(xiàng)目模板與.NET版本點(diǎn)擊“新建項(xiàng)目”后你會(huì)看到琳瑯滿目的模板控制臺(tái)應(yīng)用、類庫(kù)、ASP.NET Core Web應(yīng)用、WPF應(yīng)用等等。這里的選擇至關(guān)重要它決定了項(xiàng)目的初始結(jié)構(gòu)和依賴??刂婆_(tái)應(yīng)用學(xué)習(xí)C#語(yǔ)法、編寫(xiě)小工具或后臺(tái)服務(wù)的最佳起點(diǎn)。結(jié)構(gòu)最簡(jiǎn)單沒(méi)有UI干擾。類庫(kù)用于封裝可復(fù)用的代碼生成.dll文件供其他項(xiàng)目引用。如果你有通用的工具方法、數(shù)據(jù)模型應(yīng)該放在這里。ASP.NET Core Web應(yīng)用開(kāi)發(fā)Web API或MVC網(wǎng)站。創(chuàng)建時(shí)注意選擇“API”還是“Web應(yīng)用模型-視圖-控制器”這決定了是否包含前端頁(yè)面框架。注意對(duì)于.NET項(xiàng)目請(qǐng)務(wù)必關(guān)注右上角的“框架”下拉框。除非有明確的老系統(tǒng)兼容需求否則強(qiáng)烈建議選擇最新的長(zhǎng)期支持LTS版本如.NET 8.0 LTS。新版本在性能、功能和安全性上都有巨大提升并且能獲得長(zhǎng)期的技術(shù)支持。選擇過(guò)舊的版本如.NET Framework 4.x可能會(huì)在后續(xù)引入不必要的兼容性麻煩。2.3 設(shè)置項(xiàng)目名稱與位置的藝術(shù)“位置”這一欄經(jīng)常被忽視。默認(rèn)位置通常是“C:\Users\你的用戶名\source\repos”。我強(qiáng)烈建議你改變這個(gè)習(xí)慣。使用一個(gè)統(tǒng)一的源碼目錄例如在D盤(pán)或一個(gè)空間較大的分區(qū)創(chuàng)建“Dev”或“Source”文件夾所有項(xiàng)目都放在這里。這便于管理和備份你可以用Git對(duì)整個(gè)Dev目錄進(jìn)行版本控制。為解決方案和項(xiàng)目起好名字解決方案名建議使用產(chǎn)品名或系統(tǒng)名如“OnlineBookStore”項(xiàng)目名則體現(xiàn)其職責(zé)如“OnlineBookStore.API”, “OnlineBookStore.Models”, “OnlineBookStore.Tests”。避免使用“WindowsFormsApp1”、“WebApplication1”這種無(wú)意義的名字幾天后你自己都會(huì)忘記它是干嘛的。2.4 創(chuàng)建后的第一件事配置Git版本控制項(xiàng)目創(chuàng)建成功后在“解決方案資源管理器”中右鍵點(diǎn)擊解決方案選擇“將解決方案添加到源代碼管理”然后選擇“Git”。這會(huì)在你的項(xiàng)目根目錄初始化一個(gè)本地Git倉(cāng)庫(kù)。即使你暫時(shí)不推送到GitHub或Gitee本地Git也能讓你安心地嘗試各種修改隨時(shí)可以回退到之前的版本。這是專業(yè)開(kāi)發(fā)者的基本素養(yǎng)從第一個(gè)項(xiàng)目就開(kāi)始培養(yǎng)這個(gè)習(xí)慣。3. 效率飛躍你必須掌握的Visual Studio核心快捷鍵記住高手幾乎不用鼠標(biāo)。熟練使用快捷鍵是提升編碼效率數(shù)倍的關(guān)鍵。下面這些不是最全的列表但是我認(rèn)為最核心、最值得優(yōu)先記憶的“肌肉記憶”快捷鍵。3.1 編輯與導(dǎo)航類編碼時(shí)使用頻率最高Ctrl . (句號(hào))萬(wàn)能快速修復(fù)。當(dāng)代碼下有波浪線錯(cuò)誤或建議時(shí)按此鍵會(huì)彈出修復(fù)菜單如添加using引用、生成方法存根、重命名等。這是VS里最強(qiáng)大的快捷鍵沒(méi)有之一。Ctrl Space觸發(fā)智能提示IntelliSense。當(dāng)你輸入一個(gè)類或?qū)ο竺囊徊糠謺r(shí)按它來(lái)補(bǔ)全。Ctrl K, Ctrl C注釋選中行。Ctrl K, Ctrl U取消選中行的注釋。Ctrl D復(fù)制當(dāng)前行到下一行比CtrlC再CtrlV快得多。Ctrl Shift V循環(huán)瀏覽剪貼板歷史。你可以復(fù)制多個(gè)片段然后按此鍵依次粘貼無(wú)需來(lái)回切換。Ctrl - (減號(hào))和Ctrl Shift -在光標(biāo)歷史位置間向前/向后導(dǎo)航。相當(dāng)于代碼的“前進(jìn)”和“后退”。F12轉(zhuǎn)到定義。光標(biāo)放在一個(gè)類、方法或變量上按F12直接跳轉(zhuǎn)到它的定義處。Ctrl - (減號(hào))跳回。在使用了F12跳轉(zhuǎn)后按此鍵返回原來(lái)的位置。Ctrl F/Ctrl H查找與替換。在單個(gè)文件內(nèi)操作。Ctrl Shift F/Ctrl Shift H在整個(gè)解決方案或指定范圍內(nèi)查找與替換。功能極其強(qiáng)大。3.2 調(diào)試與運(yùn)行類解決問(wèn)題時(shí)必備F5開(kāi)始調(diào)試Debug。程序會(huì)以調(diào)試模式運(yùn)行你可以在斷點(diǎn)處暫停、查看變量。Ctrl F5開(kāi)始執(zhí)行不調(diào)試。程序會(huì)直接運(yùn)行速度比F5稍快適合快速查看結(jié)果。F9在當(dāng)前行設(shè)置或刪除斷點(diǎn)。調(diào)試的核心。F10逐過(guò)程調(diào)試。遇到函數(shù)調(diào)用時(shí)不進(jìn)入函數(shù)內(nèi)部直接執(zhí)行完該函數(shù)。F11逐語(yǔ)句調(diào)試。遇到函數(shù)調(diào)用時(shí)會(huì)進(jìn)入函數(shù)內(nèi)部一步步執(zhí)行。Shift F11跳出當(dāng)前函數(shù)。當(dāng)你進(jìn)入一個(gè)函數(shù)內(nèi)部后想立刻執(zhí)行完該函數(shù)并返回到調(diào)用處就用這個(gè)。Ctrl Alt P附加到進(jìn)程。當(dāng)你想調(diào)試一個(gè)正在運(yùn)行的程序如IIS中托管的網(wǎng)站時(shí)使用。3.3 窗口與視圖管理類管理IDE本身Ctrl Alt L打開(kāi)“解決方案資源管理器”窗口。如果它被關(guān)掉了用這個(gè)快捷鍵找回來(lái)。Ctrl , (逗號(hào))打開(kāi)“轉(zhuǎn)到全部”搜索框??梢钥焖偎阉鹘鉀Q方案中的文件、類型、成員等比在資源管理器里肉眼找快十倍。Ctrl \ Ctrl M切換所有大綱顯示展開(kāi)/折疊所有代碼區(qū)域。在查看長(zhǎng)文件結(jié)構(gòu)時(shí)非常有用。Shift Alt Enter切換全屏模式。讓你暫時(shí)隱藏所有其他窗口專注于代碼編輯器。實(shí)操心得不要試圖一次性記住所有快捷鍵。我的方法是每周重點(diǎn)練習(xí)3-5個(gè)并在日常編碼中強(qiáng)迫自己使用。比如這周就練習(xí)用Ctrl .來(lái)修復(fù)所有錯(cuò)誤用F12和Ctrl -來(lái)閱讀代碼。一個(gè)月后你的效率就會(huì)有肉眼可見(jiàn)的提升。你可以在“工具 - 選項(xiàng) - 環(huán)境 - 鍵盤(pán)”里查看和自定義所有快捷鍵。4. 打造舒適工位Visual Studio界面美化與個(gè)性化配置一個(gè)賞心悅目、布局合理的IDE能顯著降低視覺(jué)疲勞提升專注度。VS的默認(rèn)深色主題已經(jīng)不錯(cuò)但我們還可以做得更好。4.1 主題與字體保護(hù)你的眼睛主題進(jìn)入“工具 - 選項(xiàng) - 環(huán)境 - 常規(guī)”。顏色主題選擇“深色”或“藍(lán)色”我個(gè)人偏愛(ài)深色。更進(jìn)階的做法是安裝“Visual Studio Color Theme Designer”擴(kuò)展可以微調(diào)每一個(gè)UI元素的顏色或者從VSIX Gallery網(wǎng)站下載更多社區(qū)制作的主題。字體在“工具 - 選項(xiàng) - 環(huán)境 - 字體和顏色”中為“文本編輯器”選擇一款等寬字體。Consolas是經(jīng)典之選Cascadia Code是微軟的新寵自帶編程連字特性比如!會(huì)顯示成≠顯示成?能讓代碼看起來(lái)更優(yōu)雅。字號(hào)建議設(shè)置在12-14pt之間。4.2 窗口布局讓一切觸手可及VS的窗口是可以隨意拖拽、???、標(biāo)簽化的。一個(gè)高效的程序員布局通常如下主區(qū)域當(dāng)然是代碼編輯器占據(jù)屏幕中央大部分面積。左側(cè)??俊敖鉀Q方案資源管理器”和“團(tuán)隊(duì)資源管理器”如果使用Git。右側(cè)停靠“服務(wù)器資源管理器”數(shù)據(jù)庫(kù)連接和“屬性”窗口。底部??俊板e(cuò)誤列表”、“輸出”、“測(cè)試資源管理器”和“包管理控制臺(tái)”。你可以通過(guò)拖動(dòng)窗口標(biāo)題欄到屏幕邊緣的引導(dǎo)菱形圖標(biāo)上來(lái)進(jìn)行???。布局亂了怎么辦“窗口 - 重置窗口布局”可以一鍵恢復(fù)默認(rèn)。當(dāng)你調(diào)整出一個(gè)非常順手的布局后可以使用“窗口 - 保存窗口布局”給它起個(gè)名字如“Web開(kāi)發(fā)布局”以后可以快速切換。4.3 代碼編輯器優(yōu)化讓代碼自己說(shuō)話行號(hào)與縮進(jìn)參考線在“工具 - 選項(xiàng) - 文本編輯器 - 所有語(yǔ)言 - 常規(guī)”中勾選“行號(hào)”。在“C#”或特定語(yǔ)言設(shè)置中可以勾選“顯示縮進(jìn)參考線”這對(duì)于保持代碼塊結(jié)構(gòu)清晰很有幫助。滾動(dòng)條模式在“文本編輯器 - 所有語(yǔ)言 - 滾動(dòng)條”中將模式從“標(biāo)準(zhǔn)”改為“地圖模式”。這會(huì)在滾動(dòng)條上以縮略圖形式顯示整個(gè)文件不同顏色的標(biāo)記代表修改、錯(cuò)誤、斷點(diǎn)等讓你對(duì)文件狀態(tài)一目了然快速定位。自動(dòng)換行與空格可見(jiàn)根據(jù)個(gè)人習(xí)慣可以開(kāi)啟“查看空白字符”CtrlR, CtrlW來(lái)顯示空格和制表符這對(duì)于排查格式問(wèn)題很有用。5. 項(xiàng)目啟動(dòng)與調(diào)試不僅僅是按F5按F5啟動(dòng)項(xiàng)目是常態(tài)但背后的配置和技巧能幫你解決90%的啟動(dòng)類問(wèn)題。5.1 理解啟動(dòng)項(xiàng)目與多啟動(dòng)項(xiàng)目在解決方案資源管理器中你會(huì)發(fā)現(xiàn)有一個(gè)項(xiàng)目名稱是加粗的這就是“啟動(dòng)項(xiàng)目”。當(dāng)你按F5時(shí)VS運(yùn)行的就是它。右鍵點(diǎn)擊某個(gè)項(xiàng)目選擇“設(shè)為啟動(dòng)項(xiàng)目”即可更改。對(duì)于微服務(wù)或前后端分離項(xiàng)目你可能需要同時(shí)啟動(dòng)多個(gè)項(xiàng)目比如一個(gè)API服務(wù)和一個(gè)前端服務(wù)。這時(shí)可以在解決方案上右鍵 - “屬性” - “通用屬性 - 啟動(dòng)項(xiàng)目”選擇“多個(gè)啟動(dòng)項(xiàng)目”然后將相關(guān)項(xiàng)目的“操作”設(shè)置為“啟動(dòng)”。這樣按F5就能同時(shí)啟動(dòng)它們并可以在輸出窗口中分別看到它們的日志。5.2 啟動(dòng)配置launchSettings.json對(duì)于ASP.NET Core項(xiàng)目項(xiàng)目根目錄下的Properties/launchSettings.json文件至關(guān)重要。它定義了不同的啟動(dòng)配置文件Profile。{ profiles: { MyProject: { commandName: Project, dotnetRunMessages: true, launchBrowser: true, launchUrl: swagger, // 啟動(dòng)后自動(dòng)打開(kāi)的URL applicationUrl: https://localhost:5001;http://localhost:5000, environmentVariables: { ASPNETCORE_ENVIRONMENT: Development // 設(shè)置環(huán)境變量 } }, IIS Express: { commandName: IISExpress, launchBrowser: true, launchUrl: swagger, environmentVariables: { ASPNETCORE_ENVIRONMENT: Development } } } }你可以在這里修改端口號(hào)、是否自動(dòng)打開(kāi)瀏覽器、打開(kāi)哪個(gè)頁(yè)面、設(shè)置環(huán)境變量等。在VS工具欄的啟動(dòng)按鈕旁邊你可以下拉選擇不同的Profile來(lái)啟動(dòng)。5.3 常見(jiàn)啟動(dòng)失敗問(wèn)題排查“無(wú)法啟動(dòng)Visual Studio”或“Microsoft.ServiceHub.Controller”錯(cuò)誤這通常是VS安裝損壞或用戶配置文件問(wèn)題。首先嘗試以管理員身份運(yùn)行“Developer Command Prompt for VS”執(zhí)行devenv /resetuserdata命令這會(huì)重置VS設(shè)置你的自定義設(shè)置會(huì)丟失請(qǐng)謹(jǐn)慎。如果不行嘗試修復(fù)安裝或卸載重裝。端口被占用啟動(dòng)時(shí)提示“地址已在使用中”。去launchSettings.json里換一個(gè)端口或者用命令行netstat -ano | findstr :5000找到占用5000端口的進(jìn)程ID然后在任務(wù)管理器中結(jié)束它。項(xiàng)目依賴未還原首次打開(kāi)項(xiàng)目或更新后右下角可能會(huì)提示“需要還原NuGet包”。右鍵解決方案選擇“還原NuGet包”或者打開(kāi)“程序包管理器控制臺(tái)”執(zhí)行dotnet restore命令。配置文件識(shí)別不了如熱詞中提到的“springboot創(chuàng)建項(xiàng)目后配置文件識(shí)別不了”在.NET中類似問(wèn)題可能是appsettings.json的“復(fù)制到輸出目錄”屬性沒(méi)有設(shè)置為“始終復(fù)制”或“如果較新則復(fù)制”。在解決方案資源管理器中右鍵該文件 - 屬性進(jìn)行修改。6. 項(xiàng)目管理進(jìn)階添加文件、引用與NuGet包一個(gè)項(xiàng)目不可能只有一個(gè)文件。如何優(yōu)雅地組織代碼是項(xiàng)目可維護(hù)性的關(guān)鍵。6.1 添加文件與文件夾結(jié)構(gòu)在解決方案資源管理器中右鍵項(xiàng)目或文件夾 - “添加” - “新建項(xiàng)”或“現(xiàn)有項(xiàng)”。新建項(xiàng)VS提供了豐富的模板如類、接口、枚舉、控制器、視圖等。選擇合適的模板能生成基礎(chǔ)代碼框架。現(xiàn)有項(xiàng)將磁盤(pán)上已有的文件添加到項(xiàng)目中。注意這只是添加了一個(gè)“引用”文件本身還在原位置。如果你希望文件被復(fù)制到項(xiàng)目目錄下需要在添加時(shí)選擇“添加為鏈接”高級(jí)選項(xiàng)但這通常用于共享文件。一個(gè)良好的文件夾結(jié)構(gòu)示例對(duì)于ASP.NET Core項(xiàng)目MyProject/ ├── Controllers/ (API控制器) ├── Models/ (數(shù)據(jù)模型) ├── Services/ (業(yè)務(wù)邏輯層) ├── Data/ (數(shù)據(jù)訪問(wèn)層如DbContext) ├── Views/ (前端視圖如果是MVC) ├── wwwroot/ (靜態(tài)資源) └── Program.cs / Startup.cs (程序入口)使用文件夾來(lái)組織代碼而不是把所有文件都扔在根目錄。6.2 管理項(xiàng)目引用與NuGet包項(xiàng)目引用如果你的解決方案里有多個(gè)項(xiàng)目且A項(xiàng)目需要使用B項(xiàng)目的功能就需要為A項(xiàng)目添加對(duì)B項(xiàng)目的引用。右鍵A項(xiàng)目的“依賴項(xiàng)” - “添加項(xiàng)目引用”勾選B項(xiàng)目即可。這會(huì)在A項(xiàng)目的.csproj文件中生成一個(gè)ProjectReference節(jié)點(diǎn)。NuGet包引用這是引入第三方庫(kù)的標(biāo)準(zhǔn)方式。右鍵項(xiàng)目的“依賴項(xiàng)” - “管理NuGet程序包”打開(kāi)包管理器界面。你可以在這里搜索、安裝、更新或卸載包。常見(jiàn)的包如Newtonsoft.JsonJSON處理、AutoMapper對(duì)象映射、SwashbuckleSwagger API文檔等。安裝后引用信息會(huì)記錄在.csproj文件中。避坑指南關(guān)于NuGet包版本沖突。當(dāng)多個(gè)項(xiàng)目引用了同一個(gè)包的不同版本時(shí)可能會(huì)引發(fā)沖突。解決方案是盡量統(tǒng)一解決方案中所有項(xiàng)目對(duì)某個(gè)公共包的版本??梢栽诮鉀Q方案根目錄創(chuàng)建一個(gè)Directory.Build.props文件來(lái)統(tǒng)一管理公共包版本或者使用“管理解決方案的NuGet程序包”功能來(lái)批量更新。7. 插件擴(kuò)展生態(tài)武裝你的Visual StudioVS的強(qiáng)大一半來(lái)自于其豐富的擴(kuò)展市場(chǎng)。通過(guò)“擴(kuò)展 - 管理擴(kuò)展”可以打開(kāi)擴(kuò)展管理器。7.1 必裝效率神器Productivity Power Tools微軟官方出品包含一系列提升效率的小工具如文檔標(biāo)簽高亮、自定義文檔井井有條、增強(qiáng)的滾動(dòng)條等。CodeMaid代碼自動(dòng)整理工具。可以一鍵清理和重新格式化整個(gè)文件或項(xiàng)目自動(dòng)整理using語(yǔ)句重構(gòu)代碼布局。讓你的代碼始終保持整潔。GitHub Extension for Visual Studio如果你使用GitHub這個(gè)擴(kuò)展提供了更緊密的集成如內(nèi)置的Pull Request查看、Issue管理等。ReSharper這是一個(gè)重量級(jí)、收費(fèi)的擴(kuò)展被譽(yù)為“C#開(kāi)發(fā)者的瑞士軍刀”。它提供了極其強(qiáng)大的代碼分析、快速重構(gòu)、導(dǎo)航和代碼生成功能。雖然強(qiáng)大但對(duì)系統(tǒng)資源消耗也大。對(duì)于新手我建議先熟練使用VS原生功能等遇到瓶頸后再考慮ReSharper或它的開(kāi)源替代品Roslynator。7.2 如何選擇與安裝擴(kuò)展在擴(kuò)展管理器中搜索時(shí)注意查看擴(kuò)展的評(píng)分、下載量和最近更新日期。優(yōu)先選擇評(píng)分高、維護(hù)活躍的擴(kuò)展。安裝后通常需要重啟VS。要警惕那些來(lái)源不明、功能描述模糊的擴(kuò)展它們可能存在安全風(fēng)險(xiǎn)或兼容性問(wèn)題。7.3 擴(kuò)展管理與性能安裝過(guò)多擴(kuò)展會(huì)拖慢VS的啟動(dòng)和運(yùn)行速度。定期檢查“擴(kuò)展 - 管理擴(kuò)展 - 已安裝”禁用或卸載那些你很少用到的擴(kuò)展。如果VS變得異常緩慢可以嘗試以安全模式啟動(dòng)devenv /safemode該模式會(huì)禁用所有擴(kuò)展用以判斷是否是某個(gè)擴(kuò)展導(dǎo)致的問(wèn)題。8. 從入門(mén)到精通的習(xí)慣養(yǎng)成最后分享幾個(gè)讓我受益多年的工作習(xí)慣它們比任何快捷鍵或插件都重要。1. 善用搜索CtrlQVS頂部有一個(gè)搜索框或按CtrlQ你可以直接輸入任何你想做的事情比如“更改主題”、“打開(kāi)測(cè)試資源管理器”、“添加連接服務(wù)”它會(huì)直接帶你到對(duì)應(yīng)的功能位置或設(shè)置選項(xiàng)不用在層層菜單里尋找。2. 定期清理解決方案在菜單欄選擇“生成 - 清理解決方案”然后“生成 - 重新生成解決方案”。這可以清除舊的編譯輸出解決一些因緩存導(dǎo)致的詭異問(wèn)題。3. 理解輸出窗口“輸出”窗口視圖 - 輸出是你的好朋友。構(gòu)建錯(cuò)誤、程序輸出、NuGet包還原信息、調(diào)試信息都在這里。遇到問(wèn)題時(shí)第一反應(yīng)應(yīng)該是去看輸出窗口而不是盲目搜索。4. 學(xué)會(huì)閱讀錯(cuò)誤列表“錯(cuò)誤列表”窗口視圖 - 錯(cuò)誤列表不僅顯示錯(cuò)誤還顯示警告和信息。養(yǎng)成把警告也消除的習(xí)慣尤其是“空引用警告”這能提前消滅很多潛在的運(yùn)行時(shí)Bug。Visual Studio是一個(gè)深度復(fù)雜的工具但你不必一次性掌握所有功能。就像學(xué)開(kāi)車(chē)一樣先學(xué)會(huì)啟動(dòng)、掛擋、轉(zhuǎn)向和剎車(chē)項(xiàng)目創(chuàng)建、編輯、調(diào)試然后慢慢熟悉雨刷、燈光和空調(diào)美化、快捷鍵、擴(kuò)展最后才能享受駕駛的樂(lè)趣高效、流暢地創(chuàng)造。希望這篇指南能成為你VS駕駛生涯的第一本手冊(cè)幫你打好基礎(chǔ)少走彎路。真正的熟練源于在每一個(gè)實(shí)際項(xiàng)目中的反復(fù)練習(xí)和思考。