新找了一個工作,領導給我安排的工作就是學習原來用vs2003開發的那個項目(單位都是Delphi開發的,但是山東客戶要求網絡版,所以這個項目是外包的)。
由於電腦中沒有安裝vs2003,只有通過vs2005轉化嚮導進行轉化,然後通過vs2005進行調試了!唉,外包的項目而且什麼文檔也沒有,看代碼真累啊!算了也不給大家訴苦了,反正IT民工都這樣了!
下面就介紹一下我在轉化過程中遇到的問題以及解決方案吧,希望對大家有所幫助!
一、 由於vs2003中支持namespace,而在vs2005中默認情況下沒有namespace(但是可以自己添加)。如果vs2003項目中有namespace的時候在轉化過程會出現問題。
錯誤信息:
錯誤 1 “ASP.troop_modroom_aspx.GetTypeHashCode()”: 沒有找到適合的方法來重寫 c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/sch/56090b09/567cfd90/App_Web_cj4s_uha.8.cs 579
錯誤 2 “ASP.troop_modroom_aspx.ProcessRequest(System.Web.HttpContext)”: 沒有找到適合的方法來重寫 c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/sch/56090b09/567cfd90/App_Web_cj4s_uha.8.cs 583
錯誤 3 “ASP.troop_modroom_aspx”不會實現接口成員“System.Web.IHttpHandler.IsReusable” c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/sch/56090b09/567cfd90/App_Web_cj4s_uha.8.cs 173
錯誤 4 請確保此代碼文件中定義的類與“inherits”屬性匹配,並且該類擴展的基類(例如 Page 或 UserControl)是正確的。 D: /SCH/Troop/ModRoom.aspx.cs 17 33 D:/ SCH/
解決方案:
1. 檢查
<%@ Page language="c#" CodeFile="ModRoom.aspx.cs" AutoEventWireup="true" Inherits="SchoolManage.Info.ModRoom" %>
2. 注意:CodeFile屬性,在vs2003中是CodeBehind,要改成CodeFile;
3. Inherits屬性,值爲namespace_name+class_name;
4. 2.將aspx.cs文件中的class前面增加partial修飾符。
二、 項目中有很多是原來的開發人員增加的屬性,還有一些不符合驗證的屬性值,在編譯的時候經常會報錯
解決方案:
打開vs2005,菜單“工具”----“選項”----“文本編輯器”----“HTML”----“驗證”-----右側的“驗證錯誤”不勾選。
三、提示“控件已經聲明”,這個錯誤可以在vs2005的aspx.cs頁面中將控件聲明刪除即可解決問題。