Cambios de redestinación para la migración de .NET Framework 4.7.2 a 4.8Retargeting Changes for Migration from .NET Framework 4.7.2 to 4.8

Si se va a migrar de .NET Framework 4.7.2 a 4.8, revise los temas siguientes para ver las incidencias de compatibilidad de aplicaciones que pueden afectar a la aplicación:If you are migrating from the .NET Framework 4.7.2 to 4.8, review the following topics for application compatibility issues that may affect your app:

PrincipalCore

Las clases de criptografía administradas no producen una excepción CryptographyException en el modo FIPSManaged cryptography classes do not throw a CryptographyException in FIPS mode

DetallesDetails En NET Framework 4.7.2 y versiones anteriores, las clases del proveedor de servicios criptográficos administrados, como SHA256Managed, producen una excepción CryptographicException cuando las bibliotecas criptográficas del sistema están configuradas en modo FIPS.In .NET Framework 4.7.2 and earlier versions, managed cryptographic provider classes such as SHA256Managed throw a CryptographicException when the system cryptographic libraries are configured in FIPS mode. Estas excepciones se producen porque las versiones administradas no han sometido al FIPS (Estándar federal de procesamiento de información) según la certificación 140-2, así como para bloquear los algoritmos criptográficos que no se consideran aprobados según las reglas FIPS.These exceptions are thrown because the managed versions have not undergone FIPS (Federal Information Processing Standards) 140-2 certification, as well as to block cryptographic algorithms that were not considered to be approved based on the FIPS rules. Dado que pocos desarrolladores tienen sus equipos de desarrollo en el modo FIPS, estas excepciones se producen con frecuencia solo en sistemas de producción. Las aplicaciones que tienen como destino .NET Framework 4.8 y versiones posteriores cambian automáticamente a la directiva más reciente y menos estricta, para que ya no se produzca de forma predeterminada CryptographicException en estos casos.Because few developers have their development machines in FIPS mode, these exceptions are frequently thrown only on production systems.Applications that target .NET Framework 4.8 and later versions automatically switch to the newer, relaxed policy, so that a CryptographicException is no longer thrown by default in such cases. En su lugar, las clases de criptografía administradas redirigen las operaciones criptográficas a una biblioteca de criptografía del sistema.Instead, the managed cryptography classes redirect cryptographic operations to a system cryptography library. Este cambio de directiva elimina eficazmente una diferencia potencialmente confusa entre entornos de desarrollo y entornos de producción, y permite que componentes nativos y componentes administrados funcionen bajo la misma directiva criptográfica.This policy change effectively removes a potentially confusing difference between developer environments and the production environments and makes native components and managed components operate under the same cryptographic policy.
SugerenciaSuggestion Si no desea este comportamiento, puede dejar de participar en él y restaurar el comportamiento anterior hasta que se produzca CryptographicException en el modo FIPS agregando la opción de configuración AppContextSwitchOverrides a la sección <runtime> del archivo de configuración de la aplicación:If this behavior is undesirable, you can opt out of it and restore the previous behavior so that a CryptographicException is thrown in FIPS mode by adding the following AppContextSwitchOverrides configuration setting to the <runtime> section of your application configuration file:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Security.Cryptography.UseLegacyFipsThrow=true" />
</runtime>
Si la aplicación tiene como destino .NET Framework 4.7.2 o versiones anteriores, se puede también participar en este cambio agregando la opción de configuración AppContextSwitchOverrides a la sección <runtime> del archivo de configuración de la aplicación:If your application targets .NET Framework 4.7.2 or earlier, you can also opt in to this change by adding the following AppContextSwitchOverrides configuration setting to the <runtime> section of your application configuration file:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Security.Cryptography.UseLegacyFipsThrow=false" />
</runtime>
ÁmbitoScope BordeEdge
VersiónVersion 4.84.8
TipoType RedestinaciónRetargeting
API afectadasAffected APIs

Windows FormsWindows Forms

Mejoras de accesibilidad en controles de Windows Forms para .NET 4.8Accessibility improvements in Windows Forms controls for .NET 4.8

DetallesDetails El marco de trabajo de Windows Forms continúa mejorando su funcionamiento con las tecnologías de accesibilidad para ofrecer una mejor compatibilidad con los clientes de Windows Forms.The Windows Forms Framework is continuing to improve how it works with accessibility technologies to better support Windows Forms customers. Entre otros, se incluyen los cambios siguientes:These include the following changes:
  • Cambios para mejorar la presentación durante el modo de contraste alto.Changes to improve display during High Contrast mode.
  • Cambios en la interacción con Narrador.Changes to interaction with Narrator.
  • Cambios en la jerarquía Accesible (mejorando la navegación a través del árbol de automatización de la interfaz de usuario).Changes in the Accessible hierarchy (improving navigation through the UI Automation tree).
SugerenciaSuggestion Cómo participar o no en estos cambiosHow to opt in or out of these changes
Para que la aplicación se beneficie de estos cambios, se debe ejecutar en .NET Framework 4.8.In order for the application to benefit from these changes, it must run on the .NET Framework 4.8. La aplicación puede optar por recibir estos cambios de cualquiera de las maneras siguientes:The application can opt in into these changes in either of the following ways:
  • Se recompila para tener .NET Framework 4.8 como destino.It is recompiled to target the .NET Framework 4.8. Estos cambios de accesibilidad están habilitados de forma predeterminada para las aplicaciones de Windows Forms destinadas a .NET Framework 4.8.These accessibility changes are enabled by default on Windows Forms applications that target the .NET Framework 4.8.
  • Tiene como destino .NET Framework 4.7.2 o una versión anterior, y no participa en los comportamientos de accesibilidad heredados mediante la adición del modificador de AppContext siguiente a la sección <runtime> del archivo app.config y estableciéndolo en false, como se muestra en el ejemplo siguiente.It targets the .NET Framework 4.7.2 or earlier version and opts out of the legacy accessibility behaviors by adding the following AppContext switch to the <runtime> section of the app config file and setting it to false, as the following example shows.
<?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>
Tenga en cuenta que para participar en las características de accesibilidad agregadas en .NET Framework 4.8, también se debe participar en las características de accesibilidad de .NET Framework 4.7.1 y 4.7.2.Note that to opt in to the accessibility features added in .NET Framework 4.8, you must also opt in to accessibility features of .NET Framework 4.7.1 and 4.7.2 as well. Las aplicaciones destinadas a .NET Framework 4.8 o una versión posterior, y cuando se quiere conservar el comportamiento de accesibilidad heredado, se puede participar en el uso de las características de accesibilidad heredadas si se establece explícitamente este modificador de AppContext en true. Para habilitar la compatibilidad con la invocación de la información sobre herramientas del teclado es necesario es necesario agregar la línea Switch.System.Windows.Forms.UseLegacyToolTipDisplay=false al valor AppContextSwitchOverrides:Applications that target the .NET Framework 4.8 and want to preserve the legacy accessibility behavior can opt in to the use of legacy accessibility features by explicitly setting this AppContext switch to true.Enabling the keyboard ToolTip invocation support requires adding the Switch.System.Windows.Forms.UseLegacyToolTipDisplay=false line to the AppContextSwitchOverrides value:
'<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false;Switch.System.Windows.Forms.UseLegacyToolTipDisplay=false" />'
Tenga en cuenta que habilitar esta característica requiere participar en las características de accesibilidad de .NET Framework 4.7.1 - 4.8 mencionadas anteriormente.Note that enabling this feature requires opting in to the aforementioned accessibility features of .NET Framework 4.7.1 - 4.8. Además, si no participa en algunas de las características de accesibilidad, pero sí en las características de visualización de la información sobre herramientas, se producirá un tiempo de ejecución NotSupportedException en el primer acceso a estas características.Also, if any of the accessibility features are not opted in but the tooltip display feature is opted in, a runtime NotSupportedException will be thrown on the first access to these features. El mensaje de excepción indica que las informaciones sobre herramientas del teclado requieren mejoras de accesibilidad de nivel 3 para habilitarse. Uso de colores definidos por el sistema operativo en los temas de contraste altoThe exception message indicates that keyboard ToolTips require accessibility improvements of level 3 to be enabled.Use of OS-defined colors in High Contrast themes
  • Temas de contraste alto mejorados.Improved high-contrast themes.
Compatibilidad mejorada con NarradorImproved Narrator supportCompatibilidad de accesibilidad mejorada con CheckedListBoxImproved CheckedListBox Accessibility support
  • Compatibilidad mejorada con Narrador para el control de CheckedListBox.Improved Narrator support for the CheckedListBox control. Al navegar por el control CheckedListBox utilizando el teclado, el Narrador se centra en el elemento CheckedListBox y lo anuncia.When navigating to the CheckedListBox control using the keyboard, Narrator focuses the CheckedListBox item and announces it.
  • Un control CheckedListBox vacío tiene ahora un rectángulo de foco dibujado para un primer elemento virtual cuando el control se enfoca.An empty CheckedListBox control now has a focus rectangle drawn for a virtual first item when the control becomes focused.
Compatibilidad de accesibilidad mejorada con ComboBoxImproved ComboBox Accessibility support
  • Compatibilidad de la automatización de la interfaz de usuario habilitada para el control ComboBox, con la capacidad para usar notificaciones de automatización de la interfaz de usuario y otras características de automatización de la interfaz de usuario.Enabled UI Automation support for the ComboBox control, with the ability to use UI Automation notifications and other UI Automation features.
Compatibilidad de accesibilidad de DataGridView mejoradaImproved DataGridView Accessibility supportCompatibilidad de accesibilidad mejorada con LinkLabelImproved LinkLabel Accessibility support
  • Accesibilidad del control LinkLabel mejorada: El Narrador anuncia el estado deshabilitado para el vínculo si el correspondiente control LinkLabel está deshabilitado.Improved LinkLabel control accessibility: Narrator announces the disabled state for the link if the corresponding LinkLabel control is disabled.
Compatibilidad de accesibilidad mejorada con ProgressBarImproved ProgressBar Accessibility support
  • Compatibilidad de la automatización de la interfaz de usuario habilitada para el control ProgressBar con la capacidad para usar notificaciones de automatización de la interfaz de usuario y otras características de automatización de la interfaz de usuario.Enabled UI Automation support for the ProgressBar control with the ability to use UI Automation notifications and other UI Automation features. Los desarrolladores ahora pueden usar las notificaciones de automatización de la interfaz de usuario que Narrador puede anunciar para indicar el progreso.Developers are now able to use UI Automation notifications which Narrator can announce to indicate progress.
Para obtener información general sobre eventos de la automatización de la interfaz de usuario, incluidos los eventos de notificación de automatización de la interfaz de usuario, consulte la Información general sobre eventos de la automatización de la interfaz de usuario.Compatibilidad de accesibilidad mejorada con PropertyGridFor an overview of UI automation events overview, including UI automation notification events, see the UI Automation Events Overview.Improved PropertyGrid Accessibility support
  • Compatibilidad de la automatización de la interfaz de usuario habilitada para el control PropertyGrid, con la capacidad para usar notificaciones de automatización de la interfaz de usuario y otras características de automatización de la interfaz de usuario.Enabled UI Automation support for the PropertyGrid control, with the ability to use UI Automation notifications and other UI Automation features.
  • El elemento de automatización de la interfaz de usuario que corresponde a la propiedad que actualmente se edita es ahora un elemento secundario del elemento de automatización de la interfaz de usuario del correspondiente elemento de propiedad.The UI Automation element which corresponds to the currently edited property is now a child of the corresponding property item UI Automation element.
  • El elemento de propiedad de automatización de la interfaz de usuario es ahora un elemento secundario del correspondiente elemento de categoría, si el control primario PropertyGrid se establece en la vista por categorías.The UI Automation property item element is now a child of the corresponding category element if the parent PropertyGrid control is set to category view.
Compatibilidad mejorada con ToolStripImproved ToolStrip support
  • Compatibilidad de la automatización de la interfaz de usuario habilitada para el control ToolStrip, con la capacidad para usar notificaciones de automatización de la interfaz de usuario y otras características de automatización de la interfaz de usuario.Enabled UI Automation support for the ToolStrip control, with the ability to use UI Automation notifications and other UI Automation features.
  • Navegación mejorada a través de elementos ToolStrip.Improved navigation through ToolStrip items.
  • En el modo de elementos, el enfoque de Narrador no desaparecerá y no pasará a los elementos ocultos.In items mode, Narrator focus does not disappear and does not go to hidden items.
Indicaciones visuales mejoradasImproved Visual cues
  • Un control CheckedListBox vacío ahora muestra un indicador de enfoque cuando recibe el enfoque.An empty CheckedListBox control now displays a focus indicator when it receives focus.
Nota: La compatibilidad de automatización de la interfaz de usuario está habilitada para los controles en tiempo de ejecución pero no se utiliza en tiempo de diseño.Note: UI automation support is enabled for controls in runtime but is not used in design time. Para obtener información general de la automatización de la interfaz de usuario, vea la información general sobre la Automatización de la interfaz de usuario.For an overview of UI automation, see the UI Automation Overview.

Información sobre herramientas de invocación de controles con un tecladoInvoking controls' ToolTips with a keyboard

  • Ahora se puede invocar el control de información sobre herramientas centrándose en el control con el teclado.Control tooltip can now be invoked by focusing the control with keyboard. Esta característica debe habilitarse explícitamente para la aplicación (consulte la sección "Cómo participar o no en estos cambios" )This feature needs to be enabled explicitly for the application (see section "How to opt in or out of these changes")
ÁmbitoScope MajorMajor
VersiónVersion 4.84.8
typeType RedestinaciónRetargeting

Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)

Mejoras de accesibilidad en WPFAccessibility improvements in WPF

DetallesDetails Mejoras de contraste altoHigh Contrast improvements
  • El foco para el control Expander ahora es visible.The focus for the Expander control is now visible. En versiones anteriores de .NET Framework no lo era.In previous versions of the .NET Framework, it was not.
  • Cuando se seleccionan los controles CheckBox y RadioButton, ahora el texto es más fácil ver que en versiones anteriores de .NET Framework.The text in CheckBox and RadioButton controls when they are selected is now easier to see than in previous .NET Framework versions.
  • El borde de un control ComboBox deshabilitado ahora tiene el mismo color que el texto deshabilitado.The border of a disabled ComboBox is now the same color as the disabled text. En versiones anteriores de .NET Framework no lo tenía.In previous versions of the .NET Framework, it was not.
  • Los botones deshabilitados y con el foco ahora usan el color de tema correcto.Disabled and focused buttons now use the correct theme color. En versiones anteriores de .NET Framework no lo hacían.In previous versions of the .NET Framework, they did not.
  • Ahora el botón de lista desplegable es visible cuando el estilo de un control ComboBox se establece en ToolBar.ComboBoxStyleKey. En versiones anteriores de .NET Framework no lo era.The dropdown button is now visible when a ComboBox control's style is set to ToolBar.ComboBoxStyleKey, In previous versions of the .NET Framework, it was not.
  • La flecha del indicador de ordenación en un control DataGrid ahora usa los colores del tema.The sort indicator arrow in a DataGrid control now uses theme colors. En versiones anteriores de .NET Framework no lo hacía.In previous versions of the .NET Framework, it did not.
  • El estilo de hipervínculo predeterminado cambia ahora al color de tema correcto al pasar el mouse.The default hyperlink style now changes to the correct theme color on mouse over. En versiones anteriores de .NET Framework no lo hacía.In previous versions of the .NET Framework, it did not.
  • El foco del teclado en los botones de radio ahora es visible.The Keyboard focus on radio buttons is now visible. En versiones anteriores de .NET Framework no lo era.In previous versions of the .NET Framework, it was not.
  • En la columna de casilla del control DataGrid ahora se usan los colores esperados para los comentarios de foco de teclado.The DataGrid control's checkbox column now uses the expected colors for keyboard focus feedback. En versiones anteriores de .NET Framework no se usaban.In previous versions of the .NET Framework, it did not.
  • Los objetos visuales de foco de teclado son ahora visibles en los controles ComboBox y ListBox.the Keyboard focus visuals are now visible on ComboBox and ListBox controls. En versiones anteriores de .NET Framework no lo tenía.In previous versions of the .NET Framework, it was not.

Mejoras de interacción de lector de pantallaScreen reader interaction improvements
  • Ahora los lectores de pantalla anuncian los controles Expander correctamente como grupos (expandir o contraer).Expander controls are now correctly announced as groups (expand/collapse) by screen readers.
  • Ahora los lectores de pantalla anuncian los controles DataGridCell correctamente como celdas de cuadrícula de datos (localizadas).DataGridCell controls are now correctly announced as data grid cell (localized) by screen readers.
  • Ahora los lectores de pantalla anunciarán el nombre de un ComboBox editable.Screen readers will now announce the name of an editable ComboBox.
  • Los lectores de pantalla ya no anuncian los controles PasswordBox como "no hay elemento a la vista".PasswordBox controls are no longer announced as "no item in view" by screen readers.

Compatibilidad con LiveRegionLiveRegion support
Los lectores de pantalla como Narrador ayudan a los usuarios a conocer el contenido de la interfaz de usuario de una aplicación, por lo general mediante la descripción sobre algo que actualmente tenga el foco en la interfaz de usuario, ya que probablemente sea el elemento de más interés para el usuario.Screen readers such as Narrator help people know the UI contents of an application, usually by describing something about the UI that's currently focused, because that is probably the element of most interest to the user. Pero si un elemento de la interfaz de usuario cambia en alguna parte de la pantalla y no tiene el foco, puede que no se notifique al usuario y este pierda información importante.However, if a UI element changes somewhere in the screen and it does not have the focus, the user may not be informed and miss important information. Las regiones activas están diseñadas para solucionar este problema.LiveRegions are meant to solve this problem. Un desarrollador puede usarlas para informar al lector de pantalla o a cualquier otro cliente de UI Automation de que se ha realizado un cambio importante en un elemento de la interfaz de usuario.A developer can use them to inform the screen reader or any other UI Automation client that an important change has been made to a UI element. Luego el lector de pantalla puede decidir cómo y cuándo informar al usuario de este cambio.The screen reader can then decide how and when to inform the user of this change. La propiedad LiveSetting también permite al lector de pantalla saber la importancia de informar al usuario de los cambios realizados en la interfaz de usuario.The LiveSetting property also lets the screen reader know how important it is to inform the user of the change made to the UI.
SugerenciaSuggestion Cómo participar o no en estos cambiosHow to opt in or out of these changes
Para que la aplicación se beneficie de estos cambios, se debe ejecutar en .NET Framework 4.7.1 o una versión posterior.In order for the application to benefit from these changes, it must run on the .NET Framework 4.7.1 or later. La aplicación se puede beneficiar de estos cambios de cualquiera de las maneras siguientes:The application can benefit from these changes in either of the following ways:
  • Establecer .NET Framework 4.7.1 como destino.Target the .NET Framework 4.7.1. Éste es el método recomendado.This is the recommended approach. Estos cambios de accesibilidad están habilitados de forma predeterminada para las aplicaciones de WPF destinadas a .NET Framework 4.7.1 o una versión posterior.These accessibility changes are enabled by default on WPF applications that target the .NET Framework 4.7.1 or later.
  • No participa en los comportamientos de accesibilidad heredados mediante la adición del modificador de AppContext siguiente a la sección <runtime> del archivo de configuración de la aplicación y estableciéndolo en false, como se muestra en el ejemplo siguiente.It opts out of the legacy accessibility behaviors by adding the following AppContext Switch in the <runtime> section of the app config file and setting it to false, as the following example shows.
<?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>
En las aplicaciones destinadas a .NET Framework 4.7.1 o una versión posterior, y en las que se quiere conservar el comportamiento de accesibilidad heredado, se puede participar en el uso de las características de accesibilidad heredadas si se establece explícitamente este modificador de AppContext en true.Applications that target the .NET Framework 4.7.1 or later and want to preserve the legacy accessibility behavior can opt in to the use of legacy accessibility features by explicitly setting this AppContext switch to true.
Para obtener información general de la automatización de la interfaz de usuario, vea la información general sobre la Automatización de la interfaz de usuario.For an overview of UI automation, see the UI Automation Overview.
ÁmbitoScope MajorMajor
VersiónVersion 4.7.14.7.1
TipoType RedestinaciónRetargeting
API afectadasAffected APIs

Adición de la propiedad pública SelectionTextBrush a la selección de no basada en Adorner de TextBox y PasswordBoxAdd SelectionTextBrush public property to TextBox/PasswordBox non-adorner selection

DetallesDetails En aplicaciones de WPF no basadas en Adorner según la selección de texto para TextBox y PasswordBox, los desarrolladores ahora pueden establecer la propiedad agregada recientemente de SelectionTextBrush con el fin de modificar la representación del texto seleccionado.In WPF applications using non-adorner based text selection for TextBox and PasswordBox, developers may now set the newly added SelectionTextBrush property in order to alter the rendering of the selected text. De forma predeterminada, este color cambia con HighlightTextBrushKey.By default, this color changes with HighlightTextBrushKey. Si no está habilitada la selección de texto no basada en Adorner, esta propiedad no hace nada.If non-adorner based text selection is not enabled, this property does nothing.
SugerenciaSuggestion Una vez habilitada la selección de texto no basada en Adorner, puede usar las propiedades PasswordBox.SelectionTextBrush y SelectionTextBrush para cambiar la apariencia del texto seleccionado.Once non-adorner based text selection is enabled, you can use the PasswordBox.SelectionTextBrush and SelectionTextBrush property to change the appearance of the selected text. Esto puede realizarse mediante XAML:This can be achieved using XAML:
<TextBox SelectionBrush="Red" SelectionTextBrush="White"  SelectionOpacity="0.5"
Foreground="Blue" CaretBrush="Blue">
This is some text.
</TextBox>
ÁmbitoScope MajorMajor
VersiónVersion 4.84.8
TipoType RedestinaciónRetargeting
API afectadasAffected APIs

HwndHost ahora cambia correctamente el tamaño del elemento secundario HWND durante los cambios de PPPHwndHost now correctly resizes child-HWND during DPI changes

DetallesDetails En .NET Framework 4.7.2 y versiones anteriores, cuando WPF se ejecutaba en modo de reconocimiento por monitor, los controles hospedados en HwndHost no tenían el tamaño correcto después de realizar cambios de PPP, como al mover las aplicaciones de un monitor a otro.In .NET Framework 4.7.2 and earlier versions, when WPF was run in Per-Monitor Aware mode, controls hosted within HwndHost were not sized correctly after DPI changes, such as when moving applications from one monitor to another. Esta corrección garantiza que los controles hospedados tienen un tamaño apropiado.This fix ensures that hosted controls are sized appropriately.
SugerenciaSuggestion Para que la aplicación se beneficie de estos cambios, se debe ejecutar en .NET Framework 4.7.2 o versiones posteriores y debe participar en este comportamiento estableciendo AppContext en la sección <runtime> del archivo de configuración de aplicación en false, tal y como se muestra en el ejemplo siguiente.In order for the application to benefit from these changes, it must run on the .NET Framework 4.7.2 or later, and it must opt-in to this behavior by setting the following AppContext Switch in the <runtime> section of the app config file to false, as the following example shows.
<?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>
ÁmbitoScope MajorMajor
VersiónVersion 4.84.8
TipoType RedestinaciónRetargeting

Windows Workflow Foundation (WF)Windows Workflow Foundation (WF)

Mejoras de accesibilidad en el Diseñador de flujo de trabajo de Windows Workflow Foundation (WF)Accessibility improvements in Windows Workflow Foundation (WF) workflow designer

DetallesDetails El Diseñador de flujo de trabajo de Windows Workflow Foundation (WF) mejora su funcionamiento con tecnologías de accesibilidad.The Windows Workflow Foundation (WF) workflow designer is improving how it works with accessibility technologies. Estas mejoras incluyen los cambios siguientes:These improvements include the following changes:
  • Se cambia el orden de tabulación de izquierda a derecha y de arriba a abajo en algunos controles:The tab order is changed to left to right and top to bottom in some controls:
  • La ventana Inicializar correlación para establecer los datos de correlación para la actividad InitializeCorrelation.The initialize correlation window for setting correlation data for the InitializeCorrelation activity
  • La ventana Definición de contenido para las actividades Receive, Send, SendReply y ReceiveReply.The content definition window for the Receive, Send, SendReply, and ReceiveReply activities
  • Hay más funciones disponibles a través del teclado:More functions are available via the keyboard:
  • Al editar las propiedades de una actividad, los grupos de propiedades se pueden contraer mediante el teclado la primera vez que obtienen el foco.When editing the properties of an activity, property groups can be collapsed by keyboard the first time they are focused.
  • Ahora los iconos de advertencia son accesibles mediante el teclado.Warning icons are now accessible by keyboard.
  • Ahora el botón Más propiedades de la ventana Propiedades es accesible mediante el teclado.The More Properties button in the Properties window is now accessible by keyboard.
  • Los usuarios del teclado ahora pueden tener acceso a los elementos de encabezado en los paneles Argumentos y Variables del Diseñador de flujo de trabajo.Keyboard users now can access the header items in the Arguments and Variables panes of the Workflow Designer.
  • Visibilidad mejorada de los elementos con el foco, por ejemplo cuando:Improved visibility of items with focus, such as when:
  • Se agregan filas a las cuadrículas de datos usadas por los diseñadores de actividad y el Diseñador de flujo de trabajo.Adding rows to data grids used by the Workflow Designer and activity designers.
  • Desplazamiento entre campos en las actividades ReceiveReply y SendReply.Tabbing through fields in the ReceiveReply and SendReply activities.
  • Establecimiento de valores predeterminados para variables o argumentos.Setting default values for variables or arguments
  • Los lectores de pantalla ahora pueden reconocer correctamente:Screen readers can now correctly recognize:
  • Los puntos de interrupción establecidos en el Diseñador de flujo de trabajo.Breakpoints set in the workflow designer.
  • Las actividades FlowSwitch<T>, FlowDecision y CorrelationScope.The FlowSwitch<T>, FlowDecision, and CorrelationScope activities.
  • El contenido de la actividad Receive.The contents of the Receive activity.
  • El tipo de destino para la actividad InvokeMethod.The Target Type for the InvokeMethod activity.
  • El cuadro combinado Excepción y la sección Finally de la actividad TryCatch.The Exception combobox and the Finally section in the TryCatch activity.
  • El cuadro combinado Tipo de mensaje, el divisor de la ventana Agregar inicializadores de correlación, la ventana Definición de contenido y la ventana Definición de CorrelatesOn en las actividades de mensajería (Receive, Send, SendReply y ReceiveReply).The Message Type combobox, the splitter in the Add Correlation Initializers window, the Content Definition window, and the CorrelatesOn Defintion window in the messaging activities (Receive, Send, SendReply, and ReceiveReply).
  • Transiciones a máquina de estados y destinos de transición.State machine transitions and transitions destinations.
  • Anotaciones y conectores en las actividades FlowDecision.Annotations and connectors on FlowDecision activities.
  • Los menús contextuales (clic con el botón derecho) para las actividades.The context (right-click) menus for activities.
  • Los editores de valor de propiedad, el botón Borrar búsqueda, los botones de ordenación Por categoría y Alfabético, y el cuadro de diálogo Editor de expresiones en la cuadrícula de propiedades.The property value editors, the Clear Search button, the By Category and Alphabetical sort buttons, and the Expression Editor dialog in the properties grid.
  • El porcentaje de zoom en el Diseñador de flujo de trabajo.The zoom percentage in the Workflow Designer.
  • El separador en las actividades Parallel y Pick.The separator in Parallel and Pick activities.
  • La actividad InvokeDelegate.The InvokeDelegate activity.
  • La ventana Seleccionar tipos para las actividades de diccionario (Microsoft.Activities.AddToDictionary<TKey,TValue>, Microsoft.Activities.RemoveFromDictionary<TKey,TValue>, etc.).The Select Types window for dictionary activities (Microsoft.Activities.AddToDictionary<TKey,TValue>, Microsoft.Activities.RemoveFromDictionary<TKey,TValue>, etc.).
  • La ventana Examinar y seleccionar un tipo .NET.The Browse and Select .NET Type window.
  • Rutas de navegación en el Diseñador de flujo de trabajo.Breadcrumbs in the Workflow Designer.
  • Los usuarios que elijan temas de contraste alto verán muchas mejoras en la visibilidad del Diseñador de flujo de trabajo y sus controles, como relaciones de contraste mejoradas entre los elementos y cuadros de selección más evidentes para los elementos del foco.Users who choose High Contrast themes will see many improvements in the visibility of the Workflow Designer and its controls like better contrast ratios between elements and more noticeable selection boxes used for focus elements.
SugerenciaSuggestion Si tiene una aplicación con un diseñador de flujo de trabajo rehospedado, se puede beneficiar de estos cambios si se realiza cualquiera de estas acciones:If you have an application with a re-hosted workflow designer, your application can benefit from these changes by performing either of these actions:
  • Volver a compilar la aplicación para destinarla a .NET Framework 4.7.1.Recompile your application to target the .NET Framework 4.7.1. Estos cambios de accesibilidad están habilitados de forma predeterminada.These accessibility changes are enabled by default.
  • Si la aplicación tiene como destino .NET Framework 4.7 o una versión anterior, pero se ejecuta en .NET Framework 4.7.1, puede rechazar estos comportamientos de accesibilidad heredados si agrega el conmutador de AppContext siguiente a la sección <runtime> del archivo app.config de archivos y lo establece en false, como se muestra en el ejemplo siguiente.If your application targets the .NET Framework 4.7 or earlier but is running on the .NET Framework 4.7.1, you can opt out of these legacy accessibility behaviors by adding the following AppContext switch to the <runtime> section of the app.config file and set it to false, as the following example shows.
<?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>
En las aplicaciones destinadas a .NET Framework 4.7.1 o una versión posterior, y en las que se quiere conservar el comportamiento de accesibilidad heredado, se puede participar en el uso de las características de accesibilidad heredadas si se establece explícitamente este modificador de AppContext en true.Applications that target the .NET Framework 4.7.1 or later and want to preserve the legacy accessibility behavior can opt in to the use of legacy accessibility features by explicitly setting this AppContext switch to true.
ÁmbitoScope SecundariaMinor
VersiónVersion 4.7.14.7.1
TipoType RedestinaciónRetargeting

Sumas de comprobación de flujo de trabajo XAML para los símbolos que se han cambiado de SHA1 a SHA256Workflow XAML checksums for symbols changed from SHA1 to SHA256

DetallesDetails Para admitir la depuración con Visual Studio, el tiempo de ejecución de flujo de trabajo genera una suma de comprobación para un archivo XAML de flujo de trabajo mediante un algoritmo de hash.To support debugging with Visual Studio, the Workflow runtime generates a checksum for a workflow XAML file using a hashing algorithm. En .NET Framework 4.6.2 y versiones anteriores, el hash de suma de comprobación de flujo de trabajo usaba el algoritmo MD5, que causaba problemas en sistemas compatibles con FIPS.In the .NET Framework 4.6.2 and earlier versions, workflow checksum hashing used the MD5 algorithm, which caused issues on FIPS-enabled systems. A partir de .NET Framework 4.7, el algoritmo predeterminado se ha cambiado a SHA1.Starting with the .NET Framework 4.7, the default algorithm was changed to SHA1. A partir de .NET Framework 4.8, el algoritmo predeterminado se ha cambiado a SHA256.Starting with the .NET Framework 4.8, the default algorithm was changed to SHA256.
SugerenciaSuggestion Si el código no puede cargar las instancias de flujo de trabajo o no puede buscar símbolos adecuados debido a un error de suma de comprobación, pruebe a establecer el valor "Switch.System.Activities.UseSHA1HashForDebuggerSymbols" del modificador AppContext en true. En el código:If your code is unable to load workflow instances or to find appropriate symbols due to a checksum failure, try setting the AppContext switch "Switch.System.Activities.UseSHA1HashForDebuggerSymbols" to true.In code:
System.AppContext.SetSwitch("Switch.System.Activities.UseSHA1HashForDebuggerSymbols", true);
O bien, en la configuración:Or in configuration:
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Activities.UseSHA1HashForDebuggerSymbols=true" />
</runtime>
</configuration>
ÁmbitoScope SecundariaMinor
VersiónVersion 4.84.8
TipoType RedestinaciónRetargeting

La definición XOML de flujo de trabajo y las claves de caché de SqlTrackingService han cambiado de MD5 a SHA256Workflow XOML definition and SqlTrackingService cache keys changed from MD5 to SHA256

DetallesDetails El tiempo de ejecución de flujo de trabajo mantiene una caché de definiciones de flujo de trabajo definido en XOML.The Workflow Runtime in keeps a cache of workflow definitions defined in XOML. SqlTrackingService también mantiene una caché organizada por cadenas.The SqlTrackingService also keeps a cache that is keyed by strings. Estas cachés están organizadas según los valores que incluyen el valor de código hash de suma de comprobación.These caches are keyed by values that include checksum hash value. En .NET Framework 4.7.2 y versiones anteriores, este hash de suma de comprobación usaba el algoritmo MD5, que causaba problemas en sistemas compatibles con FIPS.In the .NET Framework 4.7.2 and earlier versions, this checksum hashing used the MD5 algorithm, which caused issues on FIPS-enabled systems. A partir de .NET Framework 4.8, el algoritmo utilizado es SHA256. No debería haber ninguna incidencia de compatibilidad con este cambio ya que los valores se vuelven a calcular cada vez que se inician el tiempo de ejecución de flujo de trabajo y SqlTrackingService.Starting with the .NET Framework 4.8, the algorithm used is SHA256.There shouldn't be a compatibility issue with this change because the values are recalculated each time the Workflow Runtime and SqlTrackingService is started. Sin embargo, hemos proporcionado una interpretación para permitir que los clientes puedan volver a usar el algoritmo hash heredado, en caso necesario.However, we have provided quirks to allow customers to revert back to usage of the legacy hashing algorithm, if necessary.
SugerenciaSuggestion Si este cambio supone un problema al ejecutar los flujos de trabajo, pruebe a establecer uno o ambos modificadores AppContext:If this change presents a problem when executing workflows, try setting one or both of the AppContext switches:
  • "Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey" en true."Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey" to true.
  • "Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKey" en true."Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKey" to true.
En el código:In code:
System.AppContext.SetSwitch("Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey", true);
System.AppContext.SetSwitch("Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKey", true);
O en el archivo de configuración (que debe estar en el archivo de configuración de la aplicación que está creando el objeto WorkflowRuntime):Or in the configuration file (this needs to be in the config file for the application that is creating the WorkflowRuntime object):
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey=true" />
<AppContextSwitchOverrides value="Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKeytrue" />
</runtime>
</configuration>
ÁmbitoScope SecundariaMinor
VersiónVersion 4.84.8
typeType RedestinaciónRetargeting

Las sumas de comprobación del archivo XOML han cambiado de MD5 a SHA256Workflow XOML file checksums changed from MD5 to SHA256

DetallesDetails Cuando se compilan los proyectos de flujo de trabajo que contienen archivos XOML, se incluye una suma de comprobación del contenido del archivo XOML en el código generado como un valor WorkflowMarkupSourceAttribute.MD5Digest con el fin de admitir la depuración de flujos de trabajo basados en XOML con Visual Studio.To support debugging XOML-based workflows with Visual Studio, when workflow projects containing XOML files build, a checksum of the contents of the XOML file is included in the code generated as a WorkflowMarkupSourceAttribute.MD5Digest value. En .NET Framework 4.7.2 y versiones anteriores, este hash de suma de comprobación usaba el algoritmo MD5, que causaba problemas en sistemas compatibles con FIPS.In the .NET Framework 4.7.2 and earlier versions, this checksum hashing used the MD5 algorithm, which caused issues on FIPS-enabled systems. A partir de .NET Framework 4.8, el algoritmo que se usa es SHA256.Starting with the .NET Framework 4.8, the algorithm used is SHA256. Para ser compatible con WorkflowMarkupSourceAttribute.MD5Digest, se usan solo los primeros 16 bytes de la suma de comprobación generada. Esto puede causar problemas durante la depuración.To be compatibile with the WorkflowMarkupSourceAttribute.MD5Digest, only the first 16 bytes of the generated checksum are used.This may cause problems during debugging. Es posible que deba volver a compilar el proyecto.You may need to re-build your project.
SugerenciaSuggestion Si volver a compilar el proyecto no soluciona el problema, intente establecer el modificador de AppContext "Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum" como true. En el código:If re-building your project does not solve the problem, try setting the AppContext switch "Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum" to true.In code:
System.AppContext.SetSwitch("Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum", true);
O en un archivo de configuración (esto debe estar en el archivo MSBuild.exe.config de MSBuild.exe que está usando):Or in a configuration file (this needs to be in MSBuild.exe.config for the MSBuild.exe that you are using):
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum=true" />
</runtime>
</configuration>
ÁmbitoScope SecundariaMinor
VersiónVersion 4.84.8
TipoType RedestinaciónRetargeting