Compartilhar via


Determinando qual versão do Runtime para carregar

O common language runtime usa as seguintes informações para determinar qual versão do runtime para carregar um aplicativo:

  • As versões do runtime que estão disponíveis.

  • As versões do runtime oferece suporte a um aplicativo.

Versões suportadas do tempo de execução

O runtime usa o arquivo de configuração do aplicativo e o cabeçalho do arquivo executável (PE) portátil para determinar qual versão do runtime oferece suporte a um aplicativo. Se nenhum arquivo de configuração do aplicativo estiver presente, o runtime carrega a versão de tempo de execução especificada no cabeçalho de arquivo PE do aplicativo, se essa versão está disponível.

Se houver um arquivo de configuração do aplicativo, o tempo de execução determina a versão de runtime apropriados para carregar com base nos resultados do seguinte processo:

  1. O runtime examina a <supportedRuntime> Elemento elemento no arquivo de configuração de aplicativo. Se um ou mais das versões com suporte em tempo de execução especificadas na <supportedRuntime> elemento estiverem presentes, o runtime carrega a versão de tempo de execução especificada pelo primeiro <supportedRuntime> elemento. Se esta versão não estiver disponível, o runtime examina o próximo <supportedRuntime> elemento e tenta carregar a versão de tempo de execução especificada. Se esta versão de tempo de execução não estiver disponível, subseqüentes <supportedRuntime> elementos são examinados. Se nenhuma das versões com suporte em tempo de execução estiver disponível, o runtime Falha ao carregar uma versão de tempo de execução e exibe uma mensagem para o usuário (consulte a etapa 3).

  2. O runtime lê o cabeçalho do arquivo PE do arquivo executável do aplicativo. Se a versão de tempo de execução especificada pelo cabeçalho do arquivo PE estiver disponível, o runtime carrega essa versão. Se a versão de tempo de execução especificada não estiver disponível, o runtime procura uma versão de tempo de execução, determinada pela Microsoft para ser compatível com a versão de tempo de execução no cabeçalho PE. Se essa versão não for encontrada, o processo continua para a etapa 3.

  3. O tempo de execução exibe uma mensagem informando que a versão de tempo de execução suportada pelo aplicativo não está disponível. O tempo de execução não está carregado.

    Observação

    Você pode suprimir a exibição desta mensagem usando o valor de NoGuiFromShim na chave do registro HKLM\Software\Microsoft\.Usando a variável de ambiente COMPLUS_NoGuiFromShim ou NETFramework.Por exemplo, você pode suprimir a mensagem para aplicativos que normalmente não interagem com o usuário, como instalações autônomas ou serviços do Windows.Quando a exibição de mensagem é suprimida, o runtime grava uma mensagem no log de eventos.Defina o valor do registro NoGuiFromShim como 1 para suprimir esta mensagem para todos os aplicativos em um computador.Como alternativa, defina a variável de ambiente COMPLUS_NoGuiFromShim como 1 para suprimir a mensagem para aplicativos executados em um contexto de usuário específico.

Observação

Depois de uma versão de tempo de execução é carregada, redirecionamentos de ligação de assembly pode especificar que uma versão diferente de um indivíduo.NET Framework assembly ser carregado.Esses redirecionamentos de ligação afetam apenas o conjunto específico é redirecionado.

Consulte também

Conceitos

Redirecionamento de ligação de assembly

Localizar informações de versão de tempo de execução

Configurando o redirecionamento de ligação de Assembly

Execução Lado a Lado