VS2003-2005 移植(續)

http://www.microsoft.com/china/msdn/library/webservices/asp.net/webproject.mspx?mfr=true

官方地址 
http://lgp.cnblogs.com/archive/2006/03/14/349620.html

個人BLOG(一)

http://lgp.cnblogs.com/archive/2006/03/14/349632.aspx

個人BLOG(二)

關於移植VS2003到VS2005項目(續)

在上一篇文章中,我譯的是Scouut的BLOG,由於水平有限有很多不足這處,和不準確的地方,還請指教。爲了讓你的項目移植工作更加順利,請查看官方的譯文,點此查看原文。

將 Web 項目從 Visual Studio .Net 2002/2003 轉換到 Visual Studio 2005 的分步指南

 

發佈日期: 12/30/2005 | 更新日期: 12/30/2005

Web Platform and Tools Team
Microsoft Corporation

摘要:在 Visual Studio 2005 中使用這些轉換 Web 項目的最佳做法,以避免升級過程中的陷阱。

*
本頁內容

轉換注意事項 轉換注意事項
第一部分:準備要轉換的 Visual Studio .Net 2002/2003 Web 項目 第一部分:準備要轉換的 Visual Studio .Net 2002/2003 Web 項目
第二部分:遷移您的 Web 項目 第二部分:遷移您的 Web 項目
第三部分:完成遷移的遷移後步驟 第三部分:完成遷移的遷移後步驟
第四部分:其他信息 第四部分:其他信息
小結 小結

轉換注意事項

在考慮將 Visual Studio .Net 2003 Web 項目轉換爲 Visual Studio 2005 格式的最佳做法之前,需要了解轉換的優點並確定轉換是否有意義。轉換的決定最終取決於具體的應用程序和情況。

如果您有一個正在使用的應用程序並且不常更新,則轉換它可能沒什麼意義,因爲這麼做的好處可能很有限。如果選擇不將應用程序轉換爲 Visual Studio 2005 語法,仍有兩種選擇可以考慮:

1.

在應用程序虛擬目錄的 IIS 設置中,保持將該應用程序映射到 ASP.Net 1.1(或 1.0)。繼續使用 Visual Studio .Net 2003 編輯應用程序代碼。

2.

在 IIS 設置中,將應用程序映射爲在 ASP.Net 2.0 下運行,但不要從 Visual Studio .Net 2003 中升級項目格式。在本例中,應用程序將受益於 ASP.Net 2.0 中的幾個安全性和性能增強功能,不過您需要繼續使用 Visual Studio .Net 2003 來編輯應用程序代碼。注:您可以在同一臺 IIS 服務器上同時運行 ASP.Net 1.1 和 ASP.Net 2.0 應用程序。

將 Web 應用程序項目轉換到 Visual Studio 2005 的主要優點是,能夠在現有應用程序中使用 ASP.Net 2.0 的許多新增功能(例如,母版頁等)。如果您希望增強一個現有的、用 Visual Studio .Net 2003 生成的 Web 應用程序,升級到 Visual Studio 2005 可能是最正確的決定。

對轉換 Web 項目的預期

對於相對簡單的 Web 項目(其中一個 Web 項目是 Visual Studio .Net 2003 解決方案中的唯一項目),轉換應該是一個相對自動的過程,需要很少的時間或問題解決方案。

如果要轉換的應用程序大小合理,並且一個 Visual Studio 解決方案中有幾個 Web 項目和其他項目(如類庫),則在遷移期間可能會遇到問題。做好準備用一天中較好的一段時間來完成整個過程。本文提供的步驟和指導可以幫助信息完備的用戶遷移大多數中等複雜程度的應用程序。

第一部分:準備要轉換的 Visual Studio .Net 2002/2003 Web 項目

在 Visual Studio .Net 2003 中配置應用程序

升級項目時,建議將 Visual Studio .Net 2002/2003 和 Visual Studio 2005 安裝在同一臺計算機上。

準備遷移 Visual Studio .Net 2003 Web 項目時,首先要確保該項目已配置並且在 Visual Studio .Net 2003 環境中正常運行。

如果要升級一個其解決方案中包括多個項目的應用程序,則確保在 isual Studio .Net 2003 內部生成和運行整個解決方案,然後才能進行遷移。即使要升級一個由單個 Web 項目表示的應用程序,還是要打開解決方案文件並在 Visual Studio .Net 2003 中測試和運行應用程序。爲此,請在 Visual Studio .Net 2003 中單擊 Open Solution

當解決方案在 Visual Studio .Net 2003 中打開時,單擊 Build 菜單上的 Build Solution,以確保應用程序編譯不會出錯。


圖 1. 生成解決方案

要運行此應用程序,請在 Visual Studio .Net 2003 中按 F5,並確保該應用程序正常運行,不會出錯。確保嘗試解決方案中所有 Web 項目中的頁,以確保 IIS 配置正確,可以支持應用程序頁。

將排除的文件移到 Web 項目外

另一個可以將潛在問題降到最少的措施是,將所有排除的文件從您的 Web 項目中刪除。如果在 Web 項目文件夾結構中存在任何不被解決方案中的任何 Web 項目引用的文件,則將這些文件移到一個單獨的位置,然後再遷移您的解決方案。

要幫助找到這些排除的文件,您可以使用解決方案資源管理器中的 Show All Files 按鈕。


圖 2. 顯示隱藏文件

檢查重複的項目文件

另一個可能產生遷移問題的項目結構問題是,IIS Web 應用程序的根文件夾中有多個項目文件。通常,給定的 IIS Web 應用程序的根文件夾中只有一個項目文件(*.vbproj 或 *.csproj),但有時存在多個項目文件。

IIS Web 應用程序的根文件夾中有多個項目文件,一個常見的原因是,如果您有一個包含多個 Web 項目的解決方案,則每個項目都在該 Web 應用程序中生成單獨的一組頁面。這種類型的解決方案結構使用戶可以在單個 Web 應用程序中將一組不同的頁面組成不同程序集。下面描述這種結構的一個示例。

如果在 IIS Web 應用程序的同一個根文件夾下有多個 Web 項目,只要每個項目不包括相同的一組文件,您在遷移期間就可能不會碰到任何問題。

如果在多個 Web 項目中引用了相同的文件集或子文件集,則這些普通文件將被遷移兩次並且出錯。這種情況通常發生在創建了現有項目文件的備份副本後,這樣會產生兩個具有一組完全相同文件的 Web 項目文件。如果在 Web 應用程序的根文件夾中有多個 Web 項目文件並且它們引用相同的文件集,則確保刪除該解決方案不使用的任何項目文件,以保證 Web 項目中的文件不會遷移兩次。

檢查包括相同 Web 項目的多個解決方案

推薦的過程是遷移整個 Visual Studio 解決方案,儘管可能有幾個解決方案代表正在遷移的應用程序。在這種情況下,您可能每次遷移一個解決方案,以便將整個應用程序轉換到 Visual Studio 2005。例如,如果兩個 Visual Studio 解決方案包括同一個 Web 項目並且嘗試對它們進行升級,則在遷移第二個解決方案時可能會出現錯誤。

爲了避免這種情況,請遷移第一個解決方案。遷移第二個解決方案時,從第二個解決方案中刪除所有作爲第一個解決方案一部分已進行遷移的 Web 項目。刪除已遷移的 Web 項目後,即可遷移第二個解決方案,不會產生任何問題。遷移第二個解決方案後,可以重新添加已遷移的 Web 項目。

刪除對 Web 項目的引用

如果您有一個包含多個項目的解決方案,確保不存在對解決方案中 Web 項目的任何引用也非常重要。這種模式的一個示例如下:如果有兩個 Web 項目(WebProjectA 和 WebProjectB),則 WebProjectB 引用 WebProjectA 以使用 WebProjectA 中的某些類。


圖 3. 刪除 Web 項目引用

解決方案遷移到 Visual Studio 2005 後,在 Visual Studio .Net 2003 中啓用的該模式將不再起作用。幸運的是,可以修改解決方案代碼來避免這種情況。爲此,可以通過將共享代碼移動到類庫,並從該類庫引用共享代碼來使用與上一部分類似的模型。

我們將使用 WebProjectA 和 WebProjectB 的簡單示例(它有一個對 WebProjectA 的項目引用)來闡述如何執行該操作:

1.

使用 File > Add Project > New Project 向解決方案添加相同語言(Visual Basic 或 C#)的新 ClassLibrary 項目。

2.

對於 WebProjectB 需要的、WebProjectA 中的任何類,將這些類複製到新的 Class Library 項目中。

3.

在 WebProjectB 中刪除對 WebProjectA 的引用

4.

在 WebProjectA 和 WebProjectB 中,向第 3 步中創建的 Class Library 項目添加一個新的“項目引用”。

5.

使用上面提供的指導重新構建解決方案後,進行檢查以確保在 Visual Studio .Net 2003 中乾淨地生成解決方案。完成解決方案生成後,運行整個應用程序以確保它仍具有全部功能。


圖 4. 遷移Web 項目後的解決方案

第二部分:遷移您的 Web 項目

運行 Visual Studio 2005 Migration Wizard

使用第一部分中的準則重新構建 Visual Studio .Net 2003 解決方案,並正確驗證整個解決方案的生成和運行後,現在該準備遷移到 Visual Studio 2005 了。

升級應用程序時,最佳做法是在已經使用 Visual Studio .Net 2003 進行測試和運行的計算機上進行遷移。Visual Studio 2005 完全可以與 Visual Studio .Net 2003 安裝在同一臺計算機上,因此您應該能夠在同一臺計算機上安裝 Visual Studio 2005,而不產生任何問題。

在同一臺計算機上安裝 Visual Studio 2005 後,通過打開代表應用程序的解決方案文件來升級應用程序。雖然有可能打開單個項目並遷移它們,但最省事的途徑是遷移整個解決方案。爲此,請在 Visual Studio 2005 中單擊 Open Project,並打開表示待升級應用程序的解決方案文件 (*.sln)。屏幕將顯示以下內容,指示可以開始遷移過程:


圖 5:轉換向導

爲了獲得最好的結果,請遵循此嚮導中提供的默認值以開始遷移。

備份應用程序

在該轉換向導顯示的步驟中,請密切關注創建解決方案的備份副本。重新檢查,確保選擇了 Yes 選項以創建備份,而且一定要注意備份位置,以便將來恢復 Visual Studio .Net 2002/2003 Web 應用程序的備份。


圖 6. 備份項目

第三部分:完成遷移的遷移後步驟

檢查轉換報告

完成 Conversion Wizard 後,會生成一份概括了遷移過程結果的 XML 報告。


圖 7. 轉換報告

一定要注意文檔窗口頂部 URL 字段中顯示的 XML 文件的位置。記下此位置,以便在關閉文件後可以再次引用 XML 轉換報告。除報告解決方案中所有項目的錯誤和警告的 XML 報告以外,每個 Web 項目都包含一個 ConversionReport.txt 文件,該文件具有與解決方案中的特定 Web 項目相同的信息。

XML 報告概括解決方案中每個項目的結果。摺疊報告時,您可以快速確定解決方案中的每個項目生成的警告和錯誤的數量。展開每一部分後,可以詳細查看特定項目的警告和錯誤。

對於最簡單的應用程序,轉換報告可能會顯示解決方案中的所有項目均成功遷移。在大多數具有中高等複雜性的真實情況中,更可能的結果是報告某些遷移錯誤和警告,並需要對它們進行調查。

以下部分介紹解決報告的問題時使用的最有效方法。

首先確保編譯類庫項目

通常,用來解決任何所報告問題的最好方法是修復解決方案中的每個項目,首先從共享組件開始,一次修復一個。

例如,如果解決方案中存在引用其他項目(如類庫項目)的 Web 項目,則先解決被引用項目中報告的所有問題。爲此,對於 Web 項目引用的每個項目,右擊各個項目,然後選擇 Build Project 以確保它進行編譯。


圖 8. 先生成類庫

如果進行轉換之前就在 Visual Studio .Net 2003 中對整個解決方案進行了乾淨的編譯,則在類庫項目中可能遇到的編譯錯誤是與保留關鍵字的衝突或框架中的新增類型,應該直接修復。

修復每個 Web 項目中的轉換錯誤和警告

修復瞭解決方案中類庫項目報告的任何錯誤後,下一步是修復每個 Web 項目中報告的錯誤和警告。對於每個 Web 項目,使用以下準則作爲解決所發現問題的方法:

1.

打開 Web.config 文件,並關閉批編譯。通過將編譯標記中的 batch=false 屬性設置成以下形式,可以實現該操作:。關閉批編譯可降低掩蓋應用程序中可能存在但未報告的編譯錯誤的可能。

2.

通過打開 Web 項目根文件夾中的 conversionreport.txt 文件來查看已報告的警告和錯誤。該文本文件包括遷移期間標題爲 ErrorsWarningsComments 的部分。查看 Errors 部分和 Warnings 部分,並嘗試使用以下方法解決問題(Comments 部分主要是提供信息,無需任何操作):

1.

如果在轉換文件中看到有關以前所轉換“被排除的”文件的任何警告,建議您先刪除這些文件,因爲它們會導致許多幹擾識別和修復應用程序中其他錯誤的編譯錯誤。

2.

爲了完成 conversionreport.txt 文件中報告的其他錯誤和警告的剩餘部分,請參閱“Common ASP.Net 2.0 Conversion Issues and Solutions”,以瞭解有關如何解決可能報告的每個警告和錯誤的具體指導。

3.

解決 conversionreport.txt 文件中的所有錯誤後,生成 Web 項目以解決可能存在的任何其他的編譯錯誤。爲此,請選擇您正在使用的 Web 站點項目的根節點,並在 Build 菜單上選擇 Build Web Site。請再次參閱“Common ASP.Net 2.0 Conversion Issues and Solutions”,以瞭解任何可能報告的特定編譯錯誤,並獲得有關如何糾正這些錯誤的指導。

4.

解決報告的問題且 Web 項目成功編譯後,還有兩個推薦的步驟:

1.

Web 項目中顯示的許多 *.resx 文件可能不再需要。通過與 aspx 文件或 ascx 文件相同的前綴名稱,可以輕鬆識別這些文件(例如,default.aspx.resx)。無論是否需要,Visual Studio .Net 2003 都爲每一頁創建資源文件。大多數情況下,這些文件爲空(或者包含應用程序不用的資源)並且可以被刪除。

2.

將 conversionreport.txt 重命名爲 conversionreport.Webinfo。因爲 conversionreport.txt 可以通過 Web 瀏覽器查看,並且可能會顯示有關您站點的敏感信息,所以建議執行該操作。通過將該文件重命名爲 conversionreport.Webinfo,默認情況下不能通過 Web 瀏覽器訪問它。

修復每個 Web 項目中的運行時問題

在 Visual Studio 2005 中對所有類庫和每個 Web 項目進行乾淨的編譯後,下一步就是運行整個應用程序並驗證功能。在您測試應用程序功能時,可能會遇到一些運行時異常,這些異常可能是由於違反了 ASP.Net 1.1 和 ASP.Net 2.0 之間引入的改變而產生的。“Common ASP.Net 2.0 Conversion Issues and Solutions”有助於識別這些錯誤並對其進行修復。

第四部分:其他信息

本文檔前面的部分介紹了將 Web 項目從 Visual Studio .Net 2003 轉換到 Visual Studio 2005 的整個分步過程。下列部分包括其他有用的信息:

HTML / XHTML 驗證錯誤

您可能會遇到 IDE 中的 ASPX 頁和 ASCX 頁處於打開狀態時報告的驗證錯誤。默認情況下,可能會報告這些額外錯誤,因爲 Visual Studio 2005 擁有基於 XHTML 1.1 標準的更嚴格的 HTML 驗證。

這些不是編譯錯誤,不會影響應用程序的功能。如果一個 ASPX 頁或 ASCX 頁處於打開狀態,則這些錯誤和編譯錯誤出現在同一個錯誤列表中,因此可以通過增加要查看的錯誤總數來增加複雜性。

可以執行一些操作來推遲處理這些驗證錯誤。

將 Visual Studio 2005 中的默認驗證改爲“Internet Explorer 6.0”。如果打開 ASPX 頁,則可以在工具欄中進行此操作。


圖 9. 設置驗證集

如果在應用程序中不一定要遵從 XHTML,則可以選擇將驗證設置爲“Internet Explorer 6.0”。如果您願意確保遵從 XHTML,則建議在轉換期間將該驗證設爲“Internet Explorer 6.0”,轉換完成後將該驗證切換爲 XHTML。

另一個竅門是,在選擇 Build Website 後,關閉所有打開的 ASPX 頁和 ASCX 頁。這樣,HTML 驗證錯誤就不會與報告的任何編譯錯誤混在一起。這有助於識別哪些錯誤與站點編譯有關,哪些錯誤僅僅是 HTML 中的驗證問題。

使用“Local IIS”選項卡或解決方案文件打開 Web 站點項目

本文,我們建議您打開解決方案文件 (*.sln) 以打開 Web 項目。這樣做可以確保在轉換後將 Visual Studio .Net 2003 Web 項目作爲 Visual Studio 2005 的“Local IIS”項目打開。

通過打開項目文件夾而不是解決方案文件,還可以在 Visual Studio 2005 中打開 Web 站點項目。如果您或小組中的其他人成員決定用這種方式打開項目,請確保使用 Visual Studio 2005 中的“Local IIS”選項卡打開任何轉換後的項目。


圖 10. 打開項目

小結

概括而言,Visual Studio 2005 和 ASP.NET 2.0 都提供了許多新增功能,這使得生成 Web 應用程序比以前更容易。您應該評估利用這些新功能對於將特定的 Visual Studio 2003 Web 項目轉換到 Visual Studio 2005 是否有意義。

當您確定有必要將您的 Web 應用程序升級到 Visual Studio 2005 時,遵循此白皮書中提供的指導並運行 Visual Studio 2005 中內置的轉換向導將使整個過程變得簡單且儘可能有效。

轉到原英文頁面


Microsoft Corporation

摘要:在 Visual Studio 2005 中使用這些轉換 Web 項目的最佳做法,以避免升級過程中的陷阱。

*
本頁內容
轉換注意事項 轉換注意事項
第一部分:準備要轉換的 Visual Studio .Net 2002/2003 Web 項目 第一部分:準備要轉換的 Visual Studio .Net 2002/2003 Web 項目
第二部分:遷移您的 Web 項目 第二部分:遷移您的 Web 項目
第三部分:完成遷移的遷移後步驟 第三部分:完成遷移的遷移後步驟
第四部分:其他信息 第四部分:其他信息
小結 小結

轉換注意事項

在考慮將 Visual Studio .Net 2003 Web 項目轉換爲 Visual Studio 2005 格式的最佳做法之前,需要了解轉換的優點並確定轉換是否有意義。轉換的決定最終取決於具體的應用程序和情況。

如果您有一個正在使用的應用程序並且不常更新,則轉換它可能沒什麼意義,因爲這麼做的好處可能很有限。如果選擇不將應用程序轉換爲 Visual Studio 2005 語法,仍有兩種選擇可以考慮:

1.

在應用程序虛擬目錄的 IIS 設置中,保持將該應用程序映射到 ASP.Net 1.1(或 1.0)。繼續使用 Visual Studio .Net 2003 編輯應用程序代碼。

2.

在 IIS 設置中,將應用程序映射爲在 ASP.Net 2.0 下運行,但不要從 Visual Studio .Net 2003 中升級項目格式。在本例中,應用程序將受益於 ASP.Net 2.0 中的幾個安全性和性能增強功能,不過您需要繼續使用 Visual Studio .Net 2003 來編輯應用程序代碼。注:您可以在同一臺 IIS 服務器上同時運行 ASP.Net 1.1 和 ASP.Net 2.0 應用程序。

將 Web 應用程序項目轉換到 Visual Studio 2005 的主要優點是,能夠在現有應用程序中使用 ASP.Net 2.0 的許多新增功能(例如,母版頁等)。如果您希望增強一個現有的、用 Visual Studio .Net 2003 生成的 Web 應用程序,升級到 Visual Studio 2005 可能是最正確的決定。

對轉換 Web 項目的預期

對於相對簡單的 Web 項目(其中一個 Web 項目是 Visual Studio .Net 2003 解決方案中的唯一項目),轉換應該是一個相對自動的過程,需要很少的時間或問題解決方案。

如果要轉換的應用程序大小合理,並且一個 Visual Studio 解決方案中有幾個 Web 項目和其他項目(如類庫),則在遷移期間可能會遇到問題。做好準備用一天中較好的一段時間來完成整個過程。本文提供的步驟和指導可以幫助信息完備的用戶遷移大多數中等複雜程度的應用程序。

第一部分:準備要轉換的 Visual Studio .Net 2002/2003 Web 項目

在 Visual Studio .Net 2003 中配置應用程序

升級項目時,建議將 Visual Studio .Net 2002/2003 和 Visual Studio 2005 安裝在同一臺計算機上。

準備遷移 Visual Studio .Net 2003 Web 項目時,首先要確保該項目已配置並且在 Visual Studio .Net 2003 環境中正常運行。

如果要升級一個其解決方案中包括多個項目的應用程序,則確保在 isual Studio .Net 2003 內部生成和運行整個解決方案,然後才能進行遷移。即使要升級一個由單個 Web 項目表示的應用程序,還是要打開解決方案文件並在 Visual Studio .Net 2003 中測試和運行應用程序。爲此,請在 Visual Studio .Net 2003 中單擊 Open Solution

當解決方案在 Visual Studio .Net 2003 中打開時,單擊 Build 菜單上的 Build Solution,以確保應用程序編譯不會出錯。


圖 1. 生成解決方案

要運行此應用程序,請在 Visual Studio .Net 2003 中按 F5,並確保該應用程序正常運行,不會出錯。確保嘗試解決方案中所有 Web 項目中的頁,以確保 IIS 配置正確,可以支持應用程序頁。

將排除的文件移到 Web 項目外

另一個可以將潛在問題降到最少的措施是,將所有排除的文件從您的 Web 項目中刪除。如果在 Web 項目文件夾結構中存在任何不被解決方案中的任何 Web 項目引用的文件,則將這些文件移到一個單獨的位置,然後再遷移您的解決方案。

要幫助找到這些排除的文件,您可以使用解決方案資源管理器中的 Show All Files 按鈕。


圖 2. 顯示隱藏文件

檢查重複的項目文件

另一個可能產生遷移問題的項目結構問題是,IIS Web 應用程序的根文件夾中有多個項目文件。通常,給定的 IIS Web 應用程序的根文件夾中只有一個項目文件(*.vbproj 或 *.csproj),但有時存在多個項目文件。

IIS Web 應用程序的根文件夾中有多個項目文件,一個常見的原因是,如果您有一個包含多個 Web 項目的解決方案,則每個項目都在該 Web 應用程序中生成單獨的一組頁面。這種類型的解決方案結構使用戶可以在單個 Web 應用程序中將一組不同的頁面組成不同程序集。下面描述這種結構的一個示例。

如果在 IIS Web 應用程序的同一個根文件夾下有多個 Web 項目,只要每個項目不包括相同的一組文件,您在遷移期間就可能不會碰到任何問題。

如果在多個 Web 項目中引用了相同的文件集或子文件集,則這些普通文件將被遷移兩次並且出錯。這種情況通常發生在創建了現有項目文件的備份副本後,這樣會產生兩個具有一組完全相同文件的 Web 項目文件。如果在 Web 應用程序的根文件夾中有多個 Web 項目文件並且它們引用相同的文件集,則確保刪除該解決方案不使用的任何項目文件,以保證 Web 項目中的文件不會遷移兩次。

檢查包括相同 Web 項目的多個解決方案

推薦的過程是遷移整個 Visual Studio 解決方案,儘管可能有幾個解決方案代表正在遷移的應用程序。在這種情況下,您可能每次遷移一個解決方案,以便將整個應用程序轉換到 Visual Studio 2005。例如,如果兩個 Visual Studio 解決方案包括同一個 Web 項目並且嘗試對它們進行升級,則在遷移第二個解決方案時可能會出現錯誤。

爲了避免這種情況,請遷移第一個解決方案。遷移第二個解決方案時,從第二個解決方案中刪除所有作爲第一個解決方案一部分已進行遷移的 Web 項目。刪除已遷移的 Web 項目後,即可遷移第二個解決方案,不會產生任何問題。遷移第二個解決方案後,可以重新添加已遷移的 Web 項目。

刪除對 Web 項目的引用

如果您有一個包含多個項目的解決方案,確保不存在對解決方案中 Web 項目的任何引用也非常重要。這種模式的一個示例如下:如果有兩個 Web 項目(WebProjectA 和 WebProjectB),則 WebProjectB 引用 WebProjectA 以使用 WebProjectA 中的某些類。


圖 3. 刪除 Web 項目引用

解決方案遷移到 Visual Studio 2005 後,在 Visual Studio .Net 2003 中啓用的該模式將不再起作用。幸運的是,可以修改解決方案代碼來避免這種情況。爲此,可以通過將共享代碼移動到類庫,並從該類庫引用共享代碼來使用與上一部分類似的模型。

我們將使用 WebProjectA 和 WebProjectB 的簡單示例(它有一個對 WebProjectA 的項目引用)來闡述如何執行該操作:

1.

使用 File > Add Project > New Project 向解決方案添加相同語言(Visual Basic 或 C#)的新 ClassLibrary 項目。

2.

對於 WebProjectB 需要的、WebProjectA 中的任何類,將這些類複製到新的 Class Library 項目中。

3.

在 WebProjectB 中刪除對 WebProjectA 的引用

4.

在 WebProjectA 和 WebProjectB 中,向第 3 步中創建的 Class Library 項目添加一個新的“項目引用”。

5.

使用上面提供的指導重新構建解決方案後,進行檢查以確保在 Visual Studio .Net 2003 中乾淨地生成解決方案。完成解決方案生成後,運行整個應用程序以確保它仍具有全部功能。


圖 4. 遷移Web 項目後的解決方案

第二部分:遷移您的 Web 項目

運行 Visual Studio 2005 Migration Wizard

使用第一部分中的準則重新構建 Visual Studio .Net 2003 解決方案,並正確驗證整個解決方案的生成和運行後,現在該準備遷移到 Visual Studio 2005 了。

升級應用程序時,最佳做法是在已經使用 Visual Studio .Net 2003 進行測試和運行的計算機上進行遷移。Visual Studio 2005 完全可以與 Visual Studio .Net 2003 安裝在同一臺計算機上,因此您應該能夠在同一臺計算機上安裝 Visual Studio 2005,而不產生任何問題。

在同一臺計算機上安裝 Visual Studio 2005 後,通過打開代表應用程序的解決方案文件來升級應用程序。雖然有可能打開單個項目並遷移它們,但最省事的途徑是遷移整個解決方案。爲此,請在 Visual Studio 2005 中單擊 Open Project,並打開表示待升級應用程序的解決方案文件 (*.sln)。屏幕將顯示以下內容,指示可以開始遷移過程:


圖 5:轉換向導

爲了獲得最好的結果,請遵循此嚮導中提供的默認值以開始遷移。

備份應用程序

在該轉換向導顯示的步驟中,請密切關注創建解決方案的備份副本。重新檢查,確保選擇了 Yes 選項以創建備份,而且一定要注意備份位置,以便將來恢復 Visual Studio .Net 2002/2003 Web 應用程序的備份。


圖 6. 備份項目

第三部分:完成遷移的遷移後步驟

檢查轉換報告

完成 Conversion Wizard 後,會生成一份概括了遷移過程結果的 XML 報告。


圖 7. 轉換報告

一定要注意文檔窗口頂部 URL 字段中顯示的 XML 文件的位置。記下此位置,以便在關閉文件後可以再次引用 XML 轉換報告。除報告解決方案中所有項目的錯誤和警告的 XML 報告以外,每個 Web 項目都包含一個 ConversionReport.txt 文件,該文件具有與解決方案中的特定 Web 項目相同的信息。

XML 報告概括解決方案中每個項目的結果。摺疊報告時,您可以快速確定解決方案中的每個項目生成的警告和錯誤的數量。展開每一部分後,可以詳細查看特定項目的警告和錯誤。

對於最簡單的應用程序,轉換報告可能會顯示解決方案中的所有項目均成功遷移。在大多數具有中高等複雜性的真實情況中,更可能的結果是報告某些遷移錯誤和警告,並需要對它們進行調查。

以下部分介紹解決報告的問題時使用的最有效方法。

首先確保編譯類庫項目

通常,用來解決任何所報告問題的最好方法是修復解決方案中的每個項目,首先從共享組件開始,一次修復一個。

例如,如果解決方案中存在引用其他項目(如類庫項目)的 Web 項目,則先解決被引用項目中報告的所有問題。爲此,對於 Web 項目引用的每個項目,右擊各個項目,然後選擇 Build Project 以確保它進行編譯。


圖 8. 先生成類庫

如果進行轉換之前就在 Visual Studio .Net 2003 中對整個解決方案進行了乾淨的編譯,則在類庫項目中可能遇到的編譯錯誤是與保留關鍵字的衝突或框架中的新增類型,應該直接修復。

修復每個 Web 項目中的轉換錯誤和警告

修復瞭解決方案中類庫項目報告的任何錯誤後,下一步是修復每個 Web 項目中報告的錯誤和警告。對於每個 Web 項目,使用以下準則作爲解決所發現問題的方法:

1.

打開 Web.config 文件,並關閉批編譯。通過將編譯標記中的 batch=false 屬性設置成以下形式,可以實現該操作:。關閉批編譯可降低掩蓋應用程序中可能存在但未報告的編譯錯誤的可能。

2.

通過打開 Web 項目根文件夾中的 conversionreport.txt 文件來查看已報告的警告和錯誤。該文本文件包括遷移期間標題爲 ErrorsWarningsComments 的部分。查看 Errors 部分和 Warnings 部分,並嘗試使用以下方法解決問題(Comments 部分主要是提供信息,無需任何操作):

1.

如果在轉換文件中看到有關以前所轉換“被排除的”文件的任何警告,建議您先刪除這些文件,因爲它們會導致許多幹擾識別和修復應用程序中其他錯誤的編譯錯誤。

2.

爲了完成 conversionreport.txt 文件中報告的其他錯誤和警告的剩餘部分,請參閱“Common ASP.Net 2.0 Conversion Issues and Solutions”,以瞭解有關如何解決可能報告的每個警告和錯誤的具體指導。

3.

解決 conversionreport.txt 文件中的所有錯誤後,生成 Web 項目以解決可能存在的任何其他的編譯錯誤。爲此,請選擇您正在使用的 Web 站點項目的根節點,並在 Build 菜單上選擇 Build Web Site。請再次參閱“Common ASP.Net 2.0 Conversion Issues and Solutions”,以瞭解任何可能報告的特定編譯錯誤,並獲得有關如何糾正這些錯誤的指導。

4.

解決報告的問題且 Web 項目成功編譯後,還有兩個推薦的步驟:

1.

Web 項目中顯示的許多 *.resx 文件可能不再需要。通過與 aspx 文件或 ascx 文件相同的前綴名稱,可以輕鬆識別這些文件(例如,default.aspx.resx)。無論是否需要,Visual Studio .Net 2003 都爲每一頁創建資源文件。大多數情況下,這些文件爲空(或者包含應用程序不用的資源)並且可以被刪除。

2.

將 conversionreport.txt 重命名爲 conversionreport.Webinfo。因爲 conversionreport.txt 可以通過 Web 瀏覽器查看,並且可能會顯示有關您站點的敏感信息,所以建議執行該操作。通過將該文件重命名爲 conversionreport.Webinfo,默認情況下不能通過 Web 瀏覽器訪問它。

修復每個 Web 項目中的運行時問題

在 Visual Studio 2005 中對所有類庫和每個 Web 項目進行乾淨的編譯後,下一步就是運行整個應用程序並驗證功能。在您測試應用程序功能時,可能會遇到一些運行時異常,這些異常可能是由於違反了 ASP.Net 1.1 和 ASP.Net 2.0 之間引入的改變而產生的。“Common ASP.Net 2.0 Conversion Issues and Solutions”有助於識別這些錯誤並對其進行修復。

第四部分:其他信息

本文檔前面的部分介紹了將 Web 項目從 Visual Studio .Net 2003 轉換到 Visual Studio 2005 的整個分步過程。下列部分包括其他有用的信息:

HTML / XHTML 驗證錯誤

您可能會遇到 IDE 中的 ASPX 頁和 ASCX 頁處於打開狀態時報告的驗證錯誤。默認情況下,可能會報告這些額外錯誤,因爲 Visual Studio 2005 擁有基於 XHTML 1.1 標準的更嚴格的 HTML 驗證。

這些不是編譯錯誤,不會影響應用程序的功能。如果一個 ASPX 頁或 ASCX 頁處於打開狀態,則這些錯誤和編譯錯誤出現在同一個錯誤列表中,因此可以通過增加要查看的錯誤總數來增加複雜性。

可以執行一些操作來推遲處理這些驗證錯誤。

將 Visual Studio 2005 中的默認驗證改爲“Internet Explorer 6.0”。如果打開 ASPX 頁,則可以在工具欄中進行此操作。


圖 9. 設置驗證集

如果在應用程序中不一定要遵從 XHTML,則可以選擇將驗證設置爲“Internet Explorer 6.0”。如果您願意確保遵從 XHTML,則建議在轉換期間將該驗證設爲“Internet Explorer 6.0”,轉換完成後將該驗證切換爲 XHTML。

另一個竅門是,在選擇 Build Website 後,關閉所有打開的 ASPX 頁和 ASCX 頁。這樣,HTML 驗證錯誤就不會與報告的任何編譯錯誤混在一起。這有助於識別哪些錯誤與站點編譯有關,哪些錯誤僅僅是 HTML 中的驗證問題。

使用“Local IIS”選項卡或解決方案文件打開 Web 站點項目

本文,我們建議您打開解決方案文件 (*.sln) 以打開 Web 項目。這樣做可以確保在轉換後將 Visual Studio .Net 2003 Web 項目作爲 Visual Studio 2005 的“Local IIS”項目打開。

通過打開項目文件夾而不是解決方案文件,還可以在 Visual Studio 2005 中打開 Web 站點項目。如果您或小組中的其他人成員決定用這種方式打開項目,請確保使用 Visual Studio 2005 中的“Local IIS”選項卡打開任何轉換後的項目。


圖 10. 打開項目

小結

概括而言,Visual Studio 2005 和 ASP.NET 2.0 都提供了許多新增功能,這使得生成 Web 應用程序比以前更容易。您應該評估利用這些新功能對於將特定的 Visual Studio 2003 Web 項目轉換到 Visual Studio 2005 是否有意義。

當您確定有必要將您的 Web 應用程序升級到 Visual Studio 2005 時,遵循此白皮書中提供的指導並運行 Visual Studio 2005 中內置的轉換向導將使整個過程變得簡單且儘可能有效。

轉到原英文頁面

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章