[message] ##check##大概描述一下狀況,以後再補完 狀況:App_Code裡的東西一直被VS反映"***兩者中都有型別***" 目前找到的解說如下: ….略………..原內容有稍加刪除……….. 關於WebApplication ...
- [message]
- ##check##大概描述一下狀況,以後再補完
- 狀況:App_Code裡的東西一直被VS反映"***兩者中都有型別***"
目前找到的解說如下:
….略………..原內容有稍加刪除………..
關於WebApplication + App_Code的問題,在WebApplication的模式下,最終每個資料夾都會被Compile進dll裡面,由於不是動態編譯,App_Code這個資料夾,也會被當做一般的資料夾,裡面的檔案終將被Compile進dll中。
假設專案名為TestAppCode,我們在App_Code資料夾裡有一個類別,Namespace為HelloCode,Class名為TC並繼承自System.Web.UI.WebControls.Panel,我們在WebConfig寫<addgPrefix="PS" namespace="HelloCode" />
1。WebApp執行的時候,WebApp將在TestAppCode.dll中找到HelloCode.TC.
2。又ASP.NET網站在執行的時候,它又發現你有名為App_Code的資料夾,又進行動態編譯.
所以你的網站有了兩個HelloCode.TC類別,一個在TestAppCode.dll中,一個在你的App_Code資料夾中。
有想到幾個解決方法,但都不盡善盡美,
1:把App_Code中的.cs檔案,設定為不要編譯(Build Action:none)
(但這樣在VS中就無法得到設計時期的支援)
2:在把整個網站Compile,Publish之後,把App_Code資料夾刪除
(應該不會想這麼做吧…太麻煩了)
3:不要用App_Code資料夾,使用自定名稱的資料夾來放Code,
並在最後將WebConfig設定為<add tagPrefix="PS" namespace="HelloCode" assembly="TestAppCode" />
例如在根目錄開一個名為HelloCode的資料夾,裡面放置TC.cs,在網站Compile之後,這個資料夾就再不會被動態編譯,並且在網站發佈(Publish)之後,這個資料夾並不會被拷貝到輸出目錄。
….略………………….
資料來源:藍色小舖
解說作者:RazgrizLee
網址:http://www.blueshop.com.tw/board/show.asp?subcde=BRD20090528185150RVJ
相關文章:
註釋