Partager via


Détermination de la version du runtime à charger

Le Common Language Runtime utilise les informations suivantes pour déterminer la version du runtime à charger pour une application :

  • Les versions du runtime disponibles.

  • Les versions du runtime prises en charge par une application.

Versions du runtime prises en charge

Le runtime utilise le fichier de configuration de l'application et l'en-tête de fichier exécutable portable (PE, Portable Executable) pour déterminer la version du runtime prise en charge par une application. Si aucun fichier de configuration de l'application n'est présent, le runtime charge la version du runtime spécifiée dans l'en-tête du fichier PE de l'application, si cette version est disponible.

Si un fichier de configuration de l'application est présent, le runtime détermine la version appropriée du runtime à charger à partir des résultats du processus suivant :

  1. Le runtime examine l'élément <supportedRuntime>, élément dans le fichier de configuration de l'application. Si une ou plusieurs des versions du runtime prises en charge spécifiées dans l'élément <supportedRuntime> sont présentes, le runtime charge la version du runtime spécifiée par l'élément <supportedRuntime>. Si cette version n'est pas disponible, le runtime examine l'élément <supportedRuntime> suivant et tente de charger la version du runtime spécifiée. Si cette version du runtime version n'est pas disponible, les éléments <supportedRuntime> ultérieurs sont examinés. Si aucune des versions du runtime prises en charge n'est disponible, le runtime ne peut pas charger une version du runtime et affiche un message à l'utilisateur (consultez l'étape 3).

  2. Le runtime lit l'en-tête du fichier PE du fichier exécutable de l'application. Si la version du runtime spécifiée par l'en-tête du fichier PE est disponible, le runtime charge cette version. Si la version du runtime spécifiée n'est pas disponible, le runtime recherche une version du runtime dont Microsoft a déterminé la compatibilité avec la version du runtime dans l'en-tête PE. Si cette version est introuvable, le processus continue jusqu'à l'étape 3.

  3. Le runtime affiche un message indiquant que la version du runtime prise en charge par l'application n'est pas disponible. Le runtime n'est pas chargé.

    Notes

    Vous pouvez supprimer l'affichage de ce message à l'aide de la valeur NoGuiFromShim sous la clé de Registre HKLM\Software\Microsoft\.NETFramework ou à l'aide de la variable d'environnement COMPLUS_NoGuiFromShim. Par exemple, vous pouvez supprimer le message pour des applications qui n'interagissent généralement pas avec l'utilisateur, telles que des installations sans assistance ou des services Windows. Lorsque l'affichage de ce message est supprimé, le runtime écrit un message dans le journal des événements. Affectez 1 à la valeur de Registre NoGuiFromShim pour supprimer ce message pour toutes les applications ouvertes sur un ordinateur. Vous pouvez également affecter la valeur 1 à la variable d'environnement COMPLUS_NoGuiFromShim pour supprimer le message pour des applications s'exécutant dans un contexte utilisateur particulier.

Notes

Après le chargement d'une version du runtime, les redirections de liaison d'assembly peuvent spécifier qu'une version différente d'un assembly .NET Framework individuel soit chargée. Ces redirections de liaison affectent uniquement l'assembly spécifique qui fait l'objet de la redirection.

Voir aussi

Concepts

Redirection de liaison d'assembly
Localisation des informations de version du runtime
Configuration de la liaison d'assembly

Autres ressources

Notions de base de l'exécution côte à côte