Partilhar via


Visão geral do enquadramento de segmentação

No Visual Studio, você pode especificar a versão do .NET que você deseja que seu projeto direcione. A segmentação da estrutura ajuda a garantir que o aplicativo use apenas a funcionalidade disponível na versão da estrutura especificada. Para que os aplicativos do .NET Framework sejam executados em outro computador, a versão do framework que o aplicativo destina deve ser compatível com a versão do framework instalada no computador.

Uma solução Visual Studio pode conter projetos destinados a diferentes versões do .NET. No entanto, observe que você só pode compilar em relação a uma única versão do .NET usando condicionais de referência para uma única compilação ou criar binários diferentes para cada estrutura de destino. Para obter mais informações sobre estruturas de destino, consulte Estruturas de destino.

Dica

Você também pode segmentar aplicativos para diferentes plataformas. Para obter mais informações, consulte Multitargeting.

Recursos de segmentação da estrutura

A segmentação baseada em framework inclui as seguintes características:

  • Quando você abre um projeto destinado a uma versão anterior da estrutura, o Visual Studio pode atualizar automaticamente o projeto ou deixar o destino as-is.

  • Quando você cria um projeto do .NET Framework, você pode especificar a versão do .NET Framework que você deseja segmentar.

  • Você pode direcionar várias estruturas em um único projeto.

  • Você pode direcionar uma versão diferente do .NET em cada um dos vários projetos na mesma solução.

  • Você pode alterar a versão de destino do .NET que um projeto existente utiliza.

    Quando se altera a versão do .NET que um projeto tem como alvo, o Visual Studio faz as alterações necessárias às referências e aos arquivos de configuração.

Quando você trabalha em um projeto que se destina a uma versão anterior da estrutura, o Visual Studio altera dinamicamente o ambiente de desenvolvimento, da seguinte maneira:

  • Ele filtra itens na caixa de diálogo Adicionar Novo Item, na caixa de diálogo Adicionar Nova Referência e na caixa de diálogo Adicionar Referência de Serviço para omitir opções que não estão disponíveis na versão de destino.

  • Ele filtra controles personalizados no Toolbox para remover aqueles que não estão disponíveis na versão de destino e para mostrar apenas os controles de data mais up-toquando vários controles estiverem disponíveis.

  • Ele filtra IntelliSense para omitir recursos de idioma que não estão disponíveis na versão de destino.

  • Ele filtra as propriedades na janela Propriedades para omitir aquelas que não estão disponíveis na versão de destino.

  • Ele filtra as opções do menu para omitir opções que não estão disponíveis na versão de destino.

  • Para compilações, ele usa a versão do compilador e as opções do compilador que são apropriadas para a versão de destino.

Observação

  • A segmentação por estrutura não garante que seu aplicativo será executado corretamente. Você deve testar a sua aplicação para garantir que ela seja executada para a versão de destino.
  • Não é possível direcionar versões do framework abaixo do .NET Framework 2.0.

Alterar a estrutura de destino

Em um projeto existente do Visual Basic, C# ou F#, você altera a versão de destino do .NET na caixa de diálogo de propriedades do projeto. Para obter informações sobre como alterar a versão de destino para projetos C++, consulte Como modificar a estrutura de destino e o conjunto de ferramentas da plataforma em vez disso.

  1. No Gerenciador de Soluções , abra o menu de contexto do botão direito do mouse para o projeto que você deseja alterar e escolha Propriedades.

  2. Na coluna esquerda da janela Propriedades, escolha o separador Aplicação.

    Guia de Aplicação das Propriedades do Projeto

    Observação

    Depois de criar um aplicativo UWP, não é possível alterar a versão de destino do Windows ou do .NET.

  3. Na lista Target Framework, escolha a versão que deseja.

  4. Na caixa de diálogo de verificação exibida, escolha o botão Sim.

    O projeto descarrega. Quando ele é recarregado, ele tem como alvo a versão .NET que você acabou de escolher.

  1. No Gerenciador de Soluções , abra o menu de contexto do botão direito do mouse para o projeto que você deseja alterar e escolha Propriedades.

  2. Na coluna esquerda da janela Propriedades, escolha o separador Aplicativo.

    Observação

    Depois de criar um aplicativo UWP, não é possível alterar a versão de destino do Windows ou do .NET.

  3. Na lista de Framework de Destino , escolha a versão que você deseja.

    Para um projeto .NET Framework, a caixa de diálogo exibida pode ser semelhante à seguinte captura de tela:

    Captura de tela da caixa de diálogo Propriedades do projeto com as opções do .NET Framework realçadas.

    Para um projeto .NET, a caixa de diálogo pode ser semelhante à seguinte captura de tela:

    Captura de tela da guia Geral na caixa de diálogo Propriedades do projeto, com as seleções 'Estrutura de destino' exibidas.

  4. Se uma caixa de diálogo de verificação for exibida, escolha o botão Sim.

    O projeto descarrega. Quando ele é recarregado, ele tem como alvo a versão .NET que você acabou de escolher.

Focar em múltiplos frameworks

Com o .NET 5 e posterior, você pode criar um projeto para várias estruturas em uma única compilação editando manualmente o arquivo de projeto. Abra o arquivo de projeto e substitua a propriedade TargetFramework por TargetFrameworkse especifique sua lista de Target Framework Monikers (TFMs), separados por ponto-e-vírgula, como no código a seguir:

   <TargetFrameworks>net7.0;net8.0</TargetFrameworks>

Consulte a lista de TFMs em estruturas de destino em projetos no estilo SDK.

Você deve recarregar o projeto depois de fazer essa alteração. Depois disso, se você abrir a janela Properties, na guia Application, poderá editar a lista de estruturas de destino.

Captura de ecrã do separador Geral na caixa de diálogo Propriedades do projeto, com a lista 'Estruturas de destino' apresentada.

Observação

Se o código contiver referências a uma versão do .NET diferente daquela que você destinou, mensagens de erro podem aparecer quando você compilar ou executar o código. Para resolver esses erros, modifique as referências. Consulte Solucionar erros de direcionamento do .NET.

Dica

Dependendo da estrutura de destino, ele pode ser representado das seguintes maneiras no arquivo de projeto:

  • Para um aplicativo .NET Core: <TargetFramework>netcoreapp2.1</TargetFramework>
  • Para um aplicativo .NET Standard: <TargetFramework>netstandard2.0</TargetFramework>
  • Para um aplicativo .NET Framework: <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>

Selecione uma versão da estrutura de destino

Quando você cria um projeto do .NET Framework, você pode selecionar a versão de destino do .NET Framework depois de selecionar um modelo de projeto. A lista de estruturas disponíveis inclui as versões de estrutura instaladas que são aplicáveis ao tipo de modelo selecionado. Para modelos de projeto que não usam o .NET Framework, por exemplo, modelos .NET Core, a lista suspensa do Framework não aparece.

Captura de ecrã do menu pendente Framework no Visual Studio 2019.

Se você optar por criar um projeto do .NET Framework, verá uma interface semelhante à captura de tela a seguir:

Captura de ecrã da lista pendente Framework no Visual Studio 2022.

Se você optar por criar um projeto .NET, verá a interface do usuário (UI) semelhante às duas capturas de tela a seguir.

A primeira tela que você verá é a caixa de diálogo Configurar seu novo projeto.

Captura de tela da caixa de diálogo 'Configurar seu novo projeto' no Visual Studio 2022.

A segunda tela que você verá é a opções adicionais caixa de diálogo.

Captura de tela da caixa de diálogo 'Opções adicionais' no Visual Studio 2022.

Resolver referências de assembly do sistema e do usuário

Para direcionar uma versão do .NET, você deve primeiro instalar as referências de assembly apropriadas. Você pode baixar pacotes de desenvolvedor para diferentes versões do .NET na página de downloads do .NET.

Para projetos do .NET Framework, a caixa de diálogo Adicionar Referência impede que assemblies do sistema que não pertencem à versão de destino do .NET Framework sejam adicionados inadvertidamente a um projeto. (Assemblies de sistema são .dll ficheiros incluídos numa versão do .NET Framework.) As referências que pertencem a uma versão do framework superior à versão de destino não se resolverão, e os controlos que dependem de tais referências não poderão ser adicionados. Se você quiser habilitar essa referência, redefina o destino do .NET Framework do projeto para um que inclua a referência.

Para obter mais informações sobre referências de montagem, consulte Resolver montagens em tempo de design.

Ativar LINQ

Quando você direciona o .NET Framework 3.5 ou posterior, uma referência a System.Core e uma importação de nível de projeto para System.Linq (somente no Visual Basic) são adicionadas automaticamente. Se você quiser usar recursos do LINQ, você também deve ativar Option Infer (somente no Visual Basic). A referência e a importação são removidas automaticamente se você alterar o destino para uma versão anterior do .NET Framework. Para obter mais informações, consulte Trabalhar com o LINQ.

Ver também