Megosztás a következőn keresztül:


Újracélzási változások a .NET-keretrendszer 4.8.x-re való áttelepítéshez

Ez a cikk a .NET-keretrendszerben 4.8- és 4.8.1-bevezetett alkalmazáskompatibilitási problémákat sorolja fel.

.NET-keretrendszer 4.8

Mag

A felügyelt titkosítási osztályok nem adnak vissza CryptographyException-t FIPS módban

Részletek

A .NET-keretrendszer 4.7.2-s és korábbi verzióiban a felügyelt titkosítási szolgáltatói osztályok, például SHA256ManagedCryptographicException, amikor a rendszer titkosítási kódtárai FIPS módban vannak konfigurálva. Ezek a kivételek azért merülnek fel, mert a felügyelt verziók nem mentek át a FIPS (Federal Information Processing Standards) 140-2 minősítésen, valamint olyan titkosítási algoritmusok blokkolására, amelyek nem tekinthetők a FIPS-szabályok alapján jóváhagyottnak. Mivel kevés fejlesztő rendelkezik FIPS módban a fejlesztői gépekkel, ezeket a kivételeket gyakran csak éles rendszereken dobják. A .NET-keretrendszer 4.8-as és újabb verzióit célzó alkalmazások automatikusan átváltanak az újabb, lazább szabályzatra, így az ilyen esetekben a CryptographicException kivétel alapértelmezés szerint nem lesz eldobva. Ehelyett a felügyelt titkosítási osztályok átirányítják a titkosítási műveleteket egy rendszer kriptográfiai könyvtárba. Ez a szabályzatmódosítás hatékonyan eltávolítja a fejlesztői környezetek és az éles környezetek közötti potenciálisan zavaró különbséget, és a natív összetevőket és a felügyelt összetevőket ugyanazon titkosítási szabályzat alapján működteti.

Javaslat

Ha ez a viselkedés nem kívánatos, leiratkozhat róla, és visszaállíthatja az előző viselkedést, hogy a CryptographicException FIPS módban legyen. Ehhez adja hozzá az alábbi AppContextSwitchOverrides konfigurációs beállítást az alkalmazáskonfigurációs fájl <futtatókörnyezet> szakaszához:

<runtime>
  <AppContextSwitchOverrides value="Switch.System.Security.Cryptography.UseLegacyFipsThrow=true" />
</runtime>

Ha az alkalmazás a .NET-keretrendszer 4.7.2-es vagy korábbi verzióit célozza, a módosítást úgy is megteheti, hogy hozzáadja a következő AppContextSwitchOverrides konfigurációs beállítást az alkalmazáskonfigurációs fájl <futtatókörnyezet> szakaszához:

<runtime>
  <AppContextSwitchOverrides value="Switch.System.Security.Cryptography.UseLegacyFipsThrow=false" />
</runtime>
Név Érték
Hatókör Perem
Verzió 4.8
Típus Újracélzás

Érintett API-k

Windows Forms

Akadálymentességi fejlesztések a .NET 4.8-hoz készült Windows Forms-vezérlőkben

Részletek

A Windows Forms-keretrendszer folyamatosan fejleszti az akadálymentességi technológiák használatát a Windows Forms-ügyfelek jobb támogatása érdekében. Ezek közé tartoznak a következő módosítások:

  • A magas kontrasztos mód megjelenítését javító módosítások.
  • A Narrátorsal való interakció változásai.
  • Változások az akadálymentes hierarchiában (a felhasználói felület automatizálási fáján keresztüli navigálás javítása).

Javaslat

Hogyan lehet engedélyezni vagy kivenni ezeket a módosításokat Ahhoz, hogy az alkalmazás kihasználhassa ezeket a módosításokat, a .NET-keretrendszer 4.8-on kell futnia. Az alkalmazás az alábbi módokon engedélyezheti ezeket a módosításokat:

  • A .NET-keretrendszer 4.8-at célozza meg újra. Ezek az akadálymentességi módosítások alapértelmezés szerint engedélyezve vannak a .NET-keretrendszer 4.8-at célzó Windows Forms-alkalmazásokban.
  • A .NET-keretrendszer 4.7.2-es vagy korábbi verzióját célozza meg, és az alábbi AppContext kapcsoló az alkalmazáskonfigurációs fájl <runtime> szakaszához való hozzáadásával és falsebeállításával hagyja ki az örökölt akadálymentességi viselkedést, ahogyan az az alábbi példában is látható.
<?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>

Vegye figyelembe, hogy a .NET-keretrendszer 4.8-ban hozzáadott akadálymentességi funkciókhoz való hozzáféréshez a .NET-keretrendszer 4.7.1 és 4.7.2 akadálymentességi funkcióit is engedélyeznie kell. Azok az alkalmazások, amelyek a .NET-keretrendszer 4.8-at célozzák, és meg szeretnék őrizni az örökölt akadálymentességi viselkedést, választhatják az örökölt akadálymentességi funkciók használatát az AppContext kapcsoló truebeállításával. A billentyűzet elemleírás-hívásának támogatásához hozzá kell adni a Switch.System.Windows.Forms.UseLegacyToolTipDisplay=false sort az AppContextSwitchOverrides értékhez:

<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false;Switch.System.Windows.Forms.UseLegacyToolTipDisplay=false" />

Vegye figyelembe, hogy a szolgáltatás engedélyezéséhez engedélyezni kell a .NET-keretrendszer 4.7.1 – 4.8 fent említett akadálymentességi funkcióit. Ha az akadálymentességi funkciók egyikét sem választja ki, de az elemleírás megjelenítési funkciója engedélyezve van, akkor a rendszer az első hozzáféréskor ezekhez a funkciókhoz futásidejű NotSupportedException hibát ad. A kivételüzenet azt jelzi, hogy a billentyűzet eszköztippjeihez engedélyezni kell a 3. szintű akadálymentességi fejlesztéseket.

Operációs rendszer által definiált színek használata kontrasztos témákban

  • Továbbfejlesztett kontrasztos témák.

Továbbfejlesztett Narrátor-támogatás

A CheckedListBox továbbfejlesztett akadálymentességi támogatása

  • Továbbfejlesztett Narrátor-támogatás a CheckedListBox vezérlőhöz. Amikor a billentyűzettel navigál a CheckedListBox vezérlőelemre, a Narrátor a CheckedListBox elemre irányítja a fókuszt és bejelenti azt.
  • Az üres CheckedListBox vezérlők mostantól fókusz téglalapot rajzolnak egy virtuális első elemhez, amikor a vezérlő fókuszba kerül.

Továbbfejlesztett ComboBox akadálymentesség támogatása

  • A felhasználói felület automatizálásának támogatása a ComboBox vezérlőhöz, amely lehetővé teszi a felhasználói felület automatizálási értesítéseinek és más felhasználói felületi automatizálási funkcióknak a használatát. Továbbfejlesztett DataGridView akadálymentesítési támogatás

  • A felhasználói felület automatizálásának támogatása a DataGridView vezérléshez, lehetőséggel a felületi automatizálási értesítések és egyéb funkciók használatára.

  • A DataGridViewComboBoxEditingControl vagy DataGridViewTextBoxEditingControl megfelelő UI automatizálási eleme mostantól a megfelelő szerkesztőcellához tartozik.

Továbbfejlesztett LinkLabel akadálymentességi támogatás

  • Továbbfejlesztett LinkLabel vezérlőelem akadálymentessége: A Narrátor felolvassa a hivatkozás letiltott állapotát, ha a megfelelő LinkLabel vezérlőelem le van tiltva.

Az előrehaladási sáv hozzáférhetőségének továbbfejlesztett támogatása

  • A felhasználói felület automatizálásának támogatása a ProgressBar vezérlőhöz, amely lehetővé teszi a felhasználói felület automatizálási értesítéseinek és más felhasználói felületi automatizálási funkcióknak a használatát. A fejlesztők mostantól felhasználói felületi automation-értesítéseket is használhatnak, amelyeket a Narrátor fel tud jelenteni az előrehaladás jelzésére. A felhasználói felület automatizálási eseményeinek áttekintéséért, beleértve a felhasználói felület automatizálási értesítési eseményeit, tekintse meg a felhasználói felület automatizálási eseményeinek áttekintését.

Továbbfejlesztett PropertyGrid akadálymentességi támogatás

  • A felhasználói felület automatizálásának támogatása a PropertyGrid vezérlőhöz, amely lehetővé teszi a felhasználói felület automatizálási értesítéseinek és más felhasználói felületi automatizálási funkcióknak a használatát.
  • A jelenleg szerkesztett tulajdonságnak megfelelő UI Automation elem mostantól a megfelelő tulajdonságelem UI Automation elemének gyermeke.
  • A felhasználói felület automatizálási tulajdonságeleme mostantól a megfelelő kategóriaelem alá tartozó elem, ha a szülő PropertyGrid vezérlőelem kategórianézetre van állítva.

Továbbfejlesztett ToolStrip-támogatás

  • A felhasználói felület automatizálásának támogatása a ToolStrip vezérlőhöz, amely lehetővé teszi a felhasználói felület automatizálási értesítéseinek és más felhasználói felületi automatizálási funkcióknak a használatát.
  • Továbbfejlesztett navigáció ToolStrip elemek között.
  • Elemek módban a Narrátor fókusza nem tűnik el, és nem kerül rejtett elemekre.

Továbbfejlesztett vizuális jelek

  • Az üres CheckedListBox vezérlőelem mostantól fókuszjelzőt jelenít meg, amikor fókuszt kap. Megjegyzés: A felhasználói felület automatizálásának támogatása futásidőben engedélyezve van a vezérlőkhöz, de a tervezési időben nem használatos. A felhasználói felület automatizálásának áttekintéséhez tekintse meg a felhasználói felület automatizálásának áttekintését.

Vezérlők elemleírásainak bevitele billentyűzettel

  • A vezérlő elemleírása mostantól előhívható a vezérlő billentyűzettel való fókuszálásával. Ezt a funkciót kifejezetten engedélyezni kell az alkalmazás számára (lásd a "Hogyan lehet engedélyezni vagy kivenni ezeket a módosításokat" című szakaszt)
Név Érték
Hatókör Őrnagy
Verzió 4.8
Típus Újracélzás

Windows Presentation Foundation (WPF)

Akadálymentességi fejlesztések a WPF-ben

Részletek

Kontrasztos megjelenítés fejlesztései

  • Ekkor megjelenik a Expander vezérlőelem fókusza. A .NET-keretrendszer korábbi verzióiban nem.
  • A kijelölt CheckBox és RadioButton vezérlők szövege mostantól könnyebben látható, mint a korábbi .NET-keretrendszer-verziókban.
  • A letiltott ComboBox szegélye mostantól megegyezik a letiltott szöveg színével. A .NET-keretrendszer korábbi verzióiban nem.
  • A letiltott és a fókuszált gombok mostantól a megfelelő téma színt használják. A .NET-keretrendszer korábbi verzióiban nem.
  • Amikor egy ComboBox vezérlőelem stílusa ToolBar.ComboBoxStyleKey-re van állítva, megjelenik a legördülő gomb. A .NET-keretrendszer korábbi verzióiban nem.
  • A DataGrid vezérlőelem rendezési mutatója mostantól témaszíneket használ. A .NET-keretrendszer korábbi verzióiban nem.
  • Az alapértelmezett hivatkozásstílus mostantól a megfelelő színre változik az egérmutatón. A .NET-keretrendszer korábbi verzióiban nem.
  • A billentyűzet fókusza a választógombokon most már láthatóvá válik. A .NET-keretrendszer korábbi verzióiban nem.
  • A DataGrid vezérlőelem jelölőnégyzetoszlopa mostantól a várt színeket használja a billentyűzetfókusz visszajelzéséhez. A .NET-keretrendszer korábbi verzióiban nem.
  • A Billentyűzetfókusz vizualizációk mostantól láthatók ComboBox és ListBox vezérlőkön. A .NET-keretrendszer korábbi verzióiban nem.

Képernyőolvasó interakciós fejlesztései

  • Expander vezérlők mostantól helyesen jelennek meg csoportként (kibontás/összecsukás) a képernyőolvasók által.
  • DataGridCell vezérlőelemeket mostantól a képernyőolvasók helyesen adatcellaként jelenítik meg (honosítva).
  • A képernyőolvasók mostantól felolvassák a szerkeszthető ComboBoxnevét.
  • A PasswordBox vezérlőket a képernyőolvasók többé nem "nincs elem megjelenítve" névvel jelentik be.

LiveRegion támogatás

A képernyőolvasók, például a Narrátor, segítenek a felhasználóknak megérteni egy alkalmazás felhasználói felületét (felhasználói felületét), általában a jelenleg fókuszban lévő felhasználói felületi elem leírásával. Ha azonban egy felhasználói felületi elem megváltozik valahol a képernyőn, és nincs rá a fókusz, előfordulhat, hogy a felhasználó nem lesz tájékoztatva, és nem hagyja ki a fontos információkat. A LiveRegions célja a probléma megoldása. A fejlesztő felhasználhatja őket, hogy tájékoztassa a képernyőolvasót vagy bármely más felhasználói felületi Automation- ügyfelet arról, hogy fontos módosítás történt egy felhasználói felületi elemen. A képernyőolvasó ezután eldöntheti, hogyan és mikor tájékoztatja a felhasználót erről a változásról. A LiveSetting tulajdonság azt is tudatja a képernyőolvasóval, hogy mennyire fontos a felhasználói felületen végrehajtott módosításról tájékoztatni a felhasználót.

Javaslat

Hogyan iratkozhatsz fel vagy le ezekre a módosításokra

Ahhoz, hogy az alkalmazás kihasználhassa ezeket a módosításokat, a .NET-keretrendszer 4.7.1-s vagy újabb verzióján kell futnia. Az alkalmazás a következő módokon használhatja ki ezeket a módosításokat:

  • Cél .NET-keretrendszer 4.7.1. Ez az ajánlott megközelítés. Ezek az akadálymentességi módosítások alapértelmezés szerint engedélyezve vannak a .NET-keretrendszer 4.7.1 vagy újabb verzióját célzó WPF-alkalmazásokban.

  • Az alkalmazás az alábbi AppContext Switch hozzáadásával és falseértékre állításával lép ki az örökölt akadálymentességi viselkedésekből az alkalmazáskonfigurációs fájl <runtime> szakaszában, ahogy az alábbi példa mutatja.

    <?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>
    

Azok az alkalmazások, amelyek a .NET-keretrendszer 4.7.1-s vagy újabb verzióját célozzák, és meg szeretnék őrizni az örökölt akadálymentességi viselkedést, választhatják az örökölt akadálymentességi funkciók használatát, ha ezt az AppContext-kapcsolót kifejezetten trueértékre állítja. A felhasználói felület automatizálásának áttekintése: felhasználói felület automatizálásának áttekintése.

Név Érték
Kiterjedés Őrnagy
Verzió 4.7.1
Típus Újracélzás

Érintett API-k

A SelectionTextBrush nyilvános tulajdonság hozzáadása a TextBox/PasswordBox nem díszítőelem kijelöléséhez.

Részletek

WPF-alkalmazásokban, amelyek nem adorneralapú szövegkijelölést használnak a TextBox és PasswordBoxesetében, a fejlesztők mostantól beállíthatják az újonnan hozzáadott SelectionTextBrush tulajdonságot a kijelölt szöveg megjelenítésének módosításához. Alapértelmezés szerint ez a szín együtt változik a HighlightTextBrushKey-ás színnel. Ha a nem adorneralapú szövegkijelölés nincs engedélyezve, ez a tulajdonság nem tesz semmit.

Javaslat

Ha engedélyezve van a nem adorneralapú szövegkijelölés, a PasswordBox.SelectionTextBrush és SelectionTextBrush tulajdonság használatával módosíthatja a kijelölt szöveg megjelenését. Ez az XAML használatával érhető el:

<TextBox SelectionBrush="Red" SelectionTextBrush="White"  SelectionOpacity="0.5"
Foreground="Blue" CaretBrush="Blue">
This is some text.
</TextBox>
Név Érték
Hatókör Őrnagy
Verzió 4.8
Típus Újracélzás

Érintett API-k

A HwndHost most már megfelelően átméretezi a child-HWND-t a DPI-módosítások során

Részletek

A .NET-keretrendszer 4.7.2-s és korábbi verzióiban, amikor a WPF Per-Monitor Aware módban futott, a HwndHost belül üzemeltetett vezérlők mérete nem volt megfelelő a DPI-módosítások után, például az alkalmazások egyik monitorról a másikra való áthelyezésekor. Ez a javítás biztosítja, hogy az üzemeltetett vezérlők mérete megfelelő legyen.

Javaslat

Ahhoz, hogy az alkalmazás kihasználhassa ezeket a módosításokat, a .NET-keretrendszer 4.7.2-es vagy újabb verzióján kell futnia, és a következő AppContext Switch beállításával az alkalmazáskonfigurációs fájl <runtime> szakaszában falsekell beállítania, ahogy az alábbi példa is mutatja.

<?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 &#39;key1=true/false;key2=true/false  -->
<AppContextSwitchOverrides value="Switch.System.Windows.DoNotUsePresentationDpiCapabilityTier2OrGreater=false" />
</runtime>
</configuration>
Név Érték
Hatókör Őrnagy
Verzió 4.8
Típus Célzás újbóli beállítása

Windows Workflow Foundation (WF)

Akadálymentességi fejlesztések a Windows Workflow Foundation (WF) munkafolyamat-tervezőjében

Részletek

A Windows Workflow Foundation (WF) munkafolyamat-tervezője fejleszti az akadálymentességi technológiák működését. Ezek a fejlesztések a következő módosításokat tartalmazzák:

  • Egyes vezérlőkben a tabulátorsor balról jobbra, felülről lefelé változik:
  • A korrelációs ablak inicializálása a InitializeCorrelation tevékenység korrelációs adatainak beállításához
  • A Receive, Send, SendReplyés ReceiveReply tevékenységek tartalomdefiníciós ablaka
  • További funkciók érhetők el a billentyűzeten keresztül.
  • Amikor egy tevékenység tulajdonságait szerkesztjük, a tulajdonságcsoportok a billentyűzet segítségével először összecsukhatók, amikor először kapnak fókuszt.
  • A figyelmeztető ikonok mostantól billentyűzettel is elérhetők.
  • A Tulajdonságok ablak További tulajdonságok gombja mostantól billentyűzettel is elérhető.
  • A billentyűzetfelhasználók mostantól hozzáférhetnek a munkafolyamat-tervező Argumentumok és Változók paneljének fejlécelemeihez.
  • A fókuszban lévő elemek jobb láthatósága, például amikor:
  • Sorok hozzáadása a Munkafolyamat-tervező és a tevékenységtervezők által használt adatrácsokhoz.
  • Lapozás a ReceiveReply és SendReply tevékenységek mezői között.
  • Változók vagy argumentumok alapértelmezett értékeinek beállítása
  • A képernyőolvasók mostantól helyesen felismerhetik a következőt:
  • A munkafolyamat-tervezőben beállított töréspontok.
  • A FlowSwitch<T>, FlowDecisionés CorrelationScope tevékenységek.
  • A Receive tevékenység tartalma.
  • A InvokeMethod tevékenység céltípusa.
  • A Kivétel legördülő lista és a Végül szakasz a TryCatch tevékenységben.
  • Az Üzenettípus kombinált lista, a Korrelációs inicializálók hozzáadása ablak elválasztója, a Tartalomdefiníció ablak és a CorrelatesOn definíció ablak az üzenetkezelési tevékenységekben (Receive, Send, SendReplyés ReceiveReply).
  • Állapotgép-átmenetek és átmenetek célhelyei.
  • Széljegyzetek és kapcsolók a FlowDecision jelű tevékenységekhez.
  • A környezet (jobb gombbal kattintva) menüi a tevékenységekhez.
  • A tulajdonságérték-szerkesztők, a Keresés törlése gomb, a Kategória és betűrend szerinti rendezés gomb, valamint a Tulajdonságrács Kifejezésszerkesztő párbeszédpanelje.
  • A munkafolyamat-tervező nagyítási aránya.
  • A Parallel és Pick tevékenységek közötti elválasztó.
  • A InvokeDelegate tevékenység.
  • A Szótártevékenységek Típusainak kiválasztása ablaka (Microsoft.Activities.AddToDictionary<TKey,TValue>, Microsoft.Activities.RemoveFromDictionary<TKey,TValue>stb.).
  • A Tallózás és a .NET-típus kiválasztása ablak.
  • A Munkafolyamat-tervezőben található kenyérmorzsák.
  • A kontrasztos témákat választó felhasználók számos fejlesztést láthatnak a Munkafolyamat-tervező és vezérlőinek láthatóságában, például az elemek közötti jobb kontrasztarányt és a fókuszelemekhez használt észrevehetőbb kijelölési mezőket.

Javaslat

Ha egy újra üzemeltetett munkafolyamat-tervezővel rendelkező alkalmazással rendelkezik, az alkalmazás az alábbi műveletek végrehajtásával élvezheti ezeket a módosításokat:

  • Fordítsa újra az alkalmazását a .NET keretrendszer 4.7.1 verziójára. Ezek az akadálymentességi módosítások alapértelmezés szerint engedélyezve vannak.
  • Ha az alkalmazás a .NET-keretrendszer 4.7-es vagy korábbi verziójára céloz, de a .NET-keretrendszer 4.7.1-es verzióján fut, az alábbi AppContext-kapcsoló a app.config fájl <runtime> szakaszához való hozzáadásával és falsebeállításával, ahogyan az alábbi példa is mutatja.
<?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>

Azok az alkalmazások, amelyek a .NET-keretrendszer 4.7.1-re vagy újabb verziójára irányulnak, és meg szeretnék őrizni az örökölt akadálymentességi viselkedést, választhatják az örökölt akadálymentességi funkciók használatát, ha explicit módon true-re állítja ezt az AppContext-kapcsolót.

Név Érték
Hatókör Kiskorú
Verzió 4.7.1
Típus Újracélzás

Sha1-ről SHA256-ra módosult szimbólumok munkafolyamat XAML-ellenőrzőösszegei

Részletek

A Visual Studióval végzett hibakeresés támogatásához a Munkafolyamat-futtatókörnyezet ellenőrzőösszeget hoz létre egy munkafolyamat XAML-fájljához kivonatoló algoritmus használatával. A .NET-keretrendszer 4.6.2-s és korábbi verzióiban a munkafolyamat-ellenőrzőösszeg kivonatolása az MD5 algoritmust használta, ami problémákat okozott a FIPS-kompatibilis rendszereken. A .NET-keretrendszer 4.7-től kezdve az alapértelmezett algoritmus SHA1-re módosult. A .NET-keretrendszer 4.8-tól kezdve az alapértelmezett algoritmus SHA256-ra módosult.

Javaslat

Ha a kód nem tudja betölteni a munkafolyamat-példányokat, vagy nem talál megfelelő szimbólumokat egy ellenőrzőösszeg-hiba miatt, próbálja meg beállítani a AppContext kapcsolót a "Switch.System.Activities.UseSHA1HashForDebuggerSymbols" értékére true. Kódban:

System.AppContext.SetSwitch("Switch.System.Activities.UseSHA1HashForDebuggerSymbols", true);

Vagy a konfigurációban:

<configuration>
  <runtime>
    <AppContextSwitchOverrides value="Switch.System.Activities.UseSHA1HashForDebuggerSymbols=true" />
  </runtime>
</configuration>
Név Érték
Hatókör Kiskorú
Verzió 4.8
Típus Újracélzás

A munkafolyamat XOML-definíciója és az SqlTrackingService gyorsítótárkulcsai MD5-ről SHA256-ra módosultak

Részletek

A munkafolyamat-futtatókörnyezet a XOML-ben definiált munkafolyamat-definíciók gyorsítótárát tárolja. Az SqlTrackingService a sztringek által kulcsolt gyorsítótárat is megőrzi. Ezeknek a gyorsítótáraknak a kulcsai olyan értékek alapján vannak meghatározva, amelyek tartalmazzák az ellenőrzőösszeg kivonatát. A .NET-keretrendszer 4.7.2-ben és a korábbi verziókban ez az ellenőrzőösszeg-kivonatolás az MD5 algoritmust használta, ami problémákat okozott a FIPS-kompatibilis rendszereken. A .NET-keretrendszer 4.8-tól kezdve a használt algoritmus az SHA256. Ezzel a módosítással nem lehet kompatibilitási probléma, mert a munkafolyamat-futtatókörnyezet és az SqlTrackingService minden indításakor újraszámítja az értékeket. Azonban olyan furcsaságokat biztosítunk, amelyek lehetővé teszik az ügyfelek számára, hogy szükség esetén visszatérjenek az örökölt kivonatolási algoritmus használatára.

Javaslat

Ha ez a módosítás problémát okoz a munkafolyamatok végrehajtásakor, próbálkozzon a AppContext kapcsolók egyikének vagy mindkettőnek a beállításával:

  • Állítsa a "Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey" értéket igazra.
  • "Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKey" legyen igaz. Kódban:
System.AppContext.SetSwitch("Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey", true);
System.AppContext.SetSwitch("Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKey", true);

Vagy a konfigurációs fájlban (ennek a WorkflowRuntime objektumot létrehozó alkalmazás konfigurációs fájljában kell lennie):

<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey=true" />
<AppContextSwitchOverrides value="Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKeytrue" />
</runtime>
</configuration>
Név Érték
Hatókör Kisebb jelentőségű
Verzió 4.8
Típus Újracélzás

A munkafolyamat XOML-fájl ellenőrzőösszegei MD5-ről SHA256-ra módosultak

Részletek

A XOML-alapú munkafolyamatok Visual Studióval való hibakeresésének támogatásához XOML-fájlokat tartalmazó munkafolyamat-projektek létrehozásakor a XOML-fájl tartalmának ellenőrzőösszege szerepel a WorkflowMarkupSourceAttribute.MD5Digest értékként létrehozott kódban. A .NET-keretrendszer 4.7.2-ben és a korábbi verziókban ez az ellenőrzőösszeg-kivonatolás az MD5 algoritmust használta, ami problémákat okozott a FIPS-kompatibilis rendszereken. A .NET-keretrendszer 4.8-tól kezdve a használt algoritmus az SHA256. A WorkflowMarkupSourceAttribute.MD5Digesttel való kompatibilitás érdekében a rendszer csak a létrehozott ellenőrzőösszeg első 16 bájtját használja. Ez problémákat okozhat a hibakeresés során. Előfordulhat, hogy újra kell építenie a projektet.

Javaslat

Ha a projekt újraépítése nem oldja meg a problémát, próbálja meg a AppContext kapcsolót a "Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum" értékre állítani igazra. Kódban:

System.AppContext.SetSwitch("Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum", true);

Vagy egy konfigurációs fájlban (ez MSBuild.exe.config-nak kell lennie a használt MSBuild.exe-hez):

<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum=true" />
</runtime>
</configuration>
Név Érték
Hatály Kiskorú
Verzió 4.8
Típus Újracélzás

.NET-keretrendszer 4.8.1

A .NET-keretrendszer 4.8.1-ben nem jelentek meg alkalmazáskompatibilitási problémák.