我正在研究Visual Studio 2010中一個相當大的網站項目,我想知道爲什麼當我單獨測試網頁時(通過右鍵點擊.aspx
文件並選擇View Changes in Browser
),代碼中的更改會反映出來,即使那裏是代碼中的錯誤,以防止它編譯。這讓我困惑。我在Visual Studio中運行代碼時遇到了幾個錯誤。但是,如果我只是在瀏覽器中查看頁面,則會反映客戶端代碼或服務器端代碼中的任何更改。這對於客戶端代碼和標記是有意義的,但爲什麼它甚至會採用「有缺陷」的服務器端代碼?服務器端代碼是否需要編譯?感謝您的任何意見。我對這個主題有更多的問題,但我希望這個問題的答案能幫助我回答我的其他問題。即使代碼不能編譯,爲什麼代碼中的更改反映在ASP.NET網站中?
編輯:在錯誤的詳細信息我越來越
我已經學會從分配給這個項目的原開發商的更多細節。他告訴我,對於他爲項目構建的每個附加功能,他都複製並粘貼了原始項目目錄並重命名了該文件夾。例如,這是原來的項目目錄:
App_Code文件[文件夾]
的App_Data [文件夾]
的Web.config [文件]
...
他複製此每次他在網站上建立一個新的「模塊」。這當然不是我可以做到的方式,但現在已經完成了。現在,這個原始項目目錄有4個副本,這意味着有4個web.config
文件,4個App_Code
和App_Data
文件夾(以及App_Code
文件夾中的4個副本)。我得到的錯誤是這樣的:[server control] is not declared. It may be inaccessible due to its protection level
和[server control] is not a member of [partial class]
,以及其他幾個肯定會提醒智能感知的人,如果他們實際上是錯誤的話。看起來,出於某種原因,我的每個網頁上的服務器控件都沒有正確鏈接到相應的代碼隱藏文件。但智能感知不會突出這些錯誤或以任何方式承認它們。我嘗試構建項目時遇到這些錯誤。我試圖公開設計器代碼文件以嘗試手動修復這些錯誤,但我瞭解到,您無法在Website
項目中這樣做。我誠實地處於虧損狀態。
如果有人有任何想法如何解決這個問題,請讓我知道。如果我可以更清楚,請告訴我。我不能包含任何實際的代碼,但我可以嘗試給你一些例子,如果這會有所幫助。
這是另一個似乎與我的相似的問題。即使Visual Studio報告的錯誤數量也是一樣的。 variable is not declared it may be inaccessible due to its protection level
當您按F5時,您的Visual Studio的「配置管理器」是否設置爲編譯網站代碼文件?您在正在處理的文件或其他文件中提到的編譯錯誤是什麼? – laylarenee
我不相信服務器端代碼已更新。我的意思是,如果vb.net代碼不能編譯,那麼它不會編譯。沒有什麼能夠阻止你保存源代碼,但是如果代碼不能編譯,那麼它不可能被保存! - 當你注意到標記等被保存,但vb。網絡代碼也可以保存,並且肯定會。但是,如果這樣的服務器代碼不能編譯,那麼它不會編譯 - 這一事實與代碼沒有保存很少有關。我們討論的唯一編譯是vb.net代碼,因爲其他的都是運行時。 –
@ AlbertD.Kallal我完全同意。我認爲我在編譯代碼時遇到的錯誤本身就是錯誤的。我不知道爲什麼,但它說,我放在頁面上的所有服務器控件由於其保護級別而無法訪問,因此代碼無法編譯。但是,當我右鍵單擊並在瀏覽器中查看頁面時,它工作得很好。它只是拒絕運行。 – ic3man7019