共用方式為


從 .NET Framework 1.1、2.0 和 3.5 移轉至 .NET Framework 4

Windows 不再支援 .NET Framework 1.1 和 2.0。 因此,目標為舊版 .NET Framework 的應用程式不會在沒有明確安裝 .NET Framework 3.5 的情況下執行。 不過,建議您將應用程式升級至 .NET Framework 4。 本文討論執行以舊版 .NET Framework 為目標的應用程式所需的步驟。

重新定向或重新編譯

有兩種方式可取得使用 .NET Framework 1.1 編譯的應用程式,以在 Windows 7 或更新版本的 Windows作系統上執行:

  • 將應用程式的目標重新設定為 .NET Framework 4 及其後續版本,以便執行。

    重新定位需要您將<supportedRuntime>元素新增至應用程式組態檔,以便它可以在 .NET Framework 4 及更新版本上執行。

    應用程式的組態檔是位於相同目錄中的 XML 檔案,其檔名與應用程式相同,但擴展名相同 .config 。 例如,針對名為 MyExecutable.exe的應用程式,應用程式組態檔名為 MyExecutable.exe.config

    這類組態檔的格式如下:

    <configuration>
       <startup>
          <supportedRuntime version="v4.0"/>
       </startup>
    </configuration>
    
  • 使用以 .NET Framework 4 或更新版本為目標的編譯程式重新編譯應用程式。 如果您原本使用 Visual Studio 2003 來開發及編譯您的方案,您可以在 Visual Studio 2010 中開啟方案(也可能更新版本),並使用 [ 專案相容性 ] 對話框,將 Visual Studio 2003 所使用的格式和專案檔轉換為Microsoft組建引擎 (MSBuild) 格式。

    不論您偏好重新編譯或重新設定應用程式目標,您都必須判斷應用程式是否受到更新版本 .NET Framework 中導入的任何變更所影響。 這些變更有兩種:

  • .NET Framework 1.1 和更新版本 .NET Framework 之間發生的重大變更。

  • 在 .NET Framework 1.1 和更新版本的 .NET Framework 之間,已標示為已淘汰或過時的類型和類型成員。

無論您是重新設定目標還是重新編譯應用程式,您都應該檢閱 .NET Framework 1.1 之後每個發行版本的重大變更,以及過時的類型和成員。

重大突破性變更

當發生中斷性變更時,依據特定變更,可能有解決方案適用於重新設定目標和重新編譯的應用程式。 在某些情況下,您可以將子元素新增至 <應用程式組態檔的執行階段> 元素,以還原先前的行為。 例如,下列組態檔會還原 .NET Framework 1.1 中使用的字串排序和比較行為,而且可以搭配重新目標或重新編譯的應用程式使用。

<configuration>
   <runtime>
      <CompatSortNLSVersion enabled="4096"/>
   </runtime>
</configuration>

不過,在某些情況下,您可能必須修改原始程式碼並重新編譯應用程式。

若要評估可能重大變更對應用程式的影響,您必須檢閱下列變更清單:

過時的類型和成員

已過時的類型和成員對於重新設定目標的應用程式與重新編譯的應用程式所造成的影響有些不同。 除非已從其元件實際移除過時的類型或成員,否則使用過時的類型和成員不會影響重新定向的應用程式。 重新編譯使用過時類型或成員的應用程式通常會產生編譯程式警告,而不是編譯程序錯誤。 不過,在某些情況下,它會產生編譯程序錯誤,而且使用過時類型或成員的程式代碼不會成功編譯。 在此情況下,您必須先重寫呼叫過時類型或成員的原始程式碼,才能重新編譯應用程式。 如需過時類型和成員的詳細資訊,請參閱 類別庫中的過時內容

若要評估自 .NET Framework 2.0 SP1 版本以來已被取代的類型和成員的影響,請參閱 類別庫中已淘汰的內容。 檢閱 .NET Framework 2.0 SP1、.NET Framework 3.5 和 .NET Framework 4 的過時類型和成員清單。