.NET Framework 的目標網站

更新:2007 年 11 月

Visual Studio 2008 的多目標功能可讓您指定網站或 Web 服務的 .NET Framework 目標版本。因此,您可以用 Visual Studio 2008 來修改現有和新建的 Visual Studio 2008 Web 專案,不會無意間在專案中建立新的組件相依性。Visual Studio 2008 可讓您建置的網站可以部署到 .NET Framework 2.0、.NET Framework 3.0 版或 .NET Framework 3.5 版 Service Pack 1。它會根據您為專案指定的 .NET Framework 版本,來確保您的專案只使用該版本可用的功能。

本主題包含與下列項目相關的資訊:

案例

Visual Studio 2008 的多目標功能可讓您可以指定網站要以哪一個 .NET Framework 特定版本為目標。例如,您想建立一個 ASP.NET Web 應用程式,它要能使用支援 Windows Communication Foundation (WCF) 的安全性功能。如果應用程式不需要 Language-Integrated Query (LINQ) 的支援,您就可以 .NET Framework 3.0 版為目標。

回到頁首

多目標功能

Visual Studio 2008 的多目標功能包括以下:

  • 您可以在建立新網站時,選擇 .NET Framework 版本。

  • 您開啟網站時,Visual Studio 會偵測 .NET Framework 版本。

    當 Visual Studio 偵測出網站是使用 .NET Framework 2.0 版時,Visual Studio 會讓您選擇是否要以 .NET Framework 3.5 版 Service Pack 1為目標。

  • Visual Studio 會篩選掉目前 .NET Framework 目標版本不適用的功能。包括功能表選項、[工具箱] 物件、編譯處理序及組件參考。

  • 您可以用專案屬性來選擇 .NET Framework 目標版本。

.NET Framework 程式庫

Visual Studio 可讓您以下列 .NET Framework 版本為目標:

  • .NET Framework version 2.0 The version of the .NET Framework that is included with Microsoft Visual Studio 2005.

  • **.NET Framework version 3.0 ** 此 .NET Framework 版本隨附於 作業系統。此 .NET Framework 版本支援 Windows Presentation Foundation (WPF)、Windows Communication Foundation (WCF)、Windows CardSpace 及 Windows Workflow Foundation。

  • **.NET Framework version 3.5 **此 .NET Framework 版本是 Visual Studio 的預設版本。此 .NET Framework 版本支援 ASP.NET AJAX 及 Language-Integrated Query (LINQ)。

回到頁首

背景

Visual Studio 2008 可讓您在單一開發環境中,以多個 .NET Framework 版本為目標。Visual Studio 2005 及之前的版本都只能以一個 .NET Framework 版本為目標。開發人員如果要為不同的 .NET Framework 版本撰寫應用程式,就得重覆執行多個 Visual Studio 版本。執行階段相依性及回溯相容性是與多目標相關的重要考量。

在 Visual Studio 2008 中,您不必變更程式碼,就可以開啟 Visual Studio 2005 網站。不過,網站的專案檔會因而升級。根據預設,Visual Studio 2005 專案仍會以 .NET Framework 2.0 為目標。但您可以切換現有專案的目標 Framework 版本,以便運用 .NET Framework 較新版本的新功能。

最新版的 .NET Framework 功能包含在新組件中。.NET Framework 舊版的組件沒有改變。

建立新網站

當您建立新網站時,您可以指定專案的 .NET Framework 目標版本。新的 Visual Studio 專案會自動以 .NET Framework 最新版本為目標。

以下程序說明如何建立以特定的 .NET Framework 版本為目標而建立的新網站。

建立新網站並指定 .NET Framework 目標

  1. 在 Visual Studio 的 [檔案] 功能表中,按一下 [新網站]。

    [新網站] 對話方塊便會顯示。

  2. 從架構版本清單中選取專案的 .NET Framework 目標版本。

    對話方塊會根據您選擇的架構來顯示範本清單。

  3. 在 [Visual Studio 安裝的範本] 下方,選取網站型別,如 [ASP.NET 網站]。

  4. 按一下 [確定]。

開啟現有的 Visual Studio 2005 網站

您可以用 Visual Studio 2008 來開啟用舊版 Visual Studio 建立的專案或網站,而不必將專案升級成較新的 .NET Framework 版本。您可以編輯、編譯、建置、偵錯並儲存 Visual Studio 2005 專案。

您可以開啟現有的 Visual Studio 2005 專案,不必將目標改成較新的 .NET Framework 版本。您第一次用 Visual Studio 2008 來開啟 Web 應用程式時,會提示您是否要把網站的目標改成 .NET Framework 3.5 版 Service Pack 1。如果您不想變更目標 Framework,請按一下 []。

注意事項:

開啟遠端網站時,Visual Studio 2008 不會試圖根據遠端伺服器安裝的 .NET Framework 版本來篩選可用的版本。

把現有網站的 .NET Framework 目標版本升級或降級

以下程序說明如何變更現有專案的 .NET Framework 版本,改成以更新或更舊的版本為目標版本。

把 .NET Framework 升級到較新的版本,就能使用更多的新功能。把 Web 應用程式降級到不同的 .NET Framework 版本,則可以不同 Web 伺服器上安裝的 .NET Framework 版本為目標。

將專案降級時,請確定專案能在舊版 .NET Framework 中運作。有時您可能得對專案做一些手動變更。

注意事項:

每一個 .NET Framework 版本有不同的功能。不過,變更 Web 應用程式的 .NET Framework 版本時,最大差別是 Web.config 檔。

把網站的 .NET Framework 版本升級或降級

  1. 在 Visual Studio 2008 中開啟您要升級或降級的網站。

  2. 在 [方案總管] 中,以滑鼠右鍵按一下專案名稱,然後按一下 [屬性頁面]。

    注意事項:

    如果是 Web 應用程式專案,請在 [方案總管] 中以滑鼠右鍵按一下專案,然後按一下 [屬性]。

  3. 按一下 [專案屬性] 頁面上的 [建置] 索引標籤。

    注意事項:

    如果是使用 C# 的 Web 應用程式專案,請按一下 [專案屬性] 頁面的 [應用程式] 索引標籤。如果是使用 Visual Basic 的 Web 應用程式專案,請按一下 [專案屬性] 頁面的 [編譯器] 索引標籤,然後按一下 [進階編譯器設定]。

  4. 在 .NET Framework 下拉式清單中,選取目標版本號碼。

    注意事項:

    如果是 Web 應用程式專案,專案會卸載,然後重新載入到 Visual Studio。

  5. 如果要把專案降級,請執行下列動作:

    1. 看哪些元件不屬於 .NET Framework 目標版本,手動移除這些元件的參考。

      注意事項:

      程式碼中可能會出現參考錯誤,這是因為有些組件參考無法在舊版 .NET Framework 中運作。在這種情況下,您必須手動取代任何遺漏的組件參考。

    2. 專案中如果有服務參考,以滑鼠右鍵按一下服務參考,然後按一下 [移除],移除這些服務參考。

組件參考

Visual Studio 可協助您在將參考加入至 Web 專案時,不會自動升級成不同的 .NET Framework 版本。

把參考加入至組件時,[加入參考] 對話方塊只會顯示屬於 .NET Framework 目標版本的系統組件。如此可避免您無意間把參考加入至不在目標 Framework 中的組件。

注意事項:

.NET Framework 目標版本若比目前專案的版本新,則您可以手動編輯專案檔案來包含屬於目標版本的參考。但在編譯時,系統會發出警告。

您可以把使用者組件參考加入至您的專案,如此一來,專案就會參考不屬於目標 Framework 的系統組件。在這種情況下,Visual Studio 會顯示警告。如果您忽略警告,則在建置階段時,會再次發出警告。

回到頁首

.NET Framework 目標版本不同時的專案差異

本節旨在說明 Web 專案的 .NET Framework 目標版本不同時的專案差異。編譯、組件支援及功能支援等都有不同。Visual Studio 裡有些功能不支援多目標,如 IntelliSense 與部署。

對於新網站,您選取的 .NET Framework 版本會決定下列項目:

  • 預設要參考的組件。

  • 依預設,ASP.NET 網頁及類別檔包含的命名空間。

  • 執行階段及設計階段時,ASP.NET 在動態編譯所用的編譯器版本。

  • Visual Studio 中可以選取的選項,如物件、新項目、組件參考、Web 參考和服務參考。

開啟現有網站時,Visual Studio 會試圖偵測 .NET Framework 版本並設定專案的 .NET Framework 目標版本。Visual Studio 會根據以下準則來決定 .NET Framework 版本:

  • 如果有 .NET Framework 3.0 組件的參考,Web 專案至少會以 .NET Framework 3.0 為目標。(視其他條件而定,也可能以更新版本為目標)。

  • Web.config 檔內的 compilers 區段如果對應到編譯器版本 "v3.5" (C# 或 Visual Basic),網站會以 .NET Framework 3.5 為目標。

  • 如果有 .NET Framework 3.5 組件的參考,網站會以 .NET Framework 3.5 為目標。

  • 網站若不符合上述條件,則網站會以 .NET Framework 2.0 版為目標。

    注意事項:

    如果專案之前開啟過,或是以 Visual Studio 建立,則目標版本號碼已儲存在專案裡。在這種情況下,Visual Studio 會使用已儲存的版本號碼。不會試圖偵測儲存的版本號碼與從參考及編譯器偵測到的版本是否不符。

選取專案範本

Visual Studio 只會顯示目前 .NET Framework 目標版本適用的專案範本。當您建立新網站時,Visual Studio 會自動以最高的 .NET Framework 版本號碼為目標,以便提供最新功能的存取權。另外,您也可以在建立專案時選取目標版本。

所選取的 .NET Framework 版本會決定新網站之 Web.config 檔的預設內容。預設參考組件指定於 assemblies 區段內,編譯器版本則在 compilers 區段內指定。

加入工具箱裡的物件

Visual Studio 會停用 [工具箱] 內目前 .NET Framework 目標版本不適用的項目。[工具箱] 多目標行為會假設特定 .NET Framework 版本的元件可以用於該版或更新版本的專案。例如,.NET Framework 2.0 控制項可以用於 .NET Framework 2.0、.NET Framework 3.0 版或 .NET Framework 3.5 版 Service Pack 1。

加入新項目

Visual Studio 會根據目前 .NET Framework 目標版本來篩選 [加入新項目] 對話方塊中要顯示的項目。

注意事項:

將現有項目加入至專案時,Visual Studio 不會去驗證該項目的參考及匯入是否符合目前 .NET Framework 目標版本。也不會產生警告。但如果專案無法解析這些參考,則專案在建置及執行階段時,會發出錯誤訊息。

加入組件參考

開啟 [加入參考 ] 對話方塊時,Visual Studio 會檢查目前 .NET Framework 目標版本,並只列舉該版本可用的組件。較新目標 Framework 的組件也會顯示出來,但是在停用狀態。

[加入參考] 對話方塊的標題包含目前 .NET Framework 目標版本。對話方塊會顯示每一個組件的架構版本,以便判斷您需要用哪一個 .NET Framework 版本來加入參考。[加入參考] 對話方塊也會顯示您將滑鼠指標移到不可用的組件上時,將組件做為工具提示的相關資訊。

注意事項:

如果是手動加入系統參考 (而不使用 [加入參考] 對話方塊),Visual Studio 就不會檢查參考。但在設計及建置階段時可能會發出警告,表示組件參考不屬於目前 .NET Framework 目標版本。

加入服務參考

只有以 .NET Framework 3.5 為目標的網站和以 .NET Framework 3.0 或 .NET Framework 3.5 為目標的 Web 應用程式專案,才有 [加入服務參考] 對話方塊。如果要把服務參考加入至以 .NET Framework 3.0 為目標的網站,可以先把服務參考加入至類別庫專案。您之後可從網站專案來參考類別庫專案。

注意事項:

您不能在 Visual Web Developer 中,把類別庫加入至專案。

使用 IntelliSense

Visual Studio 2008 的語言服務沒有特定的 .NET Framework 目標版本。意即,編輯器可以為最新版 C# 及 Visual Basic 提供 IntelliSense。

無論專案目標的的架構版本是什麼,Web 專案都會顯示所有 .NET Framework 版本的 IntelliSense。以 .NET Framework 2.0 版或 .NET Framework 3.0 為目標時,程式碼如果參考 .NET Framework 3.5 版的功能,就會引發編譯器錯誤。

JScript IntelliSense 不受專案的 .NET Framework 目標版本影響。

部署專案

Visual Studio 2008 的發行與複製 Web 工具沒有特定的 .NET Framework 目標版本。Visual Studio 不會檢查遠端伺服器上執行的 .NET Framework 版本。把專案發行到目標伺服器上時,目標伺服器上的 .NET Framework 版本如果比專案的目標版本舊,這些工具不會通知您。在這種情況下,以較新版 .NET Framework 為目標的專案將無法執行。

回到頁首

請參閱

概念

ASP.NET 和 Web 程式開發的新功能

參考

回到頁首

其他資源

以特定的 .NET Framework 為目標平台