Bagikan melalui


Kompatibilitas versi

Kompatibilitas mundur berarti bahwa aplikasi yang dikembangkan untuk versi platform tertentu akan berjalan pada versi platform tersebut nanti. .NET Framework mencoba memaksimalkan kompatibilitas mundur: Kode sumber yang ditulis untuk satu versi .NET Framework harus dikompilasi pada versi .NET Framework yang lebih baru, dan biner yang berjalan pada satu versi .NET Framework harus berperilaku identik pada versi .NET Framework yang lebih baru.

Kompatibilitas versi untuk aplikasi

Secara default, aplikasi berjalan pada versi .NET Framework yang dibuat. Jika versi tersebut tidak ada dan file konfigurasi aplikasi tidak menentukan versi yang didukung, kesalahan inisialisasi .NET Framework mungkin terjadi. Dalam hal ini, upaya untuk menjalankan aplikasi akan gagal.

Untuk menentukan versi tertentu tempat aplikasi Anda berjalan, tambahkan satu atau beberapa <elemen supportedRuntime> ke file konfigurasi aplikasi Anda. Setiap <supportedRuntime> elemen mencantumkan versi runtime yang didukung, dengan yang pertama menentukan versi yang paling disukai dan yang terakhir menentukan versi yang paling tidak disukai.

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

Untuk informasi selengkapnya, lihat Cara: Mengonfigurasi Aplikasi untuk Mendukung .NET Framework 4 atau 4.x.

Kompatibilitas versi untuk komponen

Aplikasi dapat mengontrol versi .NET Framework tempat aplikasi berjalan, tetapi komponen tidak dapat. Komponen dan pustaka kelas dimuat dalam konteks aplikasi tertentu, dan itulah sebabnya mereka secara otomatis berjalan pada versi .NET Framework tempat aplikasi berjalan.

Karena pembatasan ini, jaminan kompatibilitas sangat penting untuk komponen. Dimulai dengan .NET Framework 4, Anda dapat menentukan tingkat di mana komponen diharapkan tetap kompatibel di beberapa versi dengan menerapkan atribut ke komponen tersebut System.Runtime.Versioning.ComponentGuaranteesAttribute . Alat dapat menggunakan atribut ini untuk mendeteksi potensi pelanggaran jaminan kompatibilitas dalam versi komponen di masa mendatang.

Kompatibilitas ke belakang

Versi 4.5 dan yang lebih baru dari .NET Framework kompatibel dengan aplikasi yang dibangun menggunakan versi .NET Framework sebelumnya. Dengan kata lain, aplikasi dan komponen yang dibangun dengan versi sebelumnya akan berfungsi tanpa modifikasi pada .NET Framework 4.5 dan versi yang lebih baru. Namun, secara default, aplikasi berjalan pada versi runtime bahasa umum yang dikembangkan, sehingga Anda mungkin harus menyediakan file konfigurasi untuk memungkinkan aplikasi Anda berjalan pada versi .NET Framework 4.5 atau yang lebih baru. Untuk informasi selengkapnya, lihat bagian Kompatibilitas versi untuk aplikasi sebelumnya di artikel ini.

Dalam praktiknya, kompatibilitas ini dapat rusak dengan perubahan yang tampaknya tidak konsekuensial dalam .NET Framework dan perubahan teknik pemrograman. Misalnya, peningkatan performa di .NET Framework 4.5 dapat mengekspos kondisi balapan yang tidak terjadi pada versi sebelumnya. Demikian pula, menggunakan jalur yang dikodekan secara permanen ke rakitan .NET Framework, melakukan perbandingan kesetaraan dengan versi tertentu dari .NET Framework, dan mendapatkan nilai bidang privat dengan menggunakan pantulan bukanlah praktik yang kompatibel mundur. Selain itu, setiap versi .NET Framework mencakup perbaikan bug dan perubahan terkait keamanan yang dapat memengaruhi kompatibilitas beberapa aplikasi dan komponen.

Jika aplikasi atau komponen Anda tidak berfungsi seperti yang diharapkan pada .NET Framework 4.5 atau versi yang lebih baru, gunakan daftar periksa berikut:

  • Jika aplikasi Anda dikembangkan untuk berjalan pada versi .NET Framework apa pun yang dimulai dengan .NET Framework 4.0, lihat Kompatibilitas aplikasi untuk menghasilkan daftar perubahan antara versi .NET Framework yang ditargetkan dan versi tempat aplikasi Anda berjalan.

  • Jika Anda memiliki aplikasi .NET Framework 3.5, lihat juga Masalah Migrasi .NET Framework 4.

  • Jika Anda memiliki aplikasi .NET Framework 2.0, lihat juga Perubahan di .NET Framework 3.5 SP1.

  • Jika Anda memiliki aplikasi .NET Framework 1.1, lihat juga Perubahan di .NET Framework 2.0.

  • Jika Anda mengkompilasi ulang kode sumber yang ada untuk dijalankan pada .NET Framework 4.5 atau rilis titiknya, atau jika Anda mengembangkan versi baru aplikasi atau komponen yang menargetkan .NET Framework 4.5 atau rilis titiknya dari basis kode sumber yang ada, periksa Apa yang Usang di Pustaka Kelas untuk jenis dan anggota yang usang, dan terapkan solusi yang dijelaskan. (Kode yang dikompilasi sebelumnya akan terus berjalan terhadap jenis dan anggota yang telah ditandai sebagai usang.)

  • Jika Anda menentukan bahwa perubahan dalam .NET Framework 4.5 telah merusak aplikasi Anda, periksa Skema Pengaturan Runtime, dan terutama <AppContextSwitchOverrides> Element, untuk menentukan apakah Anda dapat menggunakan pengaturan runtime dalam file konfigurasi aplikasi Anda untuk memulihkan perilaku sebelumnya.

  • Jika Anda menemukan masalah yang tidak didokumenkan, buka masalah di situs Komunitas Pengembang untuk .NET atau buka masalah di repositori GitHub Microsoft/dotnet.

Eksekusi berdampingan

Jika Anda tidak dapat menemukan solusi yang sesuai untuk masalah Anda, ingatlah bahwa .NET Framework 4.5 (atau salah satu rilis titiknya) berjalan berdampingan dengan versi 1.1, 2.0, dan 3.5, dan merupakan pembaruan di tempat yang menggantikan versi 4. Untuk aplikasi yang menargetkan versi 1.1, 2.0, dan 3.5, Anda dapat menginstal versi .NET Framework yang sesuai pada komputer target untuk menjalankan aplikasi di lingkungan terbaiknya. Untuk informasi lebih lanjut tentang eksekusi berdampingan, silakan merujuk ke Eksekusi Berdampingan.

Lihat juga