Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede .NET Framework 4.8 ve 4.8.1ile sunulan uygulama uyumluluk sorunları listelenir.
.NET Framework 4.8
ASP.NET
ASP.NET WebForms CheckBox denetimi için InputAttributes ve LabelAttributes işlemesini düzeltme
Detaylar
.NET Framework 4.7.2 ve önceki sürümleri hedefleyen uygulamalar için, bir WebForms CheckBox.InputAttributes denetimine program aracılığıyla eklenen CheckBox.LabelAttributes ve CheckBox geri gönderme sonrasında kaybolur. .NET Framework 4.8 veya sonraki sürümlerini hedefleyen uygulamalar, geri gönderimden sonra korunmaya devam eder.
Öneri
Geri göndermede öznitelikleri geri yüklemek için doğru davranış sağlamak amacıyla targetFrameworkVersion değerini 4,8 veya daha yüksek olarak ayarlayın. Örneğin:
<configuration>
<system.web>
<httpRuntime targetFramework="4.8"/>
</system.web>
</configuration>
Bu ayarın daha düşük olması veya hiç yapılmaması, eski yanlış davranışı korur.
| Adı | Değer |
|---|---|
| Kapsam | Bilinmeyen |
| Sürüm | 4.8 |
| Tür | Çalışma zamanı |
Etkilenen API'ler
ASP.NET Yanlış çok parçalı işleme, form verilerinin kaybolmasına neden olabilir.
Detaylar
.NET Framework 4.7.2 ve önceki sürümleri hedefleyen uygulamalarda, ASP.NET çok parçalı sınır değerlerini yanlış ayrıştırarak istek yürütme sırasında form verilerinin kullanılamamasıyla sonuçlanabilir. .NET Framework 4.8 veya sonraki sürümlerini hedefleyen uygulamalar çok parçalı verileri doğru ayrıştırdığından, form değerleri istek yürütme sırasında kullanılabilir.
Öneri
.NET Framework 4.8 üzerinde çalışan uygulamalardan başlayarak, targetFrameworkVersion öğesini kullanarak .NET Framework 4.8 veya üzerini hedeflerken, varsayılan davranış şerit sınırlayıcılarına dönüşür. Önceki platform sürümlerini hedeflerken veya targetFrameworkVersionkullanmazken, bazı değerler için sondaki sınırlayıcılar geri döndürülür.
Bu davranış, bir appSettingile açıkça denetlenebilir:
<configuration>
<appSettings>
...
<add key="aspnet:UseLegacyMultiValueHeaderHandling" value="true"/>
...
</appSettings>
</configuration>
| Adı | Değer |
|---|---|
| Kapsam | Bilinmeyen |
| Sürüm | 4.8 |
| Tür | Çalışma zamanı |
Etkilenen API'ler
ASP.NET ValidationContext.MemberName, özel DataAnnotations.ValidationAttribute kullanıldığında NULL değildir.
Detaylar
.NET Framework 4.7.2 ve önceki sürümlerinde, özel bir System.ComponentModel.DataAnnotations.ValidationAttributekullanılırken ValidationContext.MemberName özelliği nulldöndürür. Ekim 2019 güncelleştirmesinin öncesinde .NET Framework 4.8 sürümünde üye adını döndürür. .NET Framework 4.8 için .NET Framework Ekim 2019 Kalite Paketi Önizlemesi'den başlayarak, varsayılan olarak null döndürür. Ancak, bunun yerine üye adını döndürmeyi tercih edebilirsiniz.
Öneri
Aşağıdaki ayarı web.config dosyanıza ekleyin; bu ayar, .NET Framework Ekim 2019 Kalite Toplama Önizlemesi'te, .NET Framework 4.8 ve sonraki sürümleri için üye adını döndürmek üzere özelliği geri döndürecektir.
<configuration>
<appSettings>
...
<add key="aspnet:GetValidationMemberName" value="true"/>
...
</appSettings>
</configuration>
Ekim 2019 güncelleştirmesi öncesinde .NET Framework 4.8 sürümünde bunu web.config dosyanıza eklemek önceki davranışı geri yükler ve özelliği nulldöndürür.
| Adı | Değer |
|---|---|
| Kapsam | Bilinmeyen |
| Sürüm | 4.8 |
| Tür | Çalışma zamanı |
Etkilenen API'ler
Merkez
.NET COM, byRef SafeArray parametrelerini olaylar üzerinde başarıyla sıralar
Detaylar
.NET Framework 4.7.2 ve önceki sürümlerde, COM olayındaki bir ByRef SafeArray parametresi yerel koda geri aktarılamıyordu. Bu değişiklikle, SafeArray başarıyla sıraya konur.
- [ x ] Tuhaflık
Öneri
COM Olaylarında ByRef SafeArray parametrelerini düzgün bir şekilde sıralamak yürütmeyi bozuyorsa, uygulama yapılandırmanıza aşağıdaki yapılandırma anahtarını ekleyerek bu kodu devre dışı bırakabilirsiniz:
<appSettings>
<add key="Switch.System.Runtime.InteropServices.DoNotMarshalOutByrefSafeArrayOnInvoke" value="true" />
</appSettings>
| Adı | Değer |
|---|---|
| Kapsam | Küçük |
| Sürüm | 4.8 |
| Tür | Çalışma zamanı |
Etkilenen API'ler
API analizi aracılığıyla algılanamaz.
.NET Interop artık IAgileObject için QueryInterface çağıracak (WinRT arabirimi)
Detaylar
.NET temsilcisiyle bir WinRT olayı kullanıldığında, Windows .NET Framework 4.8'den itibaren IAgileObject için QI yapacaktır. .NET Framework'ün önceki sürümlerinde çalışma zamanı bu QI kontrolünde başarısız olacaktı ve olaylara abone olunamıyordu.
- [ x ] Tuhaflık
Öneri
IAgileObject için QI etkinleştirildiğinde yürütme durduruluyorsa, aşağıdaki yapılandırmayı ayarlayarak bu kodu devre dışı bırakabilirsiniz.
Yöntem 1: Ortam değişkeni
Aşağıdaki ortam değişkenini ayarlayın: COMPLUS_DisableCCWSupportIAgileObject=1
Bu yöntem, bu ortam değişkenini devralan tüm ortamları etkiler. Bu yalnızca tek bir konsol oturumu olabilir veya ortam değişkenini genel olarak ayarlarsanız makinenin tamamını etkileyebilir. Ortam değişkeni adı büyük/küçük harfe duyarlı değildir.
Yöntem 2: Kayıt Defteri
Kayıt Defteri Düzenleyicisi'ni (regedit.exe) kullanarak aşağıdaki alt anahtarlardan birini bulun:
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework
- HKEY_CURRENT_USER\SOFTWARE\Microsoft.NETFramework
Ardından aşağıdaki girdiyi ekleyin:
Ad: DisableCCWSupportIAgileObject Türü: DWORD (32 bit) değeri (REG_DWORD olarak da adlandırılır) Veri: 1
Bu değeri bir komut satırından veya betik ortamından eklemek için Windows REG.EXE aracını kullanabilirsiniz. Örneğin:
reg add HKLM\SOFTWARE\Microsoft.NETFramework /v DisableCCWSupportIAgileObject /t REG_DWORD /d 1
Bu durumda, HKLMyerine HKEY_LOCAL_MACHINE kullanılır. Bu söz diziminde yardım görmek için reg add /? kullanın. Kayıt defteri değer adı büyük/küçük harfe duyarlı değil.
| Adı | Değer |
|---|---|
| Kapsam | Kenar |
| Sürüm | 4.8 |
| Tür | Çalışma zamanı |
Etkilenen API'ler
API analizi aracılığıyla algılanamaz.
Windows Communication Foundation (WCF)
svcTraceViewer ComboBox'ta yüksek karşıtlık değişimi
Detaylar
Microsoft Hizmet İzleme Görüntüleyicisi aracında, ComboBox denetimleri belirli yüksek karşıtlıklı temalarda doğru renkte görüntülenmedi. Sorun .NET Framework 4.7.2'de düzeltildi. Bununla birlikte, .NET Framework SDK geriye dönük uyumluluk gereksinimleri nedeniyle düzeltme varsayılan olarak müşteriler tarafından görülemedi. .NET 4.8, svcTraceViewer.exe.config dosyasına aşağıdaki AppContext yapılandırma anahtarlarını ekleyerek bu değişikliği ortaya koyar:
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false" />
Öneri
Yüksek karşıtlık davranışı değişikliğini istemiyorsanız, svcTraceViewer.exe.config dosyasından aşağıdaki bölümü kaldırarak bu değişikliği devre dışı bırakabilirsiniz:
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false" />
| Adı | Değer |
|---|---|
| Kapsam | Kenar |
| Sürüm | 4.8 |
| Tür | Çalışma zamanı |
Etkilenen API'ler
API analizi aracılığıyla algılanamaz.
Windows Presentation Foundation (WPF)
KeyedCollection için Veri Bağlama iyileştirmesi
Detaylar
Kaynak nesne aynı imzaya sahip bir özel dizin oluşturucu bildirdiğinde IList dizin oluşturucusunun yanlış Binding kullanımı düzeltildi (örneğin, KeyedCollection<int,TItem>).
Öneri
Daha eski bir sürümü hedefleyen bir uygulamanın bu değişiklikten yararlanabilmesi için .NET Framework 4.8 veya sonraki sürümlerinde çalışması ve uygulama yapılandırma dosyasının bölümüne aşağıdaki <runtime> ekleyip falseolarak ayarlayarak değişikliği kabul etmesi gerekir:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/>
</startup>
<runtime>
<!-- AppContextSwitchOverrides value attribute is in the form of key1=true/false;key2=true/false -->
<AppContextSwitchOverrides value="Switch.System.Windows.Data.Binding.IListIndexerHidesCustomIndexer=false" />
</runtime>
</configuration>
| Adı | Değer |
|---|---|
| Kapsam | Binbaşı |
| Sürüm | 4.8 |
| Tür | Çalışma zamanı |
Etkilenen API'ler
API analizi aracılığıyla algılanamaz.
Yinelenen değer türleri içeriyorsa ListBox'ın yanıt vermeyi durdurması sorunu düzeltildi
Detaylar
Düzeltildi: Bir sanallaştırma ItemsControl'ın, Items koleksiyonu yinelenen değer türündeki nesneler içerdiğinde kaydırılırken yanıt vermeyi durdurabilmesine neden olan bir sorun.
| Adı | Değer |
|---|---|
| Kapsam | Binbaşı |
| Sürüm | 4.8 |
| Tür | Çalışma zamanı |
Etkilenen API'ler
API analizi aracılığıyla algılanamaz.
Kılavuz yıldız satırları alanı ayırma algoritmasında iyileştirmeler
Detaylar
.NET Framework 4.7'de tanıtılan bir Height="Auto" Kılavuzu gibi, satırlar yanlış bir şekilde yerleştirilmiş ve muhtemelen Kılavuz'un tamamen dışında kalmış olabilir.
Öneri
Uygulamanın bu değişikliklerden yararlanabilmesi için .NET Framework 4.8 veya sonraki sürümlerinde çalışması gerekir.
| Adı | Değer |
|---|---|
| Kapsam | Binbaşı |
| Sürüm | 4.8 |
| Tür | Çalışma zamanı |
Etkilenen API'ler
API analizi aracılığıyla algılanamaz.
ListBox'larda köprü içeren klavye gezintisinin iyileştirilmesi
Detaylar
Ana öğesi ItemsContrololan ancak seçili olmayan bir öğenin içindeki bir köprüde odaklandığında ok tuşuna basmanın yanlış sonucu düzeltildi.
| Adı | Değer |
|---|---|
| Kapsam | Binbaşı |
| Sürüm | 4.8 |
| Tür | Çalışma zamanı |
Etkilenen API'ler
API analizi aracılığıyla algılanamaz.
ItemsControls gruplandırma için Otomasyon ağacında performans geliştirmesi
Detaylar
Gruplandırma özelliğinin etkinleştirildiği ListBox veya DataGrid gibi bir ItemsControlotomasyon ağacını yeniden oluşturma performansı iyileştirildi.
| Adı | Değer |
|---|---|
| Kapsam | Binbaşı |
| Sürüm | 4.8 |
| Tür | Çalışma zamanı |
Etkilenen API'ler
API analizi aracılığıyla algılanamaz.
.NET Framework 4.8.1
.NET Framework 4.8.1'de uygulama uyumluluğu sorunları uygulanmadı.