.NET Framework 的版本相容性

更新:2010 年 8 月

回溯相容性表示針對特定平台版本開發的應用程式將會在該平台的較新版本上執行。 .NET Framework 嘗試最大化回溯相容性:針對某一個 .NET Framework 版本撰寫的原始程式碼應該在較新版本的 .NET Framework 上編譯,而且在某一個 .NET Framework 版本上執行之二進位檔的行為應該與較新版本的 .NET Framework 相同。

應用程式的版本相容性

根據預設,應用程式會在其建置所針對的 .NET Framework 版本上執行。 如果該版本不存在,而且應用程式組態檔並未定義支援的版本,則可能會發生 .NET Framework 初始化錯誤。 在此例中,嘗試執行應用程式的作業將會失敗。

若要定義應用程式執行所在的特定版本,請將一個或多個 <supportedRuntime> 項目加入至應用程式的組態檔。 每一個 <supportedRuntime> 項目都會列出支援的執行階段版本,最先指定的是最優先的版本,而最後指定的則是優先順序最低的版本。

元件的版本相容性

應用程式可以控制其執行所在的 .NET Framework 版本,但是元件則無法控制。 元件和類別庫會在特定應用程式的內容中載入,因此會自動在應用程式執行所在的 .NET Framework 版本上執行。

由於這項限制,所以相容性保證對於元件特別重要。 從 .NET Framework 4 版 開始,您可以指定元件在多個版本中維持相容所需的程度,方法是將 System.Runtime.Versioning.ComponentGuaranteesAttribute 屬性套用至該元件。 工具可以使用這個屬性來偵測將來的元件版本中,是否有可能違反相容性保證的狀況。

回溯相容性和 .NET Framework 4

.NET Framework 4 與使用 .NET Framework 版本 1.1、2.0、3.0 和 3.5 建置的應用程式之間具有回溯相容性。 換句話說,使用舊版 .NET Framework 建置的應用程式和元件將會在 .NET Framework 4 上運作。

但是在實際操作中,.NET Framework 中似乎前後不一致的變更以及程式設計技術的變更可能會破壞此相容性。 例如,.NET Framework 4 中的效能改良可能會暴露在舊版不會發生的競爭情況。 同樣地,使用 .NET Framework 組件的硬式編碼路徑、搭配特定版本的 .NET Framework 執行相等比較以及使用反映來取得私用欄位的值,都不是具有回溯相容性的作法。 此外,每一個 .NET Framework 版本都包含可能會影響某些應用程式與元件之相容性的 Bug 修正和安全性相關的變更。

您應該測試您的 .NET Framework 應用程式和元件,以確保這些與其他 .NET Framework 版本相容。 若要確保應用程式或元件可在 .NET Framework 4 上成功執行,請使用 .NET Framework 4 應用程式相容性逐步解說 (英文)。

如果您的應用程式或元件無法依預期的方式在 .NET Framework 4 上運作,請使用下列檢查清單。

.NET Framework 2.0、3.0 和 3.5 應用程式:

  • 檢查 .NET Framework 4 移轉問題,以找出任何可能會影響應用程式的變更,並套用所述的替代解決辦法。

  • 如果您正在重先編譯現有的原始程式碼以便在 .NET Framework 4 上執行,或者您正從現有的原始程式碼基底開發以 .NET Framework 4 為目標的新版應用程式或元件,請檢查 .NET Framework 的過時功能中的過時型別和成員,並套用所述的替代解決辦法 (之前編譯的程式碼將會針對已標示為過時的型別和成員繼續執行)。

  • 如果您判斷 .NET Framework 4 中的某項變更已經破壞您的應用程式,請檢查執行階段設定結構描述來判斷您是否可以在應用程式組態檔中使用執行階段設定,以還原之前的行為。

  • 如果您遇到未記載的問題,請將 Microsoft Connect Bug 歸檔,並使用此 Bug 編號連絡 netfxcf@microsoft.com

.NET Framework 1.1 應用程式:

  • 檢查 .NET Framework 4 移轉問題,以找出任何可能會影響應用程式的變更,並套用所述的替代解決辦法。

  • 請檢查 .NET Framework 3.5 SP1 中的變更 (英文) 和 .NET Framework 2.0 中的重大變更 (英文),以找出這些版本中所做的任何變更。

  • 如果您正在重先編譯現有的原始程式碼以便在 .NET Framework 4 上執行,或者您正從現有的原始程式碼基底開發以 .NET Framework 4 為目標的新版應用程式或元件,請檢查 .NET Framework 的過時功能中的過時型別和成員,並套用所述的替代解決辦法 (之前編譯的程式碼將會針對已標示為過時的型別和成員繼續執行)。

  • 如果您判斷 .NET Framework 4 中的某項變更已經破壞您的應用程式,請檢查執行階段設定結構描述來判斷您是否可以在應用程式組態檔中使用執行階段設定,以還原之前的行為。

  • 如果您遇到未記載的問題,請將 Microsoft Connect Bug 歸檔,並使用此 Bug 編號連絡 netfxcf@microsoft.com

相容性和並存執行

如果您找不到問題的適當替代解決辦法,請牢記 .NET Framework 4 會與版本 1.1、2.0 和 3.5 並存執行。 您可以在目標電腦上安裝適當的 .NET Framework 版本,以便在其最佳的環境中執行應用程式。 如需並存執行的詳細資訊,請參閱並存執行

請參閱

概念

.NET Framework 4 的新功能

其他資源

.NET Framework 的過時功能

Microsoft .NET Framework 支援週期原則

.NET Framework 4 移轉問題

變更記錄

日期

記錄

原因

2010 年 8 月

請注意,如果未安裝支援的 .NET Framework 版本,則會發生 .NET Framework 初始化錯誤。

內容 Bug 修正。