Share via


Sürüm uyumluluğu

Geriye dönük uyumluluk, platformun belirli bir sürümü için geliştirilen bir uygulamanın bu platformun sonraki sürümlerinde çalıştırılacağı anlamına gelir. .NET Framework geriye dönük uyumluluğu en üst düzeye çıkarmaya çalışır: .NET Framework'ün bir sürümü için yazılmış kaynak kodun .NET Framework'ün sonraki sürümlerinde derlenmesi ve .NET Framework'ün bir sürümünde çalışan ikili dosyaların da .NET Framework'ün sonraki sürümlerinde aynı şekilde davranması gerekir.

Uygulamalar için sürüm uyumluluğu

Varsayılan olarak, bir uygulama oluşturulduğu .NET Framework sürümünde çalışır. Bu sürüm yoksa ve uygulama yapılandırma dosyası desteklenen sürümleri tanımlamıyorsa, .NET Framework başlatma hatası oluşabilir. Bu durumda, uygulamayı çalıştırma girişimi başarısız olur.

Uygulamanızın üzerinde çalıştığı belirli sürümleri tanımlamak için uygulamanızın yapılandırma dosyasına bir veya daha fazla <desteklenenRuntime> öğesi ekleyin. Her <supportedRuntime> öğe, çalışma zamanının desteklenen bir sürümünü listeler ve ilki en çok tercih edilen sürümü, son sürüm ise en az tercih edilen sürümü belirtir.

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

Daha fazla bilgi için bkz . Nasıl yapılır: .NET Framework 4 veya 4.x'i Destekleyecek Bir Uygulamayı Yapılandırma.

Bileşenler için sürüm uyumluluğu

Bir uygulama üzerinde çalıştığı .NET Framework sürümünü denetlese de bileşen bunu yapamaz. Bileşenler ve sınıf kitaplıkları belirli bir uygulama bağlamında yüklenir ve bu nedenle otomatik olarak uygulamanın üzerinde çalıştığı .NET Framework sürümünde çalışırlar.

Bu kısıtlama nedeniyle, uyumluluk garantileri bileşenler için özellikle önemlidir. .NET Framework 4'den başlayarak, özniteliğini bu bileşene uygulayarak bir bileşenin birden çok sürümde hangi düzeyde uyumlu kalmasının beklendiğini System.Runtime.Versioning.ComponentGuaranteesAttribute belirtebilirsiniz. Araçlar, bir bileşenin gelecek sürümlerinde uyumluluk garantisinin olası ihlallerini algılamak için bu özniteliği kullanabilir.

Geriye dönük uyumluluk

.NET Framework 4.5 ve sonraki sürümleri, .NET Framework'ün önceki sürümleriyle oluşturulmuş uygulamalarla geriye dönük olarak uyumludur. Başka bir deyişle, önceki sürümlerle oluşturulan uygulamalar ve bileşenler .NET Framework 4.5 ve sonraki sürümlerde değişiklik yapmadan çalışır. Ancak, varsayılan olarak, uygulamalar geliştirildiği ortak dil çalışma zamanının sürümünde çalışır, bu nedenle uygulamanızın .NET Framework 4.5 veya sonraki sürümlerinde çalışmasını sağlamak için bir yapılandırma dosyası sağlamanız gerekebilir. Daha fazla bilgi için bu makalenin önceki bölümlerinde yer alan Uygulamalar için sürüm uyumluluğu bölümüne bakın.

Pratikte bu uyumluluk, .NET Framework'teki tutarsız gibi görünen değişiklikler ve programlama tekniklerindeki değişikliklerle bozulabilir. Örneğin, .NET Framework 4.5'teki performans geliştirmeleri, önceki sürümlerde gerçekleşmeyen bir yarış durumunu ortaya çıkarabilir. Benzer şekilde, .NET Framework derlemeleri için sabit kodlanmış bir yol kullanmak, .NET Framework'ün belirli bir sürümüyle eşitlik karşılaştırması gerçekleştirmek ve yansıma kullanarak özel bir alanın değerini almak geriye dönük uyumlu yöntemler değildir. Buna ek olarak, .NET Framework'ün her sürümü bazı uygulama ve bileşenlerin uyumluluğunu etkileyebilecek hata düzeltmeleri ve güvenlikle ilgili değişiklikler içerir.

Uygulamanız veya bileşeniniz .NET Framework 4.5 veya sonraki bir sürümde beklendiği gibi çalışmıyorsa aşağıdaki denetim listelerini kullanın:

  • Uygulamanız .NET Framework 4.0'dan başlayarak .NET Framework'ün herhangi bir sürümünde çalışacak şekilde geliştirilmişse, hedeflenen .NET Framework sürümünüz ile uygulamanızın çalıştığı sürüm arasında değişiklik listeleri oluşturmak için uygulama uyumluluğu konusuna bakın.

  • .NET Framework 3.5 uygulamanız varsa bkz . .NET Framework 4 Geçiş Sorunları.

  • .NET Framework 2.0 uygulamanız varsa bkz . .NET Framework 3.5 SP1'deki değişiklikler.

  • .NET Framework 1.1 uygulamanız varsa bkz . .NET Framework 2.0'daki değişiklikler.

  • .NET Framework 4.5 veya onun nokta sürümlerinde çalıştırılacak mevcut kaynak kodu yeniden derlüyorsanız ya da .NET Framework 4.5'i veya mevcut bir kaynak kod tabanından alınan nokta sürümlerini hedefleyen bir uygulama veya bileşenin yeni bir sürümünü geliştiriyorsanız, eski türler ve üyeler için Sınıf Kitaplığı'nda Eski olanlar'ı gözden geçirin. ve açıklanan geçici çözümü uygulayın. (Önceden derlenmiş kod, eski olarak işaretlenmiş türler ve üyelere karşı çalışmaya devam edecektir.)

  • .NET Framework 4.5'teki bir değişikliğin uygulamanızı bozduğunu belirlerseniz, önceki davranışı geri yüklemek için uygulamanızın yapılandırma dosyasında bir çalışma zamanı ayarı kullanıp kullanamayacağınızı belirlemek için Çalışma Zamanı Ayarlar Şemasını ve özellikle< AppContextSwitchOverrides> Öğesini denetleyin.

  • Belgelenmemiş bir sorunla karşılaşırsanız, .NET için Geliştirici Topluluğu sitesinde bir sorun açın veya Microsoft/dotnet GitHub deposunda bir sorun açın.

Yan yana yürütme

Sorununuz için uygun bir geçici çözüm bulamazsanız .NET Framework 4.5'in (veya nokta sürümlerinden birinin) 1.1, 2.0 ve 3.5 sürümleriyle yan yana çalıştığını ve sürüm 4'ün yerini alan yerinde bir güncelleştirme olduğunu unutmayın. 1.1, 2.0 ve 3.5 sürümlerini hedefleyen uygulamalar için, uygulamayı en iyi ortamında çalıştırmak için hedef makineye uygun .NET Framework sürümünü yükleyebilirsiniz. Yan yana yürütme hakkında daha fazla bilgi için bkz . Yan Yana Yürütme.

Ayrıca bkz.