2009年5月25日 星期一

兩者中都有型別的錯誤問題

兩者中都有型別的錯誤問題

在 VS2005 執行重建專案時,跑出一堆如下的錯誤訊息。


錯誤 13
d:\ItriWeb\ProjMng\ProjMng\ProjMngWeb\plan\dialog_EditOutComeType.aspx.cs(33): error CS0433: 
'c:\...\Temporary ASP.NET Files\projmngweb\70148ad8\4f87a4e0\App_Web_zc0mxaol.dll' 和 
'c:\...\Temporary ASP.NET Files\projmngweb\70148ad8\4f87a4e0\App_Web_3u5qu2vi.dll' 
兩者中都有型別 'MasterPage_Plan'
D:\ItriWeb\ProjMng\ProjMng\ProjMngWeb\codetbl\dialog_EditEmpnoList.aspx 1


google 了一下,看看有沒有跟我同樣遭遇的網友,
MSDN 找到一篇類似的文章,
自己也依照建議步驟,執行了

  1. 先執行 iisreset 把 IIS 重新啟動
  2. 關閉 Visual Studio 2005
  3. 把 c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 
    目錄下所有目錄刪除掉 

但還是無效。

回頭檢視自己專案,發現當初在設計時,
將 階段 A ,階段 B , 階段 C 的程式都分別放在三個資料夾下。
這三個階個別都有自己的 MasterPage。

VS2005 預設在 .aspx 頁面,當你取好檔案名稱後,會自動幫你產生對應的 .cs 檔。在 .cs 檔裡,
就會產生如下程式。


using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class MasterPage_Plan : System.Web.UI.MasterPage
{

}



MasterPage_Plan 這個類別名稱,也是 VS2005 幫我們取的。這就是問題的癥結。因為我三個階段都是
以資料夾來分的,每個資料夾又有自己的 MasterPage。而很幸運的,VS2005 幫我自動命名的類別名稱
都剛好一樣,所以造成命名的混淆。所以,當我手動將物件類別名稱改名,再重建專案之後,就正常了。

沒有留言:

張貼留言