Determinar qué versión del motor en tiempo de ejecución debe cargarse
Common Language Runtime utiliza la siguiente información para determinar la versión del motor en tiempo de ejecución que se debe cargar para una aplicación.
Versiones disponibles del motor en tiempo de ejecución.
Versiones del motor en tiempo de ejecución compatibles con la aplicación.
Versiones compatibles del motor en tiempo de ejecución
El motor en tiempo de ejecución utiliza el archivo de configuración de la aplicación y el encabezado del archivo ejecutable portable (PE) para determinar la versión del motor en tiempo de ejecución que admite una aplicación. Si no hay un archivo de configuración de la aplicación, el motor en tiempo de ejecución carga la versión especificada en el encabezado del archivo PE, siempre que esté disponible.
Si existe un archivo de configuración de la aplicación, el motor en tiempo de ejecución determina la versión que debe cargar en función de los resultados del proceso siguiente:
El motor en tiempo de ejecución examina el elemento <supportedRuntime> (Elemento) del archivo de configuración de la aplicación. Si se admiten una o varias de las versiones del motor en tiempo de ejecución especificadas en el elemento <supportedRuntime>, el motor en tiempo de ejecución carga la versión especificada en el primer elemento <supportedRuntime>. Si esta versión no está disponible, el motor en tiempo de ejecución examina el siguiente elemento <supportedRuntime> e intenta cargar la versión del motor en tiempo de ejecución especificada. Si esta versión del motor en tiempo de ejecución tampoco está disponible, examina los siguientes elementos <supportedRuntime>. Si ninguna de las versiones de motor en tiempo de ejecución está disponible, el motor en tiempo de ejecución no se carga y presenta un mensaje al usuario (vea el paso 3).
El motor en tiempo de ejecución lee el encabezado del archivo PE del archivo ejecutable de la aplicación. Si la versión del motor en tiempo de ejecución especificada en el encabezado del archivo PE está disponible, el motor en tiempo de ejecución carga esa versión. Si la versión del motor en tiempo de ejecución especificada no está disponible, el motor en tiempo de ejecución busca la versión determinada por Microsoft en el encabezado del archivo PE. Si no se encuentra esa versión, el proceso continúa en el paso 3.
El motor en tiempo de ejecución muestra un mensaje en el que se indica que la versión del motor en tiempo de ejecución compatible con la aplicación no está disponible. El motor en tiempo de ejecución no se carga.
Nota Para suprimir la presentación de este mensaje, utilice el valor NoGuiFromShim en la clave del Registro HKLM\Software\Microsoft\.NETFramework o utilice la variable de entorno COMPLUS_NoGuiFromShim.Por ejemplo, puede suprimir el mensaje para las aplicaciones que normalmente no interactúan con el usuario, como las instalaciones sin presencia del usuario o los servicios de Windows.Cuando se suprime la presentación de este mensaje, el motor en tiempo de ejecución escribe un mensaje en el Registro de eventos.Establezca el valor del Registro NoGuiFromShim en 1 con el fin de suprimir este mensaje para todas las aplicaciones de un equipo.O bien, establezca el valor de la variable de entorno COMPLUS_NoGuiFromShim en 1 con el fin de suprimir el mensaje para las aplicaciones que se ejecutan en un determinado contexto de usuario.
Nota |
---|
Una vez cargada la versión del motor en tiempo de ejecución, las redirecciones del enlace de ensamblados pueden especificar que se ha cargado una versión distinta de un determinado ensamblado de .NET Framework.Estas redirecciones de enlace de ensamblados afectan sólo al ensamblado redirigido. |
Vea también
Conceptos
Redirección del enlace de ensamblados
Buscar información de versión del motor en tiempo de ejecución