ASP.NET開發中修改代碼而不重啟網站


我們在做網站開發的時候,通常是寫好了一個功能就要進行測試,Visual Studio上點“Start Debugging”(快捷鍵是F5),這是調試模式,也有直接運行模式,“Start Without Debugging”(快捷鍵是Ctrl+F5),網站啟動,並且默認會打開一個瀏覽器窗口讓你看到結果,假如這個時候你發現點問題,需要調整代碼……

對於非*.cs文件

如果是cshtml、aspx、ashx或asmx這類非C#文件(*.cs),不管是調試模式還是非調試模式,直接點保存,就生效了,網站一刷新頁面,第一次訪問到它們,它們就會自動被編譯,重新生成可執行代碼。

對於*.cs文件(調試模式下)

如果你嘗試在調試中修改cs文件,會得到這么一個錯誤提示:

你得先把程序暫停了,才能對它進行修改,暫停的辦法有兩種,一種是斷點,程序跑到斷點處就自動暫停了,另一種是直接點“Break All”(快捷鍵是Ctrl+Alt+Break),暫停了程序,就可以對cs文件進行修改了,修改好之后,點一下“Continue”(快捷鍵F5),就生效了,神奇的是:你甚至不需要點保存。

當然了,這還得有個前提,就是你的Visual Studio開啟了這個選項:

如果沒開啟這個選項的話,你在調試中可以繼續編輯C#代碼,可以保存,但不會生效。

對於*.cs文件(非調試模式下)

你可以直接修改cs文件,沒有任何問題,保存,看看是否起作用?——答案是否。因為承載着你的程序的容器——IIS Express並不知道你修改了源代碼,你需要重新編譯一下,點一下“Build Solution”(快捷鍵F7),然后就生效了。當然對非ASP.NET程序來說,這招行不通,因為程序運行時,EXE文件是寫保護的,這跟ASP.NET程序的運行原理不一樣。

希望通過這幾種方式,能夠提高大家的網站開發效率。

使用dotnet watch

對於.NET Core程序來說,還有另外一種方法,就是使用“Microsoft.DotNet.Watcher.Tools”工具。在項目的csproj中加入這么一行:

<DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.0.0" />

接下來在項目的目錄下(也就是csproj所在的目錄下),執行一次dotnet restore(這個不用每次都執行),然后執行dotnet watch run。程序就跑起來了。

接下來你對C#代碼的修改都會被Watcher觀察到,並自動編譯你的代碼和重啟你的程序,這個過程不需要你額外自己去Build和Run,當然你程序如果有錯,它也會顯示出來Build失敗,失敗的話不會重啟程序,繼續跑着舊版。

由於需要打開命令行界面,所以總感覺有點麻煩,速度嘛,相比前面提起的手動Build Solution,好像也快不去哪里。用不用自己看。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM