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
Çekirdek
Yönetilen şifreleme sınıfları FIPS modunda ŞifrelemeException oluşturmaz
Detaylar
.NET Framework 4.7.2 ve önceki sürümlerinde, sistem şifreleme kitaplıkları FIPS modunda yapılandırıldığında SHA256Managed gibi yönetilen şifreleme sağlayıcısı sınıfları bir CryptographicException oluşturur. Yönetilen sürümler FIPS (Federal Bilgi İşleme Standartları) 140-2 sertifikasına tabi olmadığından ve FIPS kurallarına göre onaylanmadığı düşünülen şifreleme algoritmalarını engellediğinden bu özel durumlar oluşturulur. Birkaç geliştiricinin geliştirme makineleri FIPS modunda olmadığı için, bu istisnalar genellikle yalnızca üretim sistemlerinde fırlatılır. .NET Framework 4.8 ve sonraki sürümlerini hedefleyen uygulamalar otomatik olarak daha güncel ve gevşek politikaya geçer, böylece bu gibi durumlarda varsayılan olarak CryptographicException artık fırlatılmaz. Bunun yerine, yönetilen şifreleme sınıfları şifreleme işlemlerini bir sistem şifreleme kitaplığına yönlendirir. Bu ilke değişikliği, geliştirici ortamları ile üretim ortamları arasındaki kafa karıştırıcı olabilecek farkları etkili bir şekilde ortadan kaldırır ve yerel bileşenlerin ve yönetilen bileşenlerin aynı şifreleme ilkesi altında çalışmasını sağlar.
Öneri
Bu davranış istenmeyen bir davranışsa, uygulama yapılandırma dosyanızın <çalışma zamanı> bölümüne aşağıdaki AppContextSwitchOverrides yapılandırma ayarını ekleyerek önceki davranışı geri yükleyebilir ve FIPS modunda bir CryptographicException oluşturmasını sağlayabilirsiniz:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Security.Cryptography.UseLegacyFipsThrow=true" />
</runtime>
Uygulamanız .NET Framework 4.7.2 veya önceki sürümleri hedef alıyorsa, uygulama yapılandırma dosyanızın <çalışma zamanı> bölümüne aşağıdaki AppContextSwitchOverrides yapılandırma ayarını ekleyerek de bu değişikliği kabul edebilirsiniz:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Security.Cryptography.UseLegacyFipsThrow=false" />
</runtime>
Ad | Değer |
---|---|
Kapsam | Kenar |
Sürüm | 4.8 |
Tür | Yeniden Hedefleme |
Etkilenen API'ler
- System.Security.Cryptography.AesManaged
- System.Security.Cryptography.MD5Cng
- System.Security.Cryptography.MD5CryptoServiceProvider
- System.Security.Cryptography.RC2CryptoServiceProvider
- System.Security.Cryptography.RijndaelManaged
- System.Security.Cryptography.RIPEMD160Managed
- System.Security.Cryptography.SHA1Managed
- System.Security.Cryptography.SHA256Managed
Windows Forms
.NET 4.8 için Windows Forms denetimlerinde erişilebilirlik geliştirmeleri
Detaylar
Windows Forms Framework, Windows Forms müşterilerini daha iyi desteklemek için erişilebilirlik teknolojileriyle çalışma şeklini geliştirmeye devam etmektedir. Bunlar aşağıdaki değişiklikleri içerir:
- Yüksek Karşıtlık modunda ekranı iyileştirmeye yönelik değişiklikler.
- Ekran Okuyucusu (Narrator) ile etkileşimde yapılan değişiklikler.
- Erişilebilir hiyerarşisindeki değişiklikler (UI Otomasyonu ağacında gezinmeyi geliştirme).
Öneri
Bu değişiklikleri kabul etme veya geri çevirme Uygulamanın bu değişikliklerden yararlanabilmesi için .NET Framework 4.8'de çalışması gerekir. Uygulama, aşağıdaki yollardan biriyle bu değişiklikleri kabul edebilir:
- .NET Framework 4.8'i hedeflemek için yeniden derlenir. Bu erişilebilirlik değişiklikleri .NET Framework 4.8'i hedefleyen Windows Forms uygulamalarında varsayılan olarak etkindir.
- .NET Framework 4.7.2 veya önceki sürümünü hedefler ve aşağıdaki AppContext anahtarı uygulama yapılandırma dosyasının
<runtime>
bölümüne ekleyerek ve aşağıdaki örnekte gösterildiği gibifalse
olarak ayarlayarak eski erişilebilirlik davranışlarından vazgeçer.
<?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.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false" />
</runtime>
</configuration>
.NET Framework 4.8'de eklenen erişilebilirlik özelliklerini kabul etmek için .NET Framework 4.7.1 ve 4.7.2'nin erişilebilirlik özelliklerini de kabul etmeniz gerektiğini unutmayın. .NET Framework 4.8'i hedefleyen ve eski erişilebilirlik davranışını korumak isteyen uygulamalar, bu AppContext anahtarını açıkça true
olarak ayarlayarak eski erişilebilirlik özelliklerinin kullanımını kabul edebilir. Klavye Araç İpucu çağırma desteğinin etkinleştirilmesi için AppContextSwitchOverrides değerine Switch.System.Windows.Forms.UseLegacyToolTipDisplay=false
satırının eklenmesi gerekir:
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false;Switch.System.Windows.Forms.UseLegacyToolTipDisplay=false" />
Bu özelliğin etkinleştirilmesi için .NET Framework 4.7.1 - 4.8'in yukarıda belirtilen erişilebilirlik özelliklerini kabul etmeniz gerektiğini unutmayın. Ayrıca, erişilebilirlik özelliklerinden herhangi biri tercih edilmemişse, ancak araç ipucu gösterme özelliği tercih edilmişse, bu özelliklere ilk erişimde bir çalışma zamanı NotSupportedException hatası oluşacaktır. Özel durum iletisi, klavye Araç İpuçları'nın 3. düzey erişilebilirlik iyileştirmelerinin etkinleştirilmesini gerektirdiğini gösterir.
Yüksek Karşıtlık temalarında işletim sistemi tanımlı renklerin kullanılması
- Geliştirilmiş yüksek karşıtlıklı temalar.
Geliştirilmiş Narrator desteği
- Anlatıcı artık bir DataGridViewCelliçin erişilebilir bir ada duyururken DataGridViewColumn'ın sıralama yönünü de açıklar.
Geliştirilmiş CheckedListBox Erişilebilirlik desteği
- CheckedListBox denetimi için geliştirilmiş Anlatıcı desteği. Klavye kullanarak CheckedListBox denetimine giderken, Ekran Okuyucusu CheckedListBox öğesine odaklanır ve onu duyurur.
- Boş bir CheckedListBox denetimi artık denetim odaklandığında ilk sanal öğe için çizilmiş bir odak dikdörtgeni içerir.
Geliştirilmiş ComboBox Erişilebilirlik desteği
UI Otomasyonu bildirimlerini ve diğer UI Otomasyonu özelliklerini kullanabilme özelliğiyle ComboBox denetimi için UI Otomasyonu desteği etkinleştirildi. Geliştirilmiş DataGridView Erişilebilirlik desteği
UI Otomasyonu bildirimlerini ve diğer UI Otomasyonu özelliklerini kullanabilme özelliğiyle DataGridView denetimi için UI Otomasyonu desteği etkinleştirildi.
DataGridViewComboBoxEditingControl veya DataGridViewTextBoxEditingControl karşılık gelen UI Otomasyonu öğesi artık karşılık gelen düzenleme hücresinin alt öğesidir.
Geliştirilmiş LinkLabel Erişilebilirlik desteği
- Geliştirilmiş LinkLabel denetim erişilebilirliği: İlgili LinkLabel denetimi devre dışıysa, Ekran Okuyucusu bağlantının devre dışı durumunu bildirir.
Geliştirilmiş İlerleme Çubuğu Erişilebilirlik Desteği
- UI Otomasyonu bildirimlerini ve diğer UI Otomasyonu özelliklerini kullanabilme özelliğiyle ProgressBar denetimi için UI Otomasyonu desteği etkinleştirildi. Geliştiriciler artık Ekran Okuyucusu'nun ilerlemeyi göstermek için duyurabileceği UI Otomasyon bildirimlerini kullanabilir. UI otomasyonu bildirim olayları da dahil olmak üzere UI otomasyonu olaylarına genel bakış için bkz. UI Otomasyonu Olaylarına Genel Bakış.
Geliştirilmiş PropertyGrid Erişilebilirlik desteği
- UI Otomasyonu bildirimlerini ve diğer UI Otomasyonu özelliklerini kullanabilme özelliğiyle PropertyGrid denetimi için UI Otomasyonu desteği etkinleştirildi.
- Şu anda düzenlenen özelliğe karşılık gelen UI Otomasyonu öğesi artık ilgili özellik öğesi UI Automation öğesinin alt öğesidir.
- Üst PropertyGrid denetimi kategori görünümüne ayarlandıysa UI Otomasyonu özellik öğesi artık ilgili kategori öğesinin alt öğesidir.
Geliştirilmiş ToolStrip desteği
- UI Otomasyonu bildirimlerini ve diğer UI Otomasyonu özelliklerini kullanabilme özelliğiyle ToolStrip denetimi için UI Otomasyonu desteği etkinleştirildi.
- ToolStrip öğeleri arasında geliştirilmiş gezinti.
- Öğeler modunda Ekran Okuyucusu odağı kaybolmaz ve gizli öğelere gitmez.
Geliştirilmiş Görsel ipuçları
- Boş bir CheckedListBox denetimi artık odağı aldığında bir odak göstergesi görüntüler. Not: Ui otomasyonu desteği çalışma zamanındaki denetimler için etkinleştirilir ancak tasarım zamanında kullanılmaz. UI otomasyonuna genel bakış için bkz. UI Otomasyonuna Genel Bakış.
Denetimlerin Araç İpuçlarını klavye ile çağırmayı
- Artık kontrol araç ipucu, kontrolü klavyeyle odaklayarak çağrılabilir. Bu özelliğin uygulama için açıkça etkinleştirilmesi gerekir (bkz. "Bu değişiklikleri kabul etme veya geri çevirme"
bölüme bakın)
İsim | Değer |
---|---|
Kapsam | Binbaşı |
Sürüm | 4.8 |
Tür | Yeniden Hedefleme |
Windows Presentation Foundation (WPF)
WPF'de erişilebilirlik geliştirmeleri
Detaylar
Yüksek Karşıtlık İyileştirmeleri
- Expander denetiminin odağı artık görünür durumdadır. .NET Framework'ün önceki sürümlerinde değildi.
- CheckBox ve RadioButton denetimlerindeki metinler seçildiğinde önceki .NET Framework sürümlerinden daha kolay görülebilir.
- Devre dışı bırakılmış bir ComboBox kenarlığı artık devre dışı bırakılmış metinle aynı renktedir. .NET Framework'ün önceki sürümlerinde değildi.
- Devre dışı ve odaklanmış düğmeler artık doğru tema rengini kullanıyor. .NET Framework'ün önceki sürümlerinde bunu yapmadılar.
- Bir ComboBox denetiminin stili ToolBar.ComboBoxStyleKeyolarak ayarlandığında açılan düğme artık görünür hale gelir. .NET Framework'ün önceki sürümlerinde değildi.
- DataGrid denetimindeki sıralama oku göstergesi artık tema renklerini kullanıyor. .NET Framework'ün önceki sürümlerinde yoktu.
- Varsayılan köprü stili artık fare üzerinde doğru tema rengine dönüşür. .NET Framework'ün önceki sürümlerinde yoktu.
- Radyo düğmeleri üzerindeki Klavye odağı artık görünür durumdadır. .NET Framework'ün önceki sürümlerinde değildi.
- DataGrid denetiminin onay kutusu sütunu artık klavye odağı geri bildirimi için beklenen renkleri kullanıyor. .NET Framework'ün önceki sürümlerinde yoktu.
- Klavye odağı görselleri artık ComboBox ve ListBox denetimlerde görünür. .NET Framework'ün önceki sürümlerinde değildi.
Ekran okuyucu etkileşimi iyileştirmeleri
- Expander denetimleri artık ekran okuyucular tarafından grup (genişletme/daraltma) olarak doğru bir şekilde bildirilir.
- DataGridCell denetimleri artık ekran okuyucular tarafından veri tablosu hücresi (yerelleştirilmiş) olarak doğru olarak duyurulur.
- Ekran okuyucular artık düzenlenebilir bir ComboBoxadını bildirecek.
- PasswordBox denetimleri artık ekran okuyucular tarafından "görünümde öğe yok" olarak duyurulmamaktadır.
LiveRegion desteği
Ekran Okuyucusu gibi ekran okuyucular, kullanıcıların bir uygulamanın kullanıcı arabirimini (UI) anlamasına yardımcı olur ve genellikle odak noktası olan ui öğesini açıklar. Ancak, kullanıcı arabirimi öğesi ekranın herhangi bir yerinde değişirse ve odak olamıyorsa, kullanıcı bilgilendirilmeyebilir ve önemli bilgileri kaçırabilir. LiveRegions bu sorunu çözmek için amaçlanıyor. Bir geliştirici, ekran okuyucuyu veya başka bir UI Otomasyonu istemcisini kullanıcı arabirimi öğesinde önemli bir değişiklik yapıldığını bildirmek için bunları kullanabilir. Ardından ekran okuyucu, kullanıcıya bu değişikliği nasıl ve ne zaman bildireceğine karar verebilir. LiveSetting özelliği, ekran okuyucunun kullanıcı arabiriminde yapılan değişikliği kullanıcıya bildirmenin ne kadar önemli olduğunu bilmesini de sağlar.
Öneri
Bu değişiklikleri kabul etme veya geri çevirme
Uygulamanın bu değişikliklerden yararlanabilmesi için .NET Framework 4.7.1 veya sonraki sürümlerinde çalışması gerekir. Uygulama, bu değişikliklerden aşağıdaki yollardan biriyle yararlanabilir:
Hedef .NET Framework 4.7.1. Önerilen yaklaşım budur. Bu erişilebilirlik değişiklikleri ,NET Framework 4.7.1 veya sonraki sürümleri hedefleyen WPF uygulamalarında varsayılan olarak etkindir.
Uygulama yapılandırma dosyasının
<runtime>
bölümüne aşağıdaki AppContext Anahtarı ekleyip, aşağıda gösterilen örnekte olduğu gibi bunufalse
olarak ayarlayarak, eski erişilebilirlik davranışlarını devre dışı bırakır.<?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.UseLegacyAccessibilityFeatures=false" /> </runtime> </configuration>
.NET Framework 4.7.1 veya üstünü hedefleyen ve eski erişilebilirlik davranışını korumak isteyen uygulamalar, bu AppContext anahtarını açıkça true
olarak ayarlayarak eski erişilebilirlik özelliklerinin kullanımını kabul edebilir.
UI otomasyonuna genel bakış için bkz. UI Otomasyonuna Genel Bakış.
Ad | Değer |
---|---|
Kapsam | Binbaşı |
Sürüm | 4.7.1 |
Tür | Yeniden Hedefleme |
Etkilenen API'ler
- AutomationElementIdentifiers.LiveSettingProperty
- AutomationElementIdentifiers.LiveRegionChangedEvent
- System.Windows.Automation.AutomationLiveSetting
- AutomationProperties.LiveSettingProperty
- AutomationProperties.SetLiveSetting(DependencyObject, AutomationLiveSetting)
- AutomationProperties.GetLiveSetting(DependencyObject)
- AutomationPeer.GetLiveSettingCore()
TextBox/PasswordBox için donatıcı olmayan seçimde SelectionTextBrush genel özelliğini ekleyin.
Ayrıntılar
TextBox ve PasswordBoxiçin donatıcı tabanlı olmayan metin seçimi kullanan WPF uygulamalarında, geliştiriciler artık seçili metnin işlenmesini değiştirmek için yeni eklenen SelectionTextBrush özelliğini ayarlayabilir. Varsayılan olarak, bu renk HighlightTextBrushKeyile değişir. Süsleyici tabanlı olmayan metin seçimi etkinleştirilmediyse, bu özellik hiçbir işlev görmez.
Öneri
Donatıcı tabanlı olmayan metin seçimi etkinleştirildikten sonra, seçili metnin görünümünü değiştirmek için PasswordBox.SelectionTextBrush ve SelectionTextBrush özelliğini kullanabilirsiniz. Bu, XAML kullanılarak elde edilebilir:
<TextBox SelectionBrush="Red" SelectionTextBrush="White" SelectionOpacity="0.5"
Foreground="Blue" CaretBrush="Blue">
This is some text.
</TextBox>
İsim | Değer |
---|---|
Kapsam | Binbaşı |
Sürüm | 4.8 |
Tür | Yeniden Hedefleme |
Etkilenen API'ler
- TextBoxBase.SelectionTextBrushProperty
- TextBoxBase.SelectionTextBrush
- System.Windows.Controls.TextBox
- System.Windows.Controls.PasswordBox
HwndHost artık DPI değişiklikleri sırasında child-HWND'i doğru şekilde yeniden boyutlandırıyor
Detaylar
.NET Framework 4.7.2 ve önceki sürümlerde WPF Per-Monitor Farkında modunda çalıştırıldığında, HwndHost içinde barındırılan denetimler, uygulamaları bir monitörden diğerine taşırken olduğu gibi DPI değişikliklerinden sonra doğru boyutlandırılmamıştı. Bu düzeltme, barındırılan denetimlerin uygun şekilde boyutlandırılmasını sağlar.
Öneri
Uygulamanın bu değişikliklerden yararlanabilmesi için, .NET Framework 4.7.2 veya sonraki bir sürümünde çalışması gerekir ve aşağıdaki örnekte görüldüğü gibi uygulama yapılandırma dosyasının <runtime>
bölümünde AppContext Anahtarı ayarını false
yaparak bu davranışı etkinleştirmesi 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.DoNotUsePresentationDpiCapabilityTier2OrGreater=false" />
</runtime>
</configuration>
İsim | Değer |
---|---|
Kapsam | Binbaşı |
Sürüm | 4.8 |
Tür | Yeniden Hedefleme |
Windows Workflow Foundation (WF)
Windows Workflow Foundation (WF) iş akışı tasarımcısında erişilebilirlik iyileştirmeleri
Detaylar
Windows Workflow Foundation (WF) iş akışı tasarımcısı erişilebilirlik teknolojileriyle çalışma şeklini geliştiriyor. Bu geliştirmeler aşağıdaki değişiklikleri içerir:
- Bazı denetimlerde sekme sırası soldan sağa ve yukarıdan aşağıya olarak değiştirilir:
- InitializeCorrelation etkinliği için bağıntı verilerini ayarlamaya yönelik bağıntıyı başlatma penceresi
- Receive, Send, SendReplyve ReceiveReply etkinlikleri için içerik tanımı penceresi
- Klavye aracılığıyla daha fazla işlev kullanılabilir:
- Bir etkinliğin özellikleri düzenlenirken, özellik grupları ilk kez odaklandıklarında klavye kullanılarak daraltılabilir.
- Uyarı simgelerine artık klavyeyle erişilebilir.
- Özellikler penceresindeki Diğer Özellikler düğmesine artık klavyeyle erişilebilir.
- Klavye kullanıcıları artık İş Akışı Tasarımcısı'nın Bağımsız Değişkenler ve Değişkenler bölmelerindeki üst bilgi öğelerine erişebilir.
- Odaklanma altındaki öğelerin görünürlüğü geliştirildi, örneğin:
- İş Akışı Tasarımcısı ve etkinlik tasarımcıları tarafından kullanılan veri kılavuzlarına satır ekleme.
- ReceiveReply ve SendReply etkinliklerinde alanlar arasında sekmeli gezinme.
- Değişkenler veya bağımsız değişkenler için varsayılan değerleri ayarlama
- Ekran okuyucular artık doğru şekilde tanıyabilir:
- İş akışı tasarımcısında ayarlanan kesme noktaları.
- FlowSwitch<T>, FlowDecisionve CorrelationScope etkinlikleri.
- Receive etkinliğinin içeriği.
- InvokeMethod etkinliği için Hedef Türü.
- TryCatch etkinliğindeki Özel durum açılır kutusu ve Finally bölümü.
- İleti Türü birleşik giriş kutusu, Bağıntı Başlatıcıları Ekle penceresindeki bölücü, İçerik Tanımı penceresi ve mesajlaşma etkinliklerindeki CorrelatesOn Defintion penceresi (Receive, Send, SendReplyve ReceiveReply).
- Durum makinesi geçişleri ve geçiş hedefleri.
- FlowDecision etkinlikleriyle ilgili ek açıklamalar ve bağlayıcılar.
- Etkinlikler için bağlam (sağ tıklama) menüleri.
- Özellik değeri düzenleyicileri, Aramayı Temizle düğmesi, Kategoriye göre ve Alfabetik sıralama düğmeleri ve özellikler kılavuzundaki İfade Düzenleyicisi iletişim kutusu.
- İş Akışı Tasarımcısı'ndaki yakınlaştırma yüzdesi.
- Parallel ve Pick etkinliklerindeki ayırıcı.
- InvokeDelegate etkinliği.
- Sözlük etkinlikleri (
Microsoft.Activities.AddToDictionary<TKey,TValue>
,Microsoft.Activities.RemoveFromDictionary<TKey,TValue>
vb.) için Türleri Seç penceresi. - Gözat ve .NET Türünü Seç penceresi.
- İş Akışı Tasarımcısı'ndaki gezinme izleri.
- Yüksek Karşıtlık temalarını seçen kullanıcılar, İş Akışı Tasarımcısı'nın görünürlüğünde ve öğeler arasındaki daha iyi karşıtlık oranları ve odak öğeleri için kullanılan daha belirgin seçim kutuları gibi denetimlerinde birçok geliştirme görür.
Öneri
Yeniden barındırılan iş akışı tasarımcısına sahip bir uygulamanız varsa, uygulamanız şu eylemlerden birini gerçekleştirerek bu değişikliklerden yararlanabilir:
- .NET Framework 4.7.1'i hedeflemek için uygulamanızı yeniden derleyin. Bu erişilebilirlik değişiklikleri varsayılan olarak etkindir.
- Uygulamanız .NET Framework 4.7 veya önceki sürümleri hedef alıyorsa ancak .NET Framework 4.7.1 üzerinde çalışıyorsa, aşağıdaki AppContext anahtarını app.config dosyasının
<runtime>
bölümüne ekleyerek ve aşağıdaki örnekte gösterildiği gibifalse
olarak ayarlayarak bu eski erişilebilirlik davranışlarını geri çevirebilirsiniz.
<?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.UseLegacyAccessibilityFeatures=false" />
</runtime>
</configuration>
.NET Framework 4.7.1 veya üstünü hedefleyen ve eski erişilebilirlik davranışını korumak isteyen uygulamalar, bu AppContext anahtarını açıkça true
olarak ayarlayarak eski erişilebilirlik özelliklerinin kullanımını kabul edebilir.
Ad | Değer |
---|---|
Kapsam | Küçük |
Sürüm | 4.7.1 |
Tür | Yeniden Hedefleme |
Simgeler için iş akışı XAML sağlama toplamları SHA1'den SHA256'ya değiştirildi.
Ayrıntılar
Visual Studio ile hata ayıklamayı desteklemek için İş Akışı çalışma zamanı, karma algoritması kullanarak bir iş akışı XAML dosyası için sağlama toplamı oluşturur. .NET Framework 4.6.2 ve önceki sürümlerinde, iş akışı kontrol toplamı, FIPS etkinleştirilmiş sistemlerde sorun yaratan MD5 algoritmasını kullandı. .NET Framework 4.7'den başlayarak varsayılan algoritma SHA1 olarak değiştirildi. .NET Framework 4.8'den başlayarak varsayılan algoritma SHA256 olarak değiştirildi.
Öneri
Kodunuz iş akışı örneklerini yükleyemiyorsa veya sağlama toplamı hatası nedeniyle uygun simgeleri bulamıyorsa, AppContext
anahtarını "Switch.System.Activities.UseSHA1HashForDebuggerSymbols" üzerinde true
olarak ayarlamayı deneyin. Kod içinde:
System.AppContext.SetSwitch("Switch.System.Activities.UseSHA1HashForDebuggerSymbols", true);
Veya yapılandırmada:
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Activities.UseSHA1HashForDebuggerSymbols=true" />
</runtime>
</configuration>
İsim | Değer |
---|---|
Kapsam | Küçük |
Sürüm | 4.8 |
Tür | Yeniden Hedefleme |
İş Akışı XOML tanımı ve SqlTrackingService önbellek anahtarları MD5'ten SHA256'ya değiştirildi
Detaylar
Sistemdeki İş Akışı Çalışma Zamanı, XOML'de tanımlanan iş akışı tanımlarının önbelleğini tutmaktadır. SqlTrackingService ayrıca dizeler tarafından anahtarlanan bir önbellek tutar. Bu önbellekler sağlama toplamı karma değerini içeren değerlere göre anahtarlanır. .NET Framework 4.7.2 ve önceki sürümlerinde bu sağlama toplamı karması, FIPS özellikli sistemlerde sorunlara neden olan MD5 algoritmasını kullanıyordu. .NET Framework 4.8'den başlayarak, kullanılan algoritma SHA256'dır. İş Akışı Çalışma Zamanı ve SqlTrackingService her başlatıldığında değerler yeniden hesaplandığından, bu değişiklikle ilgili bir uyumluluk sorunu olmamalıdır. Ancak, müşterilerin gerekirse eski karma algoritmasına geri dönmelerine olanak tanıyacak esneklikler sağladık.
Öneri
Bu değişiklik iş akışları yürütülürken bir sorun oluşturuyorsa, AppContext
anahtarlarından birini veya ikisini birden ayarlamayı deneyin:
- Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey" öğesini true olarak ayarlayın.
- "Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKey" özelliğini true olarak ayarlayın. Kodda:
System.AppContext.SetSwitch("Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey", true);
System.AppContext.SetSwitch("Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKey", true);
Veya yapılandırma dosyasında (bunun WorkflowRuntime nesnesini oluşturan uygulamanın yapılandırma dosyasında olması gerekir):
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey=true" />
<AppContextSwitchOverrides value="Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKeytrue" />
</runtime>
</configuration>
İsim | Değer |
---|---|
Kapsam | Küçük |
Sürüm | 4.8 |
Tür | Yeniden Hedefleme |
İş Akışı XOML dosya sağlama toplamları MD5'ten SHA256'ya değiştirildi
Detaylar
XOML dosyaları içeren iş akışı projeleri derlendiğinde, Visual Studio ile XOML tabanlı iş akışlarında hata ayıklamayı desteklemek için, XOML dosyasının içeriğinin sağlama toplamı, WorkflowMarkupSourceAttribute.MD5Digest değeri olarak oluşturulan koda dahil edilir. .NET Framework 4.7.2 ve önceki sürümlerinde bu sağlama toplamı karması, FIPS özellikli sistemlerde sorunlara neden olan MD5 algoritmasını kullanıyordu. .NET Framework 4.8'den başlayarak, kullanılan algoritma SHA256'dır. WorkflowMarkupSourceAttribute.MD5Digest ile uyumlu olmak için, oluşturulan sağlama toplamının yalnızca ilk 16 baytı kullanılır. Bu, hata ayıklama sırasında sorunlara neden olabilir. Projenizi yeniden oluşturmanız gerekebilir.
Öneri
Projenizi yeniden oluşturmak sorunu çözmezse, "Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum" AppContext
anahtarını true olarak ayarlamayı deneyin. Kodda:
System.AppContext.SetSwitch("Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum", true);
Veya bir yapılandırma dosyasında (kullandığınız MSBuild.exe için MSBuild.exe.config olmalıdır):
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum=true" />
</runtime>
</configuration>
İsim | Değer |
---|---|
Kapsam | Küçük |
Sürüm | 4.8 |
Tür | Yeniden Hedefleme |
.NET Framework 4.8.1
.NET Framework 4.8.1'de uygulama uyumluluğu sorunları uygulanmadı.