Partilhar via


Migrar do Windows Forms .NET Framework para o .NET

Este artigo descreve como atualizar um aplicativo de área de trabalho do Windows Forms para .NET usando o Assistente de Atualização do .NET. O Windows Forms continua sendo uma estrutura somente do Windows, embora o .NET seja uma tecnologia multiplataforma.

Pré-requisitos

Avaliação

Você deve analisar seus projetos antes de executar uma atualização. Executar a análise de código em seus projetos com o .NET Upgrade Assistant gera um relatório ao qual você pode se referir para identificar possíveis bloqueadores de migração.

Para analisar seus projetos e gerar um relatório, clique com o botão direito do mouse no arquivo de solução no Gerenciador de Soluções e selecione Atualizar. Para obter mais informações sobre como executar uma análise, consulte Analisar projetos com o Assistente de Atualização do .NET.

Migrar dependências

Se você estiver atualizando vários projetos, comece com projetos que não têm dependências. No exemplo de jogo de correspondência, o projeto MatchingGame depende da biblioteca MatchingGame.Logic , portanto, MatchingGame.Logic deve ser atualizado primeiro.

Sugestão

Certifique-se de ter um backup do seu código, como no controle do código-fonte ou uma cópia.

Use as seguintes etapas para atualizar um projeto no Visual Studio:

  1. Clique com o botão direito do mouse no projeto MatchingGame.Logic na janela Gerenciador de Soluções e selecione Atualizar:

    Uma captura de tela do item de menu

    É aberta uma nova guia que solicita que você escolha qual atualização deseja executar.

  2. Selecione atualização de projeto no local.

    Uma screenshot da guia Assistente de Atualização do .NET. A opção 'Atualização de projeto no local' está destacada.

  3. Em seguida, selecione a estrutura de destino.

    Com base no tipo de projeto que você está atualizando, são apresentadas diferentes opções. O .NET Standard 2.0 pode ser usado pelo .NET Framework e pelo .NET. Esta é uma boa escolha se a biblioteca não depender de uma tecnologia de desktop como o Windows Forms, o que este projeto faz.

    Selecione .NET 9.0 e, em seguida, selecione Avançar.

    Uma captura de tela do Assistente de Atualização do .NET. O prompt da estrutura de destino está aberto e o .NET 8 é realçado junto com o botão 'Avançar'.

  4. Uma árvore é mostrada com todos os artefatos relacionados ao projeto, como arquivos de código e bibliotecas. Você pode atualizar artefatos individuais ou o projeto inteiro, que é o padrão. Selecione Selecionar atualização para iniciar a atualização.

    Uma captura de tela do Assistente de Atualização do .NET. A página 'Selecionar componentes' é aberta com o botão 'Seleção de atualização' realçado.

  5. Quando a atualização estiver concluída, os resultados serão exibidos:

    Uma captura de tela da guia de resultados de atualização do Assistente de Atualização do .NET, mostrando os itens migrados do projeto.

    Artefatos com um círculo verde sólido foram atualizados, enquanto círculos verdes vazios foram ignorados. Itens omitidos significam que o assistente de atualização não encontrou nada para atualizar.

Agora que a biblioteca de suporte do aplicativo foi atualizada, atualize o aplicativo principal.

Notas para projetos do Visual Basic

Atualmente, o Assistente de Atualização do .NET não reconhece o uso de System.Configuration no arquivo de configurações criado pelos modelos do Visual Basic no .NET Framework. A tradução também não respeita o uso das extensões My utilizadas em projetos do .NET Framework, como My.Computer e My.User. Essas extensões foram removidas no .NET. Devido a esses dois problemas, uma biblioteca do Visual Basic não será compilada depois de ser migrada com o Assistente de Atualização do .NET.

Para corrigir esse problema, o projeto deve ter como destino o Windows e fazer referência ao Windows Forms.

  1. Após a conclusão da migração, clique duas vezes no projeto MatchingGame.Logic na janela Gerenciador de Soluções .
  2. Localize o elemento <Project>/<PropertyGroup>.
  3. No editor XML, altere o valor de <TargetFramework> de de net9.0 para net9.0-windows.
  4. Adicionar <UseWindowsForms>true</UseWindowsForms> à linha depois de <TargetFramework>.

As definições do projeto devem ser como o seguinte trecho:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net9.0-windows</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
    <OutputType>Library</OutputType>
    <MyType>Windows</MyType>

    ... other settings removed for brevity ...

Migrar o projeto principal

Depois que todas as bibliotecas de suporte forem atualizadas, o projeto principal do aplicativo poderá ser atualizado. Com o aplicativo de exemplo, há apenas um projeto de biblioteca para atualizar, que foi atualizado na seção anterior.

  1. Clique com o botão direito do mouse no projeto MatchingGame na janela Gerenciador de Soluções e selecione Atualizar:
  2. Selecione atualização de projeto no local.
  3. Selecione .NET 9.0 para a estrutura de destino e selecione Avançar.
  4. Deixe todos os artefatos selecionados e selecione Selecionar atualização.

Após a conclusão da atualização, os resultados são mostrados. Observe como o projeto Windows Forms tem um símbolo de aviso. Expanda esse item e mais informações são mostradas sobre essa etapa:

Uma captura de tela da guia de resultados de atualização do Assistente de Atualização do .NET, mostrando que alguns dos itens de resultado têm símbolos de aviso.

Observe que o componente de atualização do projeto menciona que a fonte padrão foi alterada. Como a fonte pode afetar o layout de controle, você precisa verificar cada formulário e controle personalizado em seu projeto para garantir que a interface do usuário esteja organizada corretamente.

Gere uma compilação limpa

Depois que seu projeto principal for atualizado, limpe-o e compile-o.

  1. Clique com o botão direito do mouse no projeto MatchingGame na janela Gerenciador de Soluções e selecione Limpar.
  2. Clique com o botão direito do mouse no projeto MatchingGame na janela Gerenciador de Soluções e selecione Compilar.

Se a sua aplicação encontrou algum erro, pode encontrá-los na janela Lista de Erros, juntamente com uma recomendação de como corrigi-los.

O projeto Windows Forms Matching Game Sample agora é atualizado para .NET 9.

Experiência pós-atualização

Se você estiver portando um aplicativo do .NET Framework para o .NET, revise o artigo Modernizar após atualizar do .NET Framework para o .NET .

  • Portabilidade do .NET Framework para o .NET.

    O guia de portabilidade fornece uma visão geral do que você deve considerar ao portar seu código do .NET Framework para o .NET. A complexidade de seus projetos dita quanto trabalho você fará após a migração inicial dos arquivos de projeto.

  • Modernize após atualizar do .NET Framework para o .NET.

    O mundo do .NET mudou muito desde o .NET Framework. Este link fornece algumas informações sobre como modernizar seu aplicativo após a atualização.