Compartilhar via


Migrar do .NET Framework 1.1, 2.0 e 3.5 para o .NET Framework 4

O Windows não dá mais suporte ao .NET Framework 1.1 e 2.0. Como resultado, os aplicativos destinados a versões mais antigas do .NET Framework não serão executados sem instalar explicitamente o .NET Framework 3.5. No entanto, é recomendável que você atualize o aplicativo para o .NET Framework 4. Este artigo discute as etapas necessárias para executar um aplicativo direcionado a uma versão antiga do .NET Framework.

Redirecionar ou recompilar

Há duas maneiras de obter um aplicativo que foi compilado usando o .NET Framework 1.1 para ser executado no Windows 7 ou em um sistema operacional Windows posterior:

  • Redirecione o aplicativo para ser executado no .NET Framework 4 e versões posteriores.

    O redirecionamento exige que você adicione um elemento <supportedRuntime> ao arquivo de configuração do aplicativo que permite que ele seja executado no .NET Framework 4 e em versões posteriores.

    O arquivo de configuração de um aplicativo é um arquivo XML que está no mesmo diretório e tem o mesmo nome de arquivo que o aplicativo, mas com uma .config extensão. Por exemplo, para um aplicativo chamado MyExecutable.exe, o arquivo de configuração do aplicativo é nomeado MyExecutable.exe.config.

    Esse arquivo de configuração usa o seguinte formulário:

    <configuration>
       <startup>
          <supportedRuntime version="v4.0"/>
       </startup>
    </configuration>
    
  • Recompile o aplicativo com um compilador direcionado ao .NET Framework 4 ou a uma versão posterior. Se você usou originalmente o Visual Studio 2003 para desenvolver e compilar sua solução, poderá abrir a solução no Visual Studio 2010 (e possivelmente versões posteriores também) e usar a caixa de diálogo Compatibilidade do Projeto para converter os arquivos de solução e projeto dos formatos usados pelo Visual Studio 2003 para o formato msbuild (Mecanismo de Build da Microsoft).

    Independentemente de preferir recompilar ou redirecionar seu aplicativo, você deve determinar se seu aplicativo é afetado por alterações introduzidas em versões posteriores do .NET Framework. Essas alterações são de dois tipos:

  • Alterações significativas que ocorreram entre o .NET Framework 1.1 e versões posteriores do .NET Framework.

  • Tipos e membros de tipo que foram marcados como preteridos ou obsoletos entre o .NET Framework 1.1 e versões posteriores do .NET Framework.

Se redirecionar seu aplicativo ou recompilá-lo, você deverá analisar as alterações significativas e os tipos e membros obsoletos de cada versão do .NET Framework liberada após o .NET Framework 1.1.

Alterações da falha

Quando ocorre uma alteração interruptiva, dependendo da alteração específica, a solução desse problema pode estar disponível tanto para aplicativos redestinados como para recompilados. Em alguns casos, você pode adicionar um elemento filho ao <elemento de runtime> do arquivo de configuração do aplicativo para restaurar o comportamento anterior. Por exemplo, o arquivo de configuração a seguir restaura o comportamento de classificação e comparação de strings usado no .NET Framework 1.1 e pode ser usado com uma aplicação redirecionada ou recompilada.

<configuration>
   <runtime>
      <CompatSortNLSVersion enabled="4096"/>
   </runtime>
</configuration>

No entanto, em alguns casos, talvez seja necessário modificar o código-fonte e recompilar seu aplicativo.

Para avaliar o impacto de possíveis alterações significativas em seu aplicativo, você deve examinar as seguintes listas de alterações:

Tipos e membros obsoletos

O impacto de tipos e membros substituídos é um pouco diferente para aplicativos redirecionados e aplicativos recompilados. O uso de tipos e membros obsoletos não afetará um aplicativo redirecionado, a menos que o tipo ou membro obsoleto tenha sido fisicamente removido de seu assembler. Recompilar um aplicativo que usa tipos obsoletos ou membros geralmente produz um aviso do compilador em vez de um erro do compilador. No entanto, em alguns casos, ele produz um erro do compilador e o código que usa o tipo ou membro obsoleto não é compilado com êxito. Nesse caso, você deve reescrever o código-fonte que chama o tipo ou membro obsoleto antes de recompilar seu aplicativo. Para obter mais informações sobre tipos e membros obsoletos, consulte What's Obsolete in the Class Library.

Para avaliar o impacto dos tipos e membros que foram preteridos desde o lançamento do .NET Framework 2.0 SP1, consulte What's Obsolete in the Class Library. Reveja as listas de tipos e membros obsoletos para .NET Framework 2.0 SP1, .NET Framework 3.5 e .NET Framework 4.