.NET Framework 中的應用程式相容性

相容性是每個 .NET 版本的重要目標。 相容性可確保每個版本都是加總的,因此之前的版本會繼續運作。 另一方面,先前功能的變更 (例如,為了改善效能、解決安全性問題或修正錯誤) 可能會導致現有程式碼或在較新版本中執行的現有應用程式發生相容性問題。

每個應用程式都是以特定版本的 .NET Framework 為目標,其方式如下:

  • 在 Visual Studio 中定義目標架構。
  • 在專案檔中指定目標架構。
  • TargetFrameworkAttribute 套用至原始程式碼。

從某個 .NET Framework 版本遷移到另一個版本時,需要考慮兩種類型的變更:

執行階段變更

執行時間問題是在電腦上放置新的執行時間,以及應用程式的行為變更時所引發的問題。 在比目標版本更新的版本上執行時,.NET Framework 會使用quirked行為來模仿較舊的目標版本。 應用程式會在較新的版本上執行,但其作用就像是在舊版上執行一樣。 .NET Framework 版本間的許多相容性問題是透過這種古怪的模型而降低。 例如,如果二進位檔是針對 .NET Framework 4.0 進行編譯,但是在 .NET Framework 4.5 或更新版本的電腦上執行,則會在 .NET Framework 4.0 相容性模式下執行。 這表示,較新版本中的許多變更都不會影響二進位檔。

應用程式目標的 .NET Framework 版本取決於程式碼執行所在的應用程式域之專案元件的目標版本。 在該應用程式域中載入的所有其他元件都會以該版本為目標。 例如,在可執行檔的案例中,可執行檔的目標版本是該應用程式域中所有元件都在其下執行的相容性模式。

若要查看適用于您環境的執行時間變更清單,請選取您目前的目標 .NET Framework 版本,然後選取您想要遷移至的版本:

重定目標變更

重定目標變更是重新編譯元件以更新版本為目標時所引發的變更。 以較新的版本為目標,表示元件會加入宣告新的功能,以及舊版功能的潛在相容性問題。

若要查看適用于您環境的重定目標變更清單,請選取您目前的目標 .NET Framework 版本,然後選取您想要遷移至的版本:

影響分類

在描述執行時間和重定目標變更的主題中(例如, 從4.7.2 遷移至4.8 的重定目標變更),個別的專案會依其預期的影響進行分類,如下所示:

主要
影響大量應用程式或需要大幅修改程式碼的重大變更。

Minor
影響少量應用程式或需要稍微修改程式碼的變更。

邊緣案例
在非常特定 (罕見) 的情況下影響應用程式的變更。

透明
此變更對應用程式的開發人員或使用者的影響不明顯。 發生此變更的應用程式應該不需要修改。

另請參閱