2012-11-20 41 views
2

我已將C#ASP網站的內容移至C#ASP Web應用程序。我這樣做,所以我可以做一些事情,比如添加預構建事件。在VS2008 Web應用程序中無法識別的自定義名稱空間

除了一些我在App_Code文件夾中的.cs文件中聲明的命名空間沒有被識別,一切似乎都正常工作。

我得到的編譯錯誤,如

The type or namespace name 'nsAppGlobal' could not be found (are you missing a using directive or an assembly reference?)

我有一個cs文件這非常清楚地聲明瞭這個命名空間。由於某些原因,Intellisense和編譯器都無法看到它。

我聽說我可以通過將我的名稱空間構建到dll庫中,然後在網絡應用程序中包含來解決此問題。這聽起來很愚蠢 - 因爲我怎麼編輯那些代碼呢?我將不得不在另一個項目中編輯並重建dll?

有沒有人遇到過這個問題?在Web應用程序項目中使用名稱空間的最佳策略是什麼?

+0

您是否涉及多個項目?你是否將你的文件包含在你的項目中? –

+0

沒有這一切都在一個項目。我從其他聲明自己命名空間的項目中提取了幾個.cs文件。當項目是一個網站而不是一個Web應用程序時,這不是一個問題 –

回答

3

我注意到這種行爲,當migrating a web site to a web application:它似乎App_Code目錄由於其「神奇」名稱而被忽略。

解決方案很簡單:只需重命名App_Code目錄即可。

+0

這聽起來像我正在尋找的解決方案!我會在早上嘗試這個。一個問題 - 我將App_code從什麼重命名爲什麼? –

+0

從「App_Code」到「Code」,或者任何你喜歡的名字...... – devio

+0

嗯,這似乎並沒有奏效。它不會讓我重命名,所以我創建了一個名爲'Code'的新文件夾,並將所有'.cs'文件放在那裏。同樣的錯誤。另外我注意到'System.Data'沒有被識別...哦,親愛的:( –

2

有時在將網站轉換爲Web應用程序時,Global.asax名稱空間被損壞。 Global.asax.cs將具有正確的名稱空間,但Global.asax不會。

<%@ Application Codebehind="Global.asax.cs" Inherits="WILD.MvcApplication" Language="C#" %> 

默認情況下,當您打開Global.asax時,它會打開關聯的C#文件。你想查看標記。確保屬性「Inherits」匹配Global.asax.cs名稱空間。

+0

嗨,我目前不在我的機器上,但這聽起來很有希望,所以你得到了+1。我沒有使用實際的轉換工具或任何東西來轉換它,我基本上拖動整個網頁項目文件到Web應用程序。可能是一個愚蠢的做法,但我並不真正瞭解網站和應用程序之間的差異。很確定我很快就會學習! –

相關問題