Partilhar via


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

O Windows não suporta mais o .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 descreve as etapas necessárias para executar um aplicativo destinado 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:

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

    O redirecionamento de destino requer que tu adiciones um <elemento supportedRuntime> ao ficheiro de configuração da aplicação que permite que ela seja executada no .NET Framework 4 e 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 é chamado MyExecutable.exe.config.

    Esse arquivo de configuração assume a seguinte forma:

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

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

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

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

Se redirecionar o seu aplicativo ou o recompilar, deve rever tanto as alterações significativas como os tipos e membros obsoletos para cada versão do .NET Framework lançada após o .NET Framework 1.1.

Alterações de grande impacto

Quando ocorre uma alteração crítica, dependendo da alteração específica, uma solução alternativa pode estar disponível tanto para aplicações redirecionadas quanto para recompiladas. Em alguns casos, você pode adicionar um elemento filho ao <elemento 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 cadeia de caracteres usado no .NET Framework 1.1 e pode ser usado com um aplicativo redirecionado ou recompilado.

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

No entanto, em alguns casos, você pode ter que modificar seu código-fonte e recompilar seu aplicativo.

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

Tipos e membros obsoletos

O impacto dos tipos e dos membros preteridos diferencia-se ligeiramente para aplicações redirecionadas e aplicações recompiladas. O uso de tipos e membros obsoletos não afetará uma aplicação redirecionada, a menos que o tipo ou membro obsoleto tenha sido fisicamente removido do seu conjunto. Recompilar um aplicativo que usa tipos ou membros obsoletos geralmente produz um aviso do compilador em vez de um erro do compilador. No entanto, em alguns casos, ele produz um erro de 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 O que está obsoleto na Biblioteca de Classes.

Para avaliar o impacto de tipos e membros que foram preteridos desde o lançamento do .NET Framework 2.0 SP1, consulte O que está obsoleto na biblioteca de classes. Analise as listas de tipos obsoletos e membros do .NET Framework 2.0 SP1, .NET Framework 3.5 e .NET Framework 4.