使用aspnet_compiler.exe預編譯ASP.NET項目的優點是什麼?使用aspnet_compiler.exe預編譯ASP.NET項目的優點是什麼?
另外,編譯後的項目在部署到遠程服務器後是否有錯誤?團隊提出的一個問題是,如果項目編譯的機器和部署項目的服務器將有不同的設置,項目將不會運行或錯誤運行。有沒有人遇到過這種情況?
使用aspnet_compiler.exe預編譯ASP.NET項目的優點是什麼?使用aspnet_compiler.exe預編譯ASP.NET項目的優點是什麼?
另外,編譯後的項目在部署到遠程服務器後是否有錯誤?團隊提出的一個問題是,如果項目編譯的機器和部署項目的服務器將有不同的設置,項目將不會運行或錯誤運行。有沒有人遇到過這種情況?
我看到兩個主要的原因:
第一個允許在開發過程中檢測到更多錯誤(例如屬性名稱中的拼寫錯誤),而不是獲取死亡的黃色屏幕。如果有問題的代碼是錯誤路徑,那麼確保測試覆蓋率可能很難確保測試覆蓋率可以透過。
這不能保證在生產中不會有錯誤。在編譯時顯然不會出現邏輯錯誤,也不會錯過錯誤處理(僅列出兩大類錯誤)。
此外,它不會防止由於缺少裝配(在開發計算機上存在但未部署到生產中)而缺少參考問題。因此,良好的實踐仍然需要一個臨時環境(這也可以用於驗收測試),開發人員和測試人員將其視爲生產 - 只有訪問才能部署經過糾正的版本(無需直接修復),因此修復了所有問題從開發(和源代碼控制)開始。
另一個優勢是如果您必須部署到不受信任的環境(例如共享主機),則保護您的源代碼,因爲您只部署二進制文件,這使得第三方難以進行任何反向工程,在那裏你所有的.cs文件。
僅執行編譯就不會看到任何跨平臺問題。請查看this答案,它解釋了.NET如何在不同的體系結構上運行。
明白了你的意思,非常感謝。但是,在我的第二個問題上,如果在我的本地計算機中編譯它並將其部署到服務器後,有可能會出現錯誤?可能是因爲我的機器和服務器上的設置與cpu的數量/類型有所不同? – 2010-02-03 10:57:21
@mcxiand:請參閱解決第二個問題的最後兩段。 – Richard 2010-02-03 11:55:05
我看到它,但它沒有解決這個問題。我所說的「機器設置」不是邏輯錯誤或缺少裝配。 – 2010-02-03 12:10:44