2008-09-18 82 views
28

所以我在我正在設計的一個新網站上對我的App_Code文件夾有一個非常奇怪的問題。App_Code文件夾問題

我有一個App_Code文件夾中的名稱空間內的基本類。當我設置命名空間並從類中創建一個對象時,在IDE中一切正常。它提出了關於懸停的課程摘要,當你點擊「去定義」時,它會進入類文件。 而且它也很好地運作。

然而,當我加載網站到我的服務器,我當我訪問該頁面收到此錯誤信息:

第10行:使用System.Web.UI.WebControls;
第11行:using System.Web.UI.WebControls.WebParts;
第12行:使用XXXX.XXXX

編譯器錯誤信息: CS0246: 'XXXXXX' 找不到類型或命名空間名稱(是否缺少using指令或程序集引用?)

我知道類文件在那裏。任何人都知道發生了什麼事?

編輯:

約翰,是的,它是2.0網站。

+0

您是如何將網站發佈到服務器的? – Kev 2008-09-18 03:04:24

回答

18

如果您的應用程序是一個Web應用程序項目而不是網站項目,則代碼文件不應該在App_Code文件夾中(我知道這是愚蠢的設計)。創建一個名爲code的新文件夾或其他東西,並將它們放在那裏。

當我將一堆舊的.Net網站升級到應用程序項目時,它給我帶來了各種各樣的問題。

+0

值得注意的是,如果您只需將代碼文件拖出App_Code文件夾並將其放入新文件夾,則其構建操作屬性可能仍會設置爲內容,而其他應用程序將無法看到名稱空間,因爲其中一個答案提到下面設置這個編譯將對此進行排序,我認爲默認情況下在App_Code文件夾中創建的任何類文件都將設置爲構建action = content,即使在WAP項目中也是如此。 – JsonStatham 2014-07-09 09:19:17

+0

真是浪費時間!只有6個月的頭痛!感謝發佈! +1 http://stackoverflow.com/questions/26135251/catch-exceptions-in-asp-net-resulting-from-generic-handler-ashx-file/26136417#26136417 – MacGyver 2015-05-05 02:51:59

1

無論何時在引用程序集或代碼文件中發生編譯時錯誤,我都注意到IDE解析器和編譯器之間有時會出現不匹配。在這種情況下,IDE將正確識別類型併爲其提供完全支持,但由於編譯器無法創建引用對象,因此它會抱怨所引用的對象不存在。

現在我不想指責任何人 - 這只是猜測 - 但你應該確保你引用的代碼文件中沒有任何錯誤。

1

根據您發佈站點的方式,它不會在App_Code中查找,它會在Bin文件夾中查找包含該類的DLL。你是如何將你的網站轉移到服務器的?

2

這只是發生在我身上,解決方案是App_Code(和App_Data)沒有放在服務器的根目錄,而是放在一個包含其他所有內容的子文件夾中。必須在根!

63

您的類未編譯的問題您只需轉到App_Code文件夾中的任何類的屬性並將其「內容」屬性更改爲「編譯」即可解決此問題

0

對於那些遵循...我有同樣的問題,但它是因爲我在App_Code中命名一個類,'HTML'。花了很長時間才發現這只是一個名稱衝突,因爲編譯器對告訴我問題是什麼並不是很有幫助。