從 Visual Studio .NET 轉換 Web 專案
更新:2007 年 11 月
與 Visual Studio .NET 2002 和 Visual Studio .NET 2003 (在本主題中合稱為 Visual Studio .NET) 相比,Microsoft Visual Studio 2005 則以不同的方式管理網站專案和檔案。因此,當您要使用 Visual Studio 2005 來使用在 Visual Studio .NET 中建立的專案時,必須將該專案轉換為 Web 應用程式專案。當您在 Visual Studio 2005 中開啟 Visual Studio .NET 專案時,該格式轉換程序會自動進行,轉換精靈將轉換 Web 應用程式,並將為完成轉換所需的手動編輯工作量減到最小。本主題描述轉換程序,並指定 Visual Studio .NET 檔中所做的變更。如需 Web 應用程式專案的詳細資訊,請參閱 Web 應用程式專案概觀。
轉換程序的整體目標是讓您在 Visual Studio 2005 中開啟 Visual Studio .NET 專案、自動對其進行轉換,然後在功能不變的情況下執行它。轉換程序是單向的,也就是說,在將專案轉換成 Visual Studio 2005 格式後,便無法在 Visual Studio .NET 中使用它。雖然 Visual Studio 2005 會變更專案中的檔案,但您可以製作原始檔案的備份複本。您將仍能夠在 Visual Studio .NET 中將 Visual Studio 2005 檔案做為獨立檔案 (沒有如 IntelliSense 的特定功能) 開啟,但整體專案將會經過變更。如有必要,您可以從備份檔案還原 Visual Studio 專案。
![]() |
---|
在將現有專案轉換成 Visual Studio 2005 之前,請先檢查所有現有檔案,特別是如果您不是該專案的唯一修改者。尋找不熟悉的檔案。如此有助於避免將惡意程式碼匯入 Visual Studio。一般而言,除非需要執行管理工作,建議您以一般使用者執行 Visual Studio 2005,而不要以系統管理員執行。 |
本主題包含將 Web 專案轉換成 Visual Studio 2005 之下列方面的詳細資訊:
Visual Studio 2005 轉換程序
方案和專案
專案設定的轉換
轉換特定組態
資料元件
程式碼模組
Web 服務
轉換和原始程式碼控制
Visual Studio 2005 轉換程序
下列清單列出從 Visual Studio .NET 到 Visual Studio 2005 的基本 Web 專案轉換程序:
在 Visual Studio 2005 中,開啟現有的 Visual Studio .NET 網站。您可以開啟下列任意檔案和目錄:
方案檔 (.sln)
專案檔 (.vbproj、.csproj 或 .vjp)
網站的根目錄
如果找到了專案檔,則 Visual Studio 2005 將叫用 (Invoke) 轉換精靈以轉換 Web 專案。
注意事項:
在 Visual Studio 2005 中,Web 專案不再需要專案檔。會將 Web 專案資料夾中的所有檔案視為 Web 專案的一部分。
如需轉換精靈中相關步驟的詳細資訊,請參閱 HOW TO:將 Visual Studio .NET 專案轉換為 Visual Studio 2005。
Visual Studio 2005 會將 Web 應用程式從使用 ASP.NET 1.x 版轉換成使用 ASP.NET 2.0 版例如,ASP.NET Web 網頁和使用者控制項中的 CodeBehind 屬性會變更為新的 CodeFile 屬性 (Attribute)。如果檔案經過修改,則不會保留原始檔案的使用權限。新的檔案將具有授與使用者的讀取/寫入使用權限。如需對檔案所做之變更的詳細資訊,請參閱 Web 方案和專案檔的轉換。
獨立類別檔案會移至 App_Code 目錄。
不會涉及其他類型的檔案。其中包括圖形、HTML 檔等。另外,移轉過程會忽略應用程式之外的檔案。如此有助於防止惡意使用者藉由使用專案檔中的相對路徑存取應用程式之外的檔案。
會建立名為 ConversionReport.txt 的報告,並將其儲存在已轉換之 Web 專案的根目錄中。這個報告檔案會列出對 Web 專案所做的全部變更,其中可能包含資訊註解、警告,以及轉換期間發生的錯誤。如果您在轉換精靈中選取要在精靈完成後顯示轉換記錄檔的選項,將會在 Visual Studio 2005 中看到轉換報告。如需此報告格式的詳細資訊,請參閱移轉轉換報告格式。
![]() |
---|
如果您的專案使用原始檔控制,則在 Web 專案檔轉換成 Visual Studio 2005 之後,將不在原始檔控制之下。 |
方案和專案
如果在 Visual Studio 2005 中開啟方案檔,則 Visual Studio 會檢查 .sln 檔的內容,以判斷其包含的專案類型。Visual Web Developer 只會轉換 Web 應用程式 (Web 網頁和 Web 服務)。如果開啟包含其他類型專案 (例如 Windows Form 專案或主控台應用程式),則只會開啟和轉換 Web 專案。
如果開啟專案檔,則 Visual Studio 2005 會轉換該專案所參考的檔案。並不會轉換專案檔所在目錄中的其他檔案,因為這些檔案不是專案的一部分。這會導致建置錯誤。例如,若您擁有名為 Page1.aspx 的檔案,以及位於資料夾中卻不包含在專案檔中之名為 Page1.aspx.cs 的程式碼後置 (Code-Behind) 檔案,則轉換精靈不會轉換任何檔案。當您編譯時,因為會將 Page1.aspx 和 Page1.aspx.cs 檔都視為已轉換 Web 應用程式的一部分,所以會出現建置錯誤。
如果專案包含具有 Visual Studio 2005 中保留名稱的目錄 (例如 App_Data 或 App_GlobalResources),則 Visual Studio 2005 會將 "_old" 附加至現有目錄名稱 (例如 App_Data_old)。若要解析這個動作可能會導致的不完整參考,您必須手動變更程式碼,以參考新目錄,或將程式碼移至保留目錄 (例如 App_Data 或 App_GlobalResources)。如需詳細資訊,請參閱 ASP.NET 網站中的共用程式碼資料夾。
專案設定的轉換
因為 Visual Studio 2005 不保留專案檔中的設定,所以 Visual Studio .NET 專案的設定會轉換為 Web.config 檔,或者如果那些設定不再適用於 Visual Studio 2005,則不會進行轉換。
如需詳細資訊,請參閱 Web 專案設定轉換。
轉換特定組態
如果來源專案包含自訂組建組態,轉換程序便會提示您選取要轉換的組態。您的選擇會決定在轉換期間使用哪些專案設定,以其新格式設定網站。
如果來源專案只包含預設組建組態 (發行和偵錯),則轉換程序會使用偵錯組態中的設定。
資料元件
在 Visual Studio 2005 中,將資料存取加入 Web 網頁的模型已經變更。雖然 Visual Studio 2005 仍將 ADO.NET 元件用於資料存取,但 Visual Studio 2005 網頁會使用資料來源控制項控制資料存取,這些控制項會封裝資料連接物件、資料命令物件和資料集或資料讀取器。如需詳細資訊,請參閱資料來源控制項概觀和資料繫結運算式概觀。
使用資料集、資料命令和資料連接之明確執行個體 (instance) 的 Visual Studio .NET 模型在 Visual Studio 2005 中仍受到支援。當 Visual Studio 2005 轉換涉及資料存取的網頁或檔案時,現有的資料物件會進行完整的轉換,並會繼續在 Visual Studio 2005 中運作,就像在 Visual Studio .NET 中一樣。然而,您將無法使用 Visual Studio 2005 Web 網頁設計工具 ([設計] 檢視) 中的這些資料元件,原因是設計工具不支援這些物件。而您仍可以在 [原始碼] 檢視中使用它們。
資料集
在轉換期間,Visual Studio 2005 會轉換具型別資料集的結構描述 (.xsd 檔),並將其儲存在 App_Code 目錄中。不會轉換表示資料集類別的 .vb 或 .cs 檔 (由 Visual Studio 產生),因為網站可自動參考 .xsd 檔。
程式碼模組
獨立 (Stand-Alone) 程式碼模組 (.vb 和 .cs 檔) 照樣會移至 App_Code 目錄 (這不會套用到與 Web 網頁或其他 ASP.NET 檔相關聯的 .vb 和 .cs 檔)。所有標記為 Friend 或 Internal 的成員宣告都會變更為 Public。
對於 .vb 檔,轉換程序會加入 Namespace 陳述式 (Statement),指向 Web 專案的根目錄。此外,轉換程序會將尚未由 ASP.NET 自動匯入的任何類別加入 compiler 項目的 compilerOptions 屬性中。
Web 服務
Web 服務會轉換為與 Visual Studio .NET 中基本相同的格式。Web 服務的類別檔案 (.asmx.vb 或 .asmx.cs 檔) 會移至 App_Code 目錄。所有標記為 Friend 或 Internal 的成員都會變更為 Public。.asmx 檔中 @ Page 指示詞的 CodeBehind 屬性會更新為指向程式碼的新位置。
在 Visual Basic Web 服務中,會將 Namespace 陳述式加入 Web 專案中根命名空間 (Namespace) 所定義的類別檔案。轉換程序還會將 Imports 陳述式加入 Visual Basic 檔案,以便為 ASP.NET 預設尚未匯入的 Web 服務定義所有匯入。
轉換和原始程式碼控制
不會轉換原始程式碼登記 (Enlistment)。轉換之後,網站中的檔案不再處於原始檔控制下。
請參閱
工作
HOW TO:將 Visual Studio .NET 專案轉換為 Visual Studio 2005
逐步解說:將 Visual Studio .NET 2003 Web 專案轉換成 Visual Studio Web 應用程式專案