Share via


Compatibilidade de versão no .NET Framework

Compatibilidade com versões anteriores significa que um aplicativo desenvolvido para uma versão específica de uma plataforma será executado em versões posteriores nessa plataforma. A.NET Framework tenta de maximizar a compatibilidade com versões anteriores: A fonte de código escrito para uma versão do.NET Framework deve compilar em versões posteriores do.NET Frameworke os binários que são executados em uma versão do.NET Framework deve se comportar exatamente em versões posteriores do.NET Framework.

Compatibilidade de versão para aplicativos

Por padrão, um aplicativo é executado na versão do.NET Framework que ele foi criado para. Se que a versão não está presente e o arquivo deconfiguração do aplicativonão define versões com, um.Deinicializaçãodo NET Frameworkerro pode ocorrer. Nesse caso, a tentativa de executar o aplicativo falhará.

Para definir as versões específicas em que seu aplicativo é executado, adicione um ou mais <supportedRuntime> elementos ao arquivo de configuração do seu aplicativo. Cada <supportedRuntime> elemento lista uma versão suportada do tempo de execução, com o primeiro especificando a versão de preferida e o último especificando a versãode menos preferido.

Compatibilidade de versão para componentes

Um aplicativo pode controlar a versão do.NET Framework no qual ele é executado, mas não de um componente . Componentes e bibliotecas de classe são carregadas no contexto de um determinado aplicativoe, portanto, executar automaticamente a versão do.NET Framework que executa o aplicativo .

Por essa restrição, garantias de compatibilidade são especialmente importantes para os componentes. Começando com o .NET Framework versão 4, você pode especificar o grau de espera um componente de permanecer compatível em várias versões, aplicando a System.Runtime.Versioning.ComponentGuaranteesAttribute atributo a esse componente. Ferramentas pode usar esse atributo para detectar violações potenciais de compatibilidade garantem, no futuro, versões de um componente.

Compatibilidade com versões anteriores e o.NET Framework 4

O .NET Framework 4 é para trás-compatível com aplicativos criados com o.NET Framework versões 1.1, 2.0, 3.0 e 3.5. Em outras palavras, os aplicativos e componentes criados com versões anteriores do.NET Framework irá funcionar na .NET Framework 4.

No entanto, na prática, essa compatibilidade pode ser dividida por alterações aparentemente irrelevantes na.NET Framework e alterações de técnicas de programação. Por exemplo, as melhorias de desempenho na.NET Framework 4 podem expor uma condição de corrida não tivesse ocorrido em versões anteriores. Da mesma forma, usando um caminho embutido em código .NET assemblies do Framework , realizando uma comparação de igualdade com uma determinada versão do.NET Frameworke obtendo o valor de um campo de particular usando a reflexão não são práticas de compatível com versões anteriores de-. Além disso, cada versão do.NET Framework inclui correções de bug e segurança-relacionados a alterações que podem afetar a compatibilidade de alguns aplicativos e componentes.

Você deve teste seu.NET Framework e componentes para garantir que eles são compatíveis com outras versões do.NET Framework. Para garantir que um aplicativo ou componente executada na .NET Framework 4, use o .Explicação de compatibilidade de aplicativos do NET Framework 4.

Se seu aplicativo ou componente não funcionar como esperado no .NET Framework 4, use as listas de verificação a seguir.

Para.NET Framework 2.0, 3.0 e 3.5 aplicativos:

  • Verificar Problemas de migração do .NET Framework 4 para que as alterações que podem afetar o seu aplicativo e aplicar a solução descrita.

  • Se são recompilar o código de fonte existente para executar no .NET Framework 4, ou se você estiver desenvolvendo uma nova versão de um aplicativo ou componente que visa .NET Framework 4 a partir de um código fonte existente base, cheque O que está obsoleto no .NET Framework para obsoleto tipos e membros e aplicar a solução descrita. (Anteriormente código compilado continuará a ser executado em relação a tipos e membros que tenham sido marcados como obsoleto.)

  • Se você determinar que uma alteração na .NET Framework 4 violou o seu aplicativo, seleção de Esquema configurações Runtime para determinar se você pode usar umaconfiguração do tempo de execuçãoem seu arquivo deconfiguração do aplicativopara restauração o comportamento anterior.

  • Se você encontrar um problema que não está documentado, arquivo de um Microsoft Connect bug e contato netfxcf@microsoft.com com o número do bug .

Para.NET Framework 1.1 aplicativos:

  • Verificar Problemas de migração do .NET Framework 4 para que as alterações que podem afetar o seu aplicativo e aplicar a solução descrita.

  • Verificar alterações no.NET Framework 3.5 SP1 e alterações no.NET Framework 2.0 para todas as alterações feitas nessas versões.

  • Se são recompilar o código de fonte existente para executar no .NET Framework 4, ou se você estiver desenvolvendo uma nova versão de um aplicativo ou componente que visa .NET Framework 4 a partir de um código fonte existente base, cheque O que está obsoleto no .NET Framework para obsoleto tipos e membros e aplicar a solução descrita. (Anteriormente código compilado continuará a ser executado em relação a tipos e membros que tenham sido marcados como obsoleto.)

  • Se você determinar que uma alteração na .NET Framework 4 violou o seu aplicativo, seleção de Esquema configurações Runtime para determinar se você pode usar umaconfiguração do tempo de execuçãoem seu arquivo deconfiguração do aplicativopara restauração o comportamento anterior.

  • Se você encontrar um problema que não está documentado, arquivo de um Microsoft Connect bug e contato netfxcf@microsoft.com com o número do bug .

Compatibilidade e-lado execução lado a lado de-

Se você não encontrar uma solução adequada para seu problema, lembre-se de que o .NET Framework 4 a execução lado a lado com versões 1.1, 2.0 e 3.5. Você pode instalar a versão apropriada do.NET Framework nacomputador de destinopara executar o aplicativo em seu ambientede melhor. Para obter mais informações sobre execução lado a lado, consulte Execução Lado a Lado.

Consulte também

Conceitos

O que há de novo no .NET Framework 4

Outros recursos

O que está obsoleto no .NET Framework

Microsoft.Política de ciclo de vida de suporte do NET Framework

Problemas de migração do .NET Framework 4

Microsoft.Política de ciclo de vida de suporte do NET Framework

Histórico de alterações

Date

History

Motivo

Agosto de 2010

Observar que um.Deinicializaçãodo NET Frameworkerro ocorre se uma versão suportada do.NET Framework não está instalado.

Correção de bug de conteúdo.