版本相容性

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

應用程式的版本相容性

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

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

<configuration>
   <startup>
      <supportedRuntime version="v2.0.50727" />
      <supportedRuntime version="v4.0" />
   </startup>
</configuration>

如需詳細資訊,請參閱如何:設定應用程式以支援 .NET Framework 4 或 4.x

元件的版本相容性

應用程式可以控制其執行的 .NET Framework 版本,元件則不能。 元件和類別庫會載入至特定應用程式的內容中,這就是為什麼它們會自動執行應用程式所執行的 .NET Framework 版本。

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

回溯相容性

.NET Framework 4.5 和更新版本可以與使用舊版 .NET Framework 所建置的應用程式回溯相容。 換句話說,使用舊版所建置的應用程式和元件不需經過修改,就可在 .NET Framework 4.5 和更新版本上運作。 不過,應用程式預設會在作為其開發目標的通用語言執行平台版本上執行,因此您可能需要提供組態檔,才能讓您的應用程式在 .NET Framework 4.5 或更新版本上執行。 如需詳細資訊,請參閱本文前面的應用程式的版本相容性一節。

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

如果您的應用程式或元件在 .NET Framework 4.5 或更新版本上無法如預期般運作,請使用下列檢查清單:

並存執行

如果您找不到適當的因應措施來解決問題,請記得 .NET Framework 4.5 (或其點版本其中之一) 與版本 1.1、2.0 和 3.5 並存執行,且是取代版本 4 的就地更新。 若是以 1.1、2.0 和 3.5 版為目標的應用程式,您可以在目標電腦上安裝適當的 .NET Framework 版本,以便在最佳環境中執行應用程式。 如需並存執行的詳細資訊,請參閱並存執行

另請參閱