Compartilhar via


Visão geral do direcionamento de estrutura

No Visual Studio, você pode especificar a versão do .NET que deseja que seu projeto seja direcionado. O direcionamento 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 da estrutura direcionada ao aplicativo deve ser compatível com a versão da estrutura instalada no computador.

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

Dica

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

Recursos de definição de destino da estrutura

A definição de destino da estrutura inclui os seguintes recursos:

  • Quando você abre um projeto direcionado a uma versão anterior do framework, o Visual Studio pode atualizar automaticamente o projeto ou deixar o destino como as-is.

  • Ao criar um projeto do .NET Framework, você pode especificar a versão do .NET Framework que deseja direcionar.

  • Você pode ter várias estruturas de destino 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 do .NET direcionada a um projeto existente.

    Quando você altera a versão do .NET direcionada a um projeto, o Visual Studio faz as alterações necessárias em referências e arquivos de configuração.

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

  • Ele filtra os 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 os controles personalizados da Caixa de Ferramentas para remover aqueles que não estão disponíveis na versão de destino e mostrar somente os controles mais atualizados quando vários controles estão disponíveis.

  • Ele filtra do IntelliSense para omitir recursos de linguagem 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 de menu para omitir opções que não estão disponíveis na versão de destino.

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

Nota

  • A definição de destino da estrutura não assegura que o aplicativo será executado corretamente. Você deve testar seu aplicativo para garantir que ele seja executado na versão de destino.
  • Não é possível ter versões de estrutura de destino 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 do .NET de destino na caixa de diálogo 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 projeto que você deseja alterar e, em seguida, escolha Propriedades.

  2. Na coluna esquerda da janela Propriedades, escolha a guia Aplicativo.

    Guia Aplicativo das propriedades do projeto

    Nota

    Depois de criar um aplicativo UWP, você não poderá alterar a versão de destino do Windows ou do .NET.

  3. Na lista Estrutura de Destino, escolha a versão desejada.

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

    O projeto é descarregado. Quando recarrega, ele tem como destino a versão do .NET que você acabou de escolher.

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

  2. Na coluna esquerda da janela Propriedades, escolha a guia Aplicativo.

    Nota

    Depois de criar um aplicativo UWP, você não poderá alterar a versão de destino do Windows ou do .NET.

  3. Na lista Estrutura de Destino, escolha a versão desejada.

    Para um projeto do .NET Framework , a caixa de diálogo que você vê 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 do .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' sendo exibidas.

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

    O projeto é descarregado. Quando recarrega, ele tem como destino a versão do .NET que você acabou de escolher.

Direcionar a várias estruturas

Com o .NET 5 e posterior, você pode criar um projeto para várias estruturas em um único build editando manualmente o arquivo de projeto. Abra o arquivo de projeto e substitua a propriedade TargetFramework por TargetFrameworkse especifique sua lista de TFMs (Monikers da Estrutura de Destino), separados por ponto-e-vírgula, como no seguinte código:

   <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 Propriedades, na guia Aplicativo, poderá editar a lista de estruturas de destino.

Captura de tela da guia Geral na caixa de diálogo Propriedades do Projeto, com a lista 'Estruturas de destino' sendo exibida.

Nota

Se o seu código contiver referências a uma versão diferente do .NET da que você está usando, mensagens de erro podem aparecer quando você compilar ou executar o código. Para resolver esses erros, modifique as referências. Confira Solução de problemas de erros de direcionamento do .NET.

Dica

Dependendo da estrutura de destino, ela pode ser representada 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>

Selecionar uma versão da estrutura de destino

Ao criar 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 aplicáveis ao tipo de modelo selecionado. Para modelos de projeto que não são do .NET Framework, por exemplo, modelos do .NET Core, a lista suspensa Estrutura não é exibida.

Captura de tela do menu suspenso do Framework no Visual Studio 2019.

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

Captura de tela da lista suspensa do Framework no Visual Studio 2022.

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

A primeira tela que você verá é a caixa de diálogo Configurar 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 caixa de diálogo Opções adicionais.

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 definir uma versão do .NET como destino, é necessário primeiro instalar as referências de assembly apropriadas. Você pode baixar pacotes de desenvolvedor para versões diferentes do .NET na página de downloads do .NET .

Para projetos do .NET Framework, a caixa de diálogo Adicionar Referência desabilita assemblies do sistema que não pertencem à versão de destino do .NET Framework para que não possam ser adicionados inadvertidamente a um projeto. (Os assemblies do sistema são arquivos .dll incluídos em uma versão do .NET Framework.) As referências que pertencem a uma versão do framework maior que a versão de destino não poderão ser resolvidas, e os controles que dependem de tal referência não podem 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 assembly, consulte Resolver assemblies em tempo de design.

Habilitar LINQ

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

Consulte também